39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""passbook core invitation form"""
|
|
|
|
from django import forms
|
|
from django.core.exceptions import ValidationError
|
|
from django.utils.translation import gettext as _
|
|
|
|
from passbook.core.models import Invitation, User
|
|
|
|
|
|
class InvitationForm(forms.ModelForm):
|
|
"""InvitationForm"""
|
|
|
|
def clean_fixed_username(self):
|
|
"""Check if username is already used"""
|
|
username = self.cleaned_data.get("fixed_username")
|
|
if User.objects.filter(username=username).exists():
|
|
raise ValidationError(_("Username is already in use."))
|
|
return username
|
|
|
|
def clean_fixed_email(self):
|
|
"""Check if email is already used"""
|
|
email = self.cleaned_data.get("fixed_email")
|
|
if User.objects.filter(email=email).exists():
|
|
raise ValidationError(_("E-Mail is already in use."))
|
|
return email
|
|
|
|
class Meta:
|
|
|
|
model = Invitation
|
|
fields = ["expires", "fixed_username", "fixed_email", "needs_confirmation"]
|
|
labels = {
|
|
"fixed_username": "Force user's username (optional)",
|
|
"fixed_email": "Force user's email (optional)",
|
|
}
|
|
widgets = {
|
|
"fixed_username": forms.TextInput(),
|
|
"fixed_email": forms.TextInput(),
|
|
}
|