brutaldon-interfaccia-web-m.../brutaldon/forms.py

74 lines
3.7 KiB
Python

from django import forms
from django.conf import settings
from django.utils.translation import gettext as _
from pytz import common_timezones
from .models import Theme, Preference
PRIVACY_CHOICES = (('public', _('Public')),
('unlisted', _('Unlisted')),
('private', _('Private')),
('direct', _('Direct')))
timezones = [ (tz, tz) for tz in common_timezones]
class LoginForm(forms.Form):
instance = forms.CharField(label=_("Instance"),
max_length=256)
email = forms.EmailField(label=_("Email"))
password = forms.CharField(widget=forms.PasswordInput())
class OAuthLoginForm(forms.Form):
instance = forms.CharField(label=_("Instance"),
max_length=256)
class PreferencesForm(forms.ModelForm):
class Meta:
model = Preference
fields = ['theme', 'filter_replies', 'filter_boosts', 'timezone',
'no_javascript', 'notifications', 'click_to_load', 'lightbox',
'filter_notifications', 'poll_frequency']
class PostForm(forms.Form):
"""def status_post(self, status, in_reply_to_id=None, media_ids=None,
sensitive=False, visibility=None, spoiler_text=None):"""
status = forms.CharField(label="Toot", widget=forms.Textarea)
visibility = forms.ChoiceField(label=_("Toot visibility"), choices=PRIVACY_CHOICES,
required=False)
spoiler_text = forms.CharField(label=_("CW or Subject"),
required=False)
media_file_1 = forms.FileField(label = _("Media 1"),
required=False)
media_text_1 = forms.CharField(label=_("Describe media 1."),
required=False)
media_file_2 = forms.FileField(label = _("Media 2"),
required=False)
media_text_2 = forms.CharField(label=_("Describe media 2."),
required=False)
media_file_3 = forms.FileField(label = _("Media 3"),
required=False)
media_text_3 = forms.CharField(label=_("Describe media 3."),
required=False)
media_file_4 = forms.FileField(label = _("Media 4"),
required=False)
media_text_4 = forms.CharField(label=_("Describe media 4."),
required=False)
media_sensitive = forms.BooleanField(label=_("Sensitive media?"), required=False)
class FilterForm(forms.Form):
phrase = forms.CharField(label=_("Word or phrase to filter"))
context_home = forms.BooleanField(label=_("In home timeline"), required=False, initial=True)
context_public = forms.BooleanField(label=_("In public timelines"), required=False, initial=True)
context_notes = forms.BooleanField(label=_("In notifications"), required=False, initial=True)
context_thread = forms.BooleanField(label=_("In thread contexts"), required=False, initial=True)
whole_word = forms.BooleanField(label=_("Whole words only"), required=False, initial=True)
expires_in = forms.TypedChoiceField(label=_("Expires in"),
choices=(("", "Never"),
("1800", "30 minutes"),
("3600", "1 hour"),
("21600", "6 hours"),
("43200", "12 hours"),
("86400", "1 day"),
("604800", "1 week")),
coerce=int, required=False)