views.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. from django.shortcuts import render
  2. from django.http import HttpResponseRedirect
  3. from django.urls import reverse
  4. from .models import *
  5. from config.views import *
  6. from att.views import *
  7. from .forms import *
  8. from amministratore.views import getAP
  9. def welcome(request):
  10. if not 'AdminId' in request.session:
  11. return HttpResponseRedirect(reverse("login:start"))
  12. AdminId = request.session['AdminId']
  13. print('AdminId',AdminId)
  14. data = dict()
  15. azienda = None
  16. if 'AziendaId' in request.session:
  17. AziendaId = request.session['AziendaId']
  18. print('AziendaId',AziendaId)
  19. azienda = Azienda.objects.get(pk=AziendaId)
  20. data['azienda'] = azienda
  21. sede = None
  22. if 'SedeId' in request.session:
  23. SedeId = request.session['SedeId']
  24. print('SedeId',SedeId)
  25. try:
  26. sede = Sede.objects.get(pk=SedeId)
  27. except Sede.DoesNotExist as dne:
  28. print("non esiste")
  29. data['sede'] = sede
  30. data['HeaderTitle'] = getConfig('HeaderTitle')
  31. data['Navbar']=True
  32. admin = Amministratore.objects.get(pk=AdminId)
  33. data['admin'] = admin
  34. data['permesso'] = getAP(admin)
  35. print('admin',admin.id,admin.nome)
  36. assegnazioneazienda = AssegnazioneAzienda.objects.filter(amministratore=admin.id).order_by('azienda__nome')
  37. print('assegnazioneazienda',len(assegnazioneazienda))
  38. assegnazionesede=None
  39. if azienda:
  40. assegnazionesede = AssegnazioneSede.objects.filter(amministratore=admin,azienda=azienda).order_by('sede__nome')
  41. data['listaAttivitaxAmministrazione']=getLogxAmministrazione(admin)
  42. print('data',data)
  43. if request.method=="POST":
  44. print(request.POST)
  45. if 'indietro' in request.POST:
  46. print('premuto tast indietro,logout')
  47. return HttpResponseRedirect(reverse("login:start"))
  48. if "sceltaazienda" in request.POST:
  49. sceltaazienda = request.POST.get('sceltaazienda')
  50. try:
  51. sceltaazienda = int(sceltaazienda)
  52. except ValueError as ve:
  53. print("Non e' stata fatta la scelta corretta",ve)
  54. return HttpResponseRedirect(reverse('azienda:welcome'))
  55. print("sceltaazienda = ",request.POST.get('sceltaazienda'))
  56. # attività su nuova/edit azienda
  57. if sceltaazienda == -1: #richiesta una nuova azienda
  58. print('sceltaazienda -1:',sceltaazienda)
  59. #return HttpResponseRedirect(reverse('azienda:editAzienda'))
  60. elif sceltaazienda == 0:
  61. print('sceltaazienda 0:',sceltaazienda)
  62. request.session['AziendaIdEdit'] = 0
  63. print('AziendaId',request.session['AziendaIdEdit'])
  64. return HttpResponseRedirect(reverse('azienda:editAzienda'))
  65. else:
  66. try:
  67. azienda = Azienda.objects.get(pk=sceltaazienda)
  68. data['azienda'] = azienda
  69. request.session['AziendaId'] = azienda.id
  70. request.session['SedeId'] = -1
  71. except Azienda.DoesNotExist as dne:
  72. print("errore, oggetto inesistente",dne)
  73. if "sceltasede" in request.POST:
  74. sceltasede = request.POST.get('sceltasede')
  75. try:
  76. sceltasede = int(sceltasede)
  77. request.session['SedeId'] = sceltasede
  78. except ValueError as ve:
  79. print("Non e' stata fatta la scelta corretta",ve)
  80. return HttpResponseRedirect(reverse('azienda:welcome'))
  81. print("sceltasede = ",request.POST.get('sceltasede'))
  82. if sceltasede == -1:
  83. print('sceltasede -1:',sceltasede)
  84. if 'sede' in data:
  85. del data['sede']
  86. elif sceltasede == 0: #richiesta una nuova azienda
  87. print('sceltasede 0:',sceltasede)
  88. request.session['SedeIdEdit'] = 0
  89. return HttpResponseRedirect(reverse('azienda:editSede'))
  90. else:
  91. try:
  92. sede = Sede.objects.get(pk=sceltasede)
  93. data['sede'] = sede
  94. request.session['SedeId'] = sede.id
  95. except Sede.DoesNotExist as dne:
  96. print("errore,oggetto inesistente",dne)
  97. if "utenti" in request.POST:
  98. print('premuto tasto utenti')
  99. return HttpResponseRedirect(reverse('utente:welcome'))
  100. if 'documenti' in request.POST:
  101. # stato premuto il tasto documenti
  102. print('premuto tasto documenti')
  103. return HttpResponseRedirect(reverse('documento:welcome'))
  104. if "attivita" in request.POST:
  105. print('premuto tasto attivita')
  106. data['listaAttivitaxAzienda']=getLogxAzienda(azienda)
  107. if 'comunicazioni' in request.POST:
  108. print('premuto tasto comunicazioni')
  109. return HttpResponseRedirect(reverse('comunicazione:welcome'))
  110. if 'parazienda' in request.POST:
  111. print('premuto tasto Par.Azienda')
  112. azid = request.POST.get('parazienda')
  113. print('azienda passata',request.POST.get('parazienda'))
  114. azienda = Azienda.objects.get(pk=azid)
  115. request.session['AziendaId'] = azienda.id
  116. request.session['AziendaIdEdit'] = azienda.id
  117. return HttpResponseRedirect(reverse('azienda:editAzienda'))
  118. if 'parsede' in request.POST:
  119. print('premuto tasto Par.Sede')
  120. seid = request.POST.get('parsede')
  121. print('sede passata',request.POST.get('parsede'))
  122. sede = Sede.objects.get(pk=seid)
  123. request.session['SedeId'] = sede.id
  124. request.session['SedeIdEdit'] = sede.id
  125. return HttpResponseRedirect(reverse('azienda:editSede'))
  126. if 'amministratore' in request.POST:
  127. print(' premuto tasto Amministratore')
  128. return HttpResponseRedirect(reverse('amministratore:welcome'))
  129. #################
  130. #tmplist1 = dict()
  131. #for tmp in assegnazioneazienda:
  132. # tmplist1[tmp.azienda.id] = tmp.azienda
  133. #print(len(tmplist1))
  134. #tmplist = list()
  135. #for k in tmplist1:
  136. # tmplist.append(tmplist1[k])
  137. #data['aziendaLista'] = tmplist
  138. data['AziendaLista'] = assegnazioneazienda
  139. ##############################
  140. if 'azienda' in data:
  141. print('azienda selezionata:',data['azienda'].nome)
  142. data['sedeLista'] = data['azienda'].sede_set.all().order_by('nome')
  143. print('data',data)
  144. print('numero aziende',len(data['AziendaLista']))
  145. if 'sedeLista' in data:
  146. print('numero di sedi',len(data['sedeLista']))
  147. return render(request,'azienda.welcome.html',data)
  148. # creazione azienda
  149. def editAzienda(request):
  150. AdminId = request.session['AdminId']
  151. data={}
  152. data['HeaderTitle'] = getConfig('HeaderTitle')
  153. user = data['admin'] = Amministratore.objects.get(pk=AdminId)
  154. azienda = None
  155. if 'AziendaIdEdit' in request.session:
  156. print('trovato riferimento AziendaIdEdit',request.session.get('AziendaIdEdit'))
  157. azid = request.session.get('AziendaIdEdit')
  158. try:
  159. azienda = Azienda.objects.get(pk=azid)
  160. print('azienda trovata',azienda.nome)
  161. except Azienda.DoesNotExist as dnf:
  162. print(dnf)
  163. if 'indietro' in request.POST:
  164. return HttpResponseRedirect(reverse('azienda:welcome'))
  165. if request.method == "POST":
  166. print("Richiesta creazione nuova azienda")
  167. nuovaazienda = formAzienda(request.POST)
  168. if nuovaazienda.is_valid():
  169. print("il form e' valido",request.POST)
  170. if not azienda:
  171. azienda = Azienda()
  172. azienda.nome = nuovaazienda.cleaned_data.get('nome')
  173. azienda.mail = nuovaazienda.cleaned_data.get('mail')
  174. azienda.partitaiva = nuovaazienda.cleaned_data.get('partitaiva')
  175. azienda.cambiopassword = nuovaazienda.cleaned_data.get('cambiopassword')
  176. azienda.forzanuovapassword = nuovaazienda.cleaned_data.get('forzanuovapassword')
  177. azienda.save()
  178. request.session['AziendaIdEdit'] = azienda.id
  179. print('azienda:',azienda.id)
  180. assegnazione = AssegnazioneAzienda()
  181. assegnazione.azienda=azienda
  182. assegnazione.amministratore=Amministratore.objects.get(pk=AdminId)
  183. assegnazione.save()
  184. del request.session['AziendaIdEdit']
  185. return HttpResponseRedirect(reverse('azienda:welcome'))
  186. else:
  187. print("form non valido")
  188. data['azienda'] = formAzienda(request.POST)
  189. else: #non è un post
  190. print("Non è un post")
  191. formAziendaField = None
  192. if azienda:
  193. print('Abbiamo azienda',azienda.nome)
  194. tmp = dict()
  195. tmp['id'] = azienda.id
  196. tmp['nome'] = azienda.nome
  197. tmp['partitaiva'] = azienda.partitaiva
  198. tmp['mail'] = azienda.mail
  199. tmp['forzanuovapassword'] = azienda.forzanuovapassword
  200. tmp['cambiopassword'] = azienda.cambiopassword
  201. formAziendaField = formAzienda(tmp)
  202. else:
  203. tmp = dict()
  204. tmp['nome'] = ''
  205. tmp['partitaiva'] = ''
  206. tmp['mail'] = user.mail
  207. tmp['forzanuovapassword'] = False
  208. tmp['cambiopassword' ] = False
  209. formAziendaField = formAzienda(tmp)
  210. data['azienda'] = formAziendaField
  211. return render(request,'azienda.editAzienda.html',data)
  212. def editSede(request):
  213. AdminId = request.session['AdminId']
  214. AziendaId = request.session['AziendaId']
  215. print("AziendaId",AziendaId)
  216. data={}
  217. data['HeaderTitle'] = getConfig('HeaderTitle')
  218. admin = data['admin'] = Amministratore.objects.get(pk=AdminId)
  219. sede = None
  220. if 'SedeIdEdit' in request.session:
  221. print('trovato riferimento SedeIdEdit',request.session.get('SedeIdEdit'))
  222. seid = request.session.get('SedeIdEdit')
  223. try:
  224. sede = Sede.objects.get(pk=seid)
  225. print('sede trovata',sede.nome)
  226. except Sede.DoesNotExist as dne:
  227. print('Sede indicata inesistente',dne)
  228. sede = Sede()
  229. sede.azienda = Azienda.objects.get(pk=AziendaId)
  230. sede.cambiopassword = sede.azienda.cambiopassword
  231. sede.forzanuovapassword = sede.azienda.forzanuovapassword
  232. if 'indietro' in request.POST:
  233. return HttpResponseRedirect(reverse('azienda:welcome'))
  234. if request.method == "POST":
  235. print("Richiesta creazione nuova azienda")
  236. nuovasede = formSede(request.POST)
  237. if nuovasede.is_valid():
  238. print("il form e' valido",request.POST)
  239. sede.nome = nuovasede.cleaned_data.get('nome')
  240. sede.mail = nuovasede.cleaned_data.get('mail')
  241. sede.cambiopassword = nuovasede.cleaned_data.get('cambiopassword')
  242. sede.forzanuovapassword = nuovasede.cleaned_data.get('forzanuovapassword')
  243. sede.info = nuovasede.cleaned_data.get('info')
  244. sede.identificativo = nuovasede.cleaned_data.get('identificativo')
  245. sede.save()
  246. print('salvataggio sede',nuovasede.cleaned_data)
  247. request.session['SedeIdEdit'] = sede.id
  248. print('sede:',sede.id)
  249. print('azienda',sede.azienda.nome)
  250. # verifica assegnazione
  251. az = AssegnazioneSede.objects.filter(sede=sede,amministratore=admin)
  252. print('assegnazione',az)
  253. if not az:
  254. az = AssegnazioneSede()
  255. az.sede=sede
  256. az.amministratore=admin
  257. az.save()
  258. print(sede.nome,admin.nome)
  259. print('az.admin',az.sede,az.amministratore.nome)
  260. return HttpResponseRedirect(reverse('azienda:welcome'))
  261. else:
  262. print("form non valido")
  263. data['sede'] = formSede(request.POST)
  264. else: #non è un post
  265. print("Non è un post")
  266. formSedeField = None
  267. tmp = dict()
  268. tmp['nome'] = sede.nome
  269. tmp['info'] = sede.info
  270. tmp['identificativo'] = sede.identificativo
  271. tmp['cambiopassword'] = sede.cambiopassword
  272. tmp['forzanuovapassword'] = sede.forzanuovapassword
  273. print('stato tmp',tmp)
  274. formSedeField = formSede(tmp)
  275. data['sede'] = formSedeField
  276. return render(request,'azienda.editSede.html',data)