mirror of
https://github.com/jfmcbrayer/brutaldon
synced 2025-01-18 18:02:09 +01:00
0b93eb78f4
No need to list the preference fields three times in three places in the code. A class decorator ought to be able to sleuth them out from the model itself. Should make it easier to add new preferences.
85 lines
2.9 KiB
Python
85 lines
2.9 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 = Preference._fields
|
|
|
|
|
|
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,
|
|
)
|