"""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(), }