from django import forms
from django.contrib.auth.models import User
from .models import User

class TownPostForm(forms.Form):
    selectedTown = forms.CharField(max_length=25)

class CategoryPostForm(forms.Form):
    category = forms.CharField(max_length=25)

class SearchPostForm(forms.Form):
    search = forms.CharField()

class PostForm(forms.Form):
    content = forms.CharField(required=False,widget=forms.Textarea)

class UserForm(forms.ModelForm):
    username = forms.CharField(widget=forms.TextInput)
    email = forms.EmailField(widget=forms.EmailInput)
    password=forms.CharField(widget=forms.PasswordInput())
    confirm_password = forms.CharField(widget=forms.PasswordInput)
    mainPhoto = forms.ImageField()
    class Meta:
        model=User
        fields=('username','email','password','confirm_password','mainPhoto')

    def clean_username(self):
        data = self.cleaned_data['username']
        if User.objects.filter(username=data).exists():
            raise forms.ValidationError('Username already taken.')
        return data

    def clean_confirm_password(self):
        confirm_password = self.cleaned_data['confirm_password']
        password = self.cleaned_data.get("password")
        if password != confirm_password:
            raise forms.ValidationError("Confirm_password does not match")
        return confirm_password

    #def clean(self):
    #    cleaned_data = super(UserForm, self).clean()
    #    print "ON A CLEAN DATA %s" % (cleaned_data)
    #    password = cleaned_data.get("password")
    #    confirm_password = cleaned_data.get("confirm_password")

    #    if password != confirm_password:
    #        raise forms.ValidationError(
    #            "password and confirm_password does not match"
    #        )

class TokenForm(forms.Form):
    token = forms.CharField(widget=forms.TextInput)
    facebookId = forms.CharField(widget=forms.TextInput,required=False)