2018-04-24 00:16:22 +02:00
|
|
|
from django import forms
|
2018-08-02 17:13:50 +02:00
|
|
|
from django.conf import settings
|
2018-11-07 19:07:21 +01:00
|
|
|
from django.utils.translation import gettext as _
|
2018-08-21 19:15:10 +02:00
|
|
|
from pytz import common_timezones
|
2018-08-28 18:22:20 +02:00
|
|
|
from .models import Theme, Preference
|
|
|
|
|
2018-04-24 00:16:22 +02:00
|
|
|
|
2019-05-17 19:07:11 +02:00
|
|
|
PRIVACY_CHOICES = (
|
|
|
|
("public", _("Public")),
|
|
|
|
("unlisted", _("Unlisted")),
|
|
|
|
("private", _("Private")),
|
|
|
|
("direct", _("Direct")),
|
|
|
|
)
|
|
|
|
|
|
|
|
timezones = [(tz, tz) for tz in common_timezones]
|
2018-04-27 20:12:29 +02:00
|
|
|
|
2018-08-21 19:15:10 +02:00
|
|
|
|
2018-04-24 00:16:22 +02:00
|
|
|
class LoginForm(forms.Form):
|
2019-05-17 19:07:11 +02:00
|
|
|
instance = forms.CharField(label=_("Instance"), max_length=256)
|
2018-11-07 19:07:21 +01:00
|
|
|
email = forms.EmailField(label=_("Email"))
|
2018-04-24 00:16:22 +02:00
|
|
|
password = forms.CharField(widget=forms.PasswordInput())
|
|
|
|
|
2019-05-17 19:07:11 +02:00
|
|
|
|
2018-05-14 21:35:10 +02:00
|
|
|
class OAuthLoginForm(forms.Form):
|
2019-05-17 19:07:11 +02:00
|
|
|
instance = forms.CharField(label=_("Instance"), max_length=256)
|
|
|
|
|
2018-05-14 21:35:10 +02:00
|
|
|
|
2018-08-28 18:22:20 +02:00
|
|
|
class PreferencesForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = Preference
|
2019-05-17 19:07:11 +02:00
|
|
|
fields = [
|
|
|
|
"theme",
|
|
|
|
"filter_replies",
|
|
|
|
"filter_boosts",
|
|
|
|
"timezone",
|
|
|
|
"no_javascript",
|
|
|
|
"notifications",
|
|
|
|
"click_to_load",
|
|
|
|
"lightbox",
|
|
|
|
"filter_notifications",
|
|
|
|
"poll_frequency",
|
|
|
|
]
|
|
|
|
|
2018-04-27 20:12:29 +02:00
|
|
|
|
|
|
|
class PostForm(forms.Form):
|
|
|
|
"""def status_post(self, status, in_reply_to_id=None, media_ids=None,
|
2018-08-02 17:13:50 +02:00
|
|
|
sensitive=False, visibility=None, spoiler_text=None):"""
|
2019-05-17 19:07:11 +02:00
|
|
|
|
2018-09-05 01:19:35 +02:00
|
|
|
status = forms.CharField(label="Toot", widget=forms.Textarea)
|
2019-05-17 19:07:11 +02:00
|
|
|
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)
|
2018-11-07 19:47:27 +01:00
|
|
|
media_sensitive = forms.BooleanField(label=_("Sensitive media?"), required=False)
|
2019-02-15 02:34:06 +01:00
|
|
|
|
2019-05-17 19:07:11 +02:00
|
|
|
|
2019-02-15 02:34:06 +01:00
|
|
|
class FilterForm(forms.Form):
|
|
|
|
phrase = forms.CharField(label=_("Word or phrase to filter"))
|
2019-05-17 19:07:11 +02:00
|
|
|
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,
|
|
|
|
)
|