from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect,FileResponse
from django.urls import reverse
from .forms import *
from config.views import getConfig
from utente.models import *
from django.contrib.auth import authenticate
import django
from att.views import *  
def start(request):
  '''
  da qui si comincia
  l'utente e' invitato a inserire il suo codice fiscale e la password/pin assegnata in fase di visita medica
  se i dati corrispondono, si forniscono i file e alcune info di servizio
  '''
  request.session.flush()
  request.session.set_expiry(3600)

  data = dict()
  data['HeaderTitle'] = getConfig('HeaderTitle')

  if request.method=="POST":
    result = LoginUser(request.POST)

    if result.is_valid():
      username = result.cleaned_data['cfisc']
      pin = result.cleaned_data['passs']

      #verifica corrispondenza utente
      u = None
      try:
        # verifica che esista un utente ordinario
        u = Utente.objects.get(codicefiscale=username.upper())
      except  Utente.DoesNotExist as dne:
        print("non ci provare")
        u = None
      if u: #utente esiste
        if u.pin.strip()== pin:
          # password valida
          data = dict()
          data['u'] = u
          #data['settings'] = settings
          #data['static'] = static
          request.session['UserId'] = u.id
          print('utente validato:',u.nome)
          setLog(1,utente=u)
          #setNewLog(1,{'u':u.nome})
          return HttpResponseRedirect(reverse("utente:download"))
      else: # l'utente ordinario non esiste
        print('verifica amministratore')
        user = authenticate(username=username.strip().lower(),password=pin.strip())
        if user:
          if isinstance(user,django.contrib.auth.models.User): 
            print('tipo amministratore',type(user))

          request.session['AdminId'] = user.id
          setLog(1,amministratore=user)
          #setNewLog(2,{'a':user.username})
          return HttpResponseRedirect(reverse("azienda:welcome"))
  else:
    temp={}
    temp['cfisc'] = ''
    temp['passs'] = ''
    result = LoginUser(temp)
    data['login'] = result

  return render(request,'login.html',data)


