# -*-coding:utf-8 -*-
from django.shortcuts import render
from django.core.paginator import Paginator, EmptyPage,PageNotAnInteger
from django.shortcuts import render, get_object_or_404
from ..models import User
from ..forms import UserForm
from ..forms import TownPostForm
from datetime import date
from django.utils import formats
from django.shortcuts import redirect
from datetime import datetime, timedelta
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render_to_response,redirect
import pytz
import os
import random
import logging
import uuid
logger = logging.getLogger('django')

# Create your views here.

def login_view(request):
    form = UserForm()
    if request.POST:
        isRegister = request.POST['isRegister']
        if isRegister=='True':
            form = UserForm(request.POST, request.FILES)
            if form.is_valid():
                del form.cleaned_data['confirm_password']
                new_user = User.objects.create_user(**form.cleaned_data)
                #user = authenticate(username=new_user.username, password=new_user.password)
                login(request,new_user,backend='backoffice.customAuthentification.customAuthentification')
                return redirect('/')
            else:
                print "---- FORM NOT VALID ---"
        else:
            failed = request.POST['failed']
            if failed==True:
                return render(request, 'backoffice/login_register_modal.html', {'form': form,'shakeModal':True})
            else:
                pseudo = request.POST['pseudo']
                password = request.POST['password']
                user = authenticate(username=pseudo, password=password)
                if user is not None:
                    login(request, user)
                    return redirect('/')
                else:
                    request.POST._mutable = True
                    postArgs = request.POST
                    postArgs['failed']=True
                    request.POST = postArgs
                    return login_view(request)
    return render(request,'backoffice/login_register_modal.html',{'form': form,'shakeModal':False})
