You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

56 lines
1.4 KiB

from datetime import timedelta as td
from django import forms
from django.contrib.auth.models import User
class LowercaseEmailField(forms.EmailField):
def clean(self, value):
value = super(LowercaseEmailField, self).clean(value)
return value.lower()
class EmailPasswordForm(forms.Form):
email = LowercaseEmailField()
password = forms.CharField(required=False)
class ReportSettingsForm(forms.Form):
reports_allowed = forms.BooleanField(required=False)
nag_period = forms.IntegerField(min_value=0, max_value=86400)
def clean_nag_period(self):
seconds = self.cleaned_data["nag_period"]
if seconds not in (0, 3600, 86400):
raise forms.ValidationError("Bad nag_period: %d" % seconds)
return td(seconds=seconds)
class SetPasswordForm(forms.Form):
password = forms.CharField()
class ChangeEmailForm(forms.Form):
error_css_class = "has-error"
email = LowercaseEmailField()
def clean_email(self):
v = self.cleaned_data["email"]
if User.objects.filter(email=v).exists():
raise forms.ValidationError("%s is not available" % v)
return v
class InviteTeamMemberForm(forms.Form):
email = LowercaseEmailField()
class RemoveTeamMemberForm(forms.Form):
email = LowercaseEmailField()
class TeamNameForm(forms.Form):
team_name = forms.CharField(max_length=200, required=True)