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