from django.forms import ModelForm, ValidationError
from django.contrib.auth.forms import PasswordResetForm as AuthPasswordResetForm

from adhesions.models import User
from .models import Profile


class UserForm(ModelForm):
    class Meta:
        model = User
        fields = ('username', 'first_name', 'last_name', 'email',)
        admin_only_fields = ('username', 'first_name', 'last_name',)


class ProfileForm(ModelForm):
    class Meta:
        model = Profile
        fields = ('phone_number', 'address',)


class PasswordResetForm(AuthPasswordResetForm):
    def clean_email(self):
        email = self.cleaned_data['email']
        users = User.objects.filter(email__iexact=email)
        if not users.exists():
            raise ValidationError('Aucun utilisateur connu avec cette adresse e-mail.')
        return email