"""passbook core user forms"""

from django import forms
from django.forms import ValidationError
from django.utils.translation import gettext_lazy as _

from passbook.core.models import User


class UserDetailForm(forms.ModelForm):
    """Update User Details"""

    class Meta:

        model = User
        fields = ['username', 'name', 'email']
        widgets = {
            'name': forms.TextInput
        }

class PasswordChangeForm(forms.Form):
    """Form to update password"""

    password = forms.CharField(label=_('Password'),
                               widget=forms.PasswordInput(attrs={
                                   'placeholder': _('New Password'),
                                   'autocomplete': 'new-password'
                                   }))
    password_repeat = forms.CharField(label=_('Repeat Password'),
                                      widget=forms.PasswordInput(attrs={
                                          'placeholder': _('Repeat Password'),
                                          'autocomplete': 'new-password'
                                      }))

    def clean_password_repeat(self):
        """Check if Password adheres to filter and if passwords matche"""
        password = self.cleaned_data.get('password')
        password_repeat = self.cleaned_data.get('password_repeat')
        if password != password_repeat:
            raise ValidationError(_("Passwords don't match"))
        return self.cleaned_data.get('password_repeat')