from django import forms
from django.contrib.auth.forms import UserCreationForm,AuthenticationForm,UsernameField
from django.contrib.auth.models import User
from .models import Post



class SignUpForm(UserCreationForm):
    # these password names needs to be find out from sorce code through inspect
    password1=forms.CharField(label='Password',widget=forms.PasswordInput(attrs={'class':'form-control'}))
    password2=forms.CharField(label='Password Again',widget=forms.PasswordInput(attrs={'class':'form-control'}))
    class Meta:
        model = User
        fields=['username','first_name','last_name','email']
        labels={
        'first_name':'First Name',
        'last_name':'Last Name',
        'email':'Email'
        }


# we added extra fields like firstname and lastname which were not present in the orignal creation form
         
        widgets={
           'username':forms.TextInput(attrs={'class':'form-control'}),
           'first_name':forms.TextInput(attrs={'class':'form-control'}),
           'last_name':forms.TextInput(attrs={'class':'form-control'}),
           'email':forms.EmailInput(attrs={'class':'form-control'})
            }


class LoginForm(AuthenticationForm):
    # UsernameField is in built field in django so we imported it form forms
    username=UsernameField(widget=forms.TextInput(attrs={'class':'form-control'}))
    password=forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control'}))


class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title','desc']
        labels = {'title':'Title','desc':'Description'}
        widgets={
             'title':forms.TextInput(attrs={'class':'form-control'}),
             'desc':forms.Textarea(attrs={'class':'form-control'})
        }