views.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. from django.shortcuts import render
  2. from django.http import HttpResponse,HttpResponseRedirect,FileResponse
  3. from django.urls import reverse
  4. import django
  5. from .forms import *
  6. from config.views import getConfig
  7. from comunicazione.views import ServizioMail
  8. from att.views import *
  9. def start(request):
  10. '''
  11. da qui si comincia
  12. l'utente e' invitato a inserire il suo codice fiscale e la password/pin assegnata in fase di visita medica
  13. se i dati corrispondono, si forniscono i file e alcune info di servizio
  14. '''
  15. request.session.flush()
  16. request.session.set_expiry(3600)
  17. data = dict()
  18. data['HeaderTitle'] = getConfig('HeaderTitle')
  19. if request.method=="POST":
  20. result = LoginUser(request.POST)
  21. if result.is_valid():
  22. accesso = result.cleaned_data['cfisc']
  23. pin = result.cleaned_data['passs']
  24. #verifica corrispondenza utente
  25. u = None
  26. try:
  27. # verifica che esista un utente ordinario
  28. u = Utente.objects.get(codicefiscale=accesso.upper())
  29. except Utente.DoesNotExist as dne:
  30. print("non ci provare")
  31. u = None
  32. if u: #utente esiste
  33. if u.pin.strip()== pin:
  34. # password valida
  35. data = dict()
  36. data['u'] = u
  37. #data['settings'] = settings
  38. #data['static'] = static
  39. request.session['UserId'] = u.id
  40. print('utente validato:',u.nome)
  41. setLog(1,utente=u)
  42. #setNewLog(1,{'u':u.nome})
  43. ### comunicazioni ###
  44. if len(u.mail) > 0:
  45. comunicazione = None
  46. try:
  47. comunicazione = Comunicazione.objects.get(pk=2)
  48. except Comunicazione.DoesNotExist as dne:
  49. print('comunicazione non valida',dne)
  50. if comunicazione:
  51. sm = ServizioMail(debug=True)
  52. sm.set_mailfrom=comunicazione.mittente
  53. sm.add_to(u.mail)
  54. sm.set_soggetto(comunicazione.soggetto)
  55. sm.set_corpo(comunicazione.corpo)
  56. sm_data = dict()
  57. sm_data['utente'] = u
  58. sm.set_data(sm_data)
  59. sm.send()
  60. ### comunicazioni ###
  61. return HttpResponseRedirect(reverse("utente:download"))
  62. else: # l'utente ordinario non esiste
  63. print('verifica amministratore')
  64. a = None
  65. try:
  66. print(dir(Amministratore))
  67. a = Amministratore.objects.get(login=accesso.strip())
  68. if a:
  69. print('login trovato',a)
  70. except Amministratore.DoesNotExist as dne:
  71. print('amministratore non trovato',dne)
  72. a = None
  73. if a:
  74. request.session['AdminId'] = a.id
  75. setLog(1,amministratore=a)
  76. ### comunicazioni ###
  77. sm = ServizioMail(debug=True)
  78. comunicazione = None
  79. try:
  80. comunicazione = Comunicazione.objects.get(pk=1)
  81. except Comunicazione.DoesNotExist as dne:
  82. print("Record comunicazione inesistente",dne)
  83. if comunicazione:
  84. sm.set_mailfrom=comunicazione.mittente
  85. sm.add_to(a.mail)
  86. sm.set_soggetto(comunicazione.soggetto)
  87. sm.set_corpo(comunicazione.corpo)
  88. sm_data = dict()
  89. utente=dict() #adattamento campo utente
  90. utente['nome'] = a.nome
  91. utente['mail'] = a.mail
  92. sm_data['utente'] = a
  93. sm.set_data(sm_data)
  94. sm.send()
  95. ### comunicazioni ###
  96. return HttpResponseRedirect(reverse("azienda:welcome"))
  97. else:
  98. temp={}
  99. temp['cfisc'] = ''
  100. temp['passs'] = ''
  101. result = LoginUser(temp)
  102. data['login'] = result
  103. return render(request,'login.html',data)