update
This commit is contained in:
124
reports/forms.py
Normal file
124
reports/forms.py
Normal file
@@ -0,0 +1,124 @@
|
||||
"""
|
||||
Forms for reports app.
|
||||
"""
|
||||
from django import forms
|
||||
from accounts.form_mixins import BotProtectionMixin, BrowserFingerprintMixin, RateLimitMixin
|
||||
from .models import ScamReport, TakedownRequest
|
||||
|
||||
|
||||
class ScamReportForm(RateLimitMixin, forms.ModelForm):
|
||||
"""Form for creating/editing scam reports."""
|
||||
class Meta:
|
||||
model = ScamReport
|
||||
fields = [
|
||||
'title', 'description', 'scam_type',
|
||||
'reported_url', 'reported_email', 'reported_phone', 'reported_company',
|
||||
'tags', 'is_anonymous'
|
||||
]
|
||||
widgets = {
|
||||
'title': forms.TextInput(attrs={'class': 'form-control'}),
|
||||
'description': forms.Textarea(attrs={'class': 'form-control', 'rows': 8}),
|
||||
'scam_type': forms.Select(attrs={'class': 'form-control'}),
|
||||
'reported_url': forms.URLInput(attrs={'class': 'form-control'}),
|
||||
'reported_email': forms.EmailInput(attrs={'class': 'form-control'}),
|
||||
'reported_phone': forms.TextInput(attrs={'class': 'form-control'}),
|
||||
'reported_company': forms.TextInput(attrs={'class': 'form-control'}),
|
||||
'tags': forms.SelectMultiple(attrs={'class': 'form-control'}),
|
||||
'is_anonymous': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
|
||||
}
|
||||
|
||||
|
||||
class ContactForm(BotProtectionMixin, BrowserFingerprintMixin, forms.Form):
|
||||
"""Contact form for users to reach out."""
|
||||
name = forms.CharField(
|
||||
max_length=200,
|
||||
required=True,
|
||||
widget=forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'Вашето име'
|
||||
}),
|
||||
label='Име *'
|
||||
)
|
||||
email = forms.EmailField(
|
||||
required=True,
|
||||
widget=forms.EmailInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'your.email@example.com'
|
||||
}),
|
||||
label='Имейл *'
|
||||
)
|
||||
subject = forms.CharField(
|
||||
max_length=200,
|
||||
required=True,
|
||||
widget=forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'Тема на съобщението'
|
||||
}),
|
||||
label='Тема *'
|
||||
)
|
||||
message = forms.CharField(
|
||||
required=True,
|
||||
widget=forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 8,
|
||||
'placeholder': 'Вашето съобщение...'
|
||||
}),
|
||||
label='Съобщение *'
|
||||
)
|
||||
inquiry_type = forms.ChoiceField(
|
||||
choices=[
|
||||
('general', 'Общ въпрос'),
|
||||
('report_issue', 'Проблем с доклад'),
|
||||
('technical', 'Техническа поддръжка'),
|
||||
('feedback', 'Обратна връзка'),
|
||||
('other', 'Друго'),
|
||||
],
|
||||
required=True,
|
||||
widget=forms.Select(attrs={
|
||||
'class': 'form-control'
|
||||
}),
|
||||
label='Тип заявка *'
|
||||
)
|
||||
|
||||
|
||||
class TakedownRequestForm(BotProtectionMixin, BrowserFingerprintMixin, forms.ModelForm):
|
||||
"""Form for requesting takedown of a scam report."""
|
||||
|
||||
class Meta:
|
||||
model = TakedownRequest
|
||||
fields = ['requester_name', 'requester_email', 'requester_phone', 'reason', 'evidence']
|
||||
widgets = {
|
||||
'requester_name': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'Вашето име'
|
||||
}),
|
||||
'requester_email': forms.EmailInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'your.email@example.com'
|
||||
}),
|
||||
'requester_phone': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': '+359 XXX XXX XXX (незадължително)'
|
||||
}),
|
||||
'reason': forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 6,
|
||||
'placeholder': 'Обяснете защо смятате, че докладът трябва да бъде премахнат...'
|
||||
}),
|
||||
'evidence': forms.Textarea(attrs={
|
||||
'class': 'form-control',
|
||||
'rows': 6,
|
||||
'placeholder': 'Предоставете доказателства или допълнителна информация (незадължително)...'
|
||||
}),
|
||||
}
|
||||
labels = {
|
||||
'requester_name': 'Име *',
|
||||
'requester_email': 'Имейл *',
|
||||
'requester_phone': 'Телефон',
|
||||
'reason': 'Причина за заявката *',
|
||||
'evidence': 'Доказателства / Допълнителна информация',
|
||||
}
|
||||
help_texts = {
|
||||
'reason': 'Моля, обяснете подробно защо смятате, че информацията в доклада е невярна или несправедлива.',
|
||||
'evidence': 'Ако имате документи, снимки или друга информация, която подкрепя вашата заявка, моля опишете я тук.',
|
||||
}
|
||||
Reference in New Issue
Block a user