from django.shortcuts import render from django.http import HttpResponseRedirect from django.urls import reverse from .models import * from config.views import * from att.views import * from .forms import * from sicurezza.views import getAMP,getAZP,getSEP,setAZP,setSEP,listaAMMperAzienda,listaAMMperSede def welcome(request): if not 'AdminId' in request.session: return HttpResponseRedirect(reverse("login:start")) AdminId = request.session['AdminId'] print('AdminId',AdminId) data = dict() azienda = None if 'AziendaId' in request.session: AziendaId = request.session['AziendaId'] print('AziendaId',AziendaId) azienda = Azienda.objects.get(pk=AziendaId) data['azienda'] = azienda sede = None if 'SedeId' in request.session: SedeId = request.session['SedeId'] print('SedeId',SedeId) try: sede = Sede.objects.get(pk=SedeId) except Sede.DoesNotExist as dne: print("non esiste") data['sede'] = sede data['HeaderTitle'] = getConfig('HeaderTitle') data['Navbar']=True admin = Amministratore.objects.get(pk=AdminId) data['admin'] = admin data['permesso_amministratore'] = getAMP(admin) data['permesso_azienda'] = getAZP(azienda,admin) data['permesso_sede'] = getSEP(sede,admin) print('permesso_amministratore',data['permesso_amministratore']) print('permesso_azienda',data['permesso_azienda']) print('permesso_sede',data['permesso_sede']) print('admin',admin.id,admin.nome) assegnazioneazienda = AssegnazioneAzienda.objects.filter(amministratore=admin.id).order_by('azienda__nome') print('assegnazioneazienda',len(assegnazioneazienda)) assegnazionesede=None if azienda: assegnazionesede = AssegnazioneSede.objects.filter(amministratore=admin,azienda=azienda).order_by('sede__nome') data['listaAttivitaxAmministrazione']=getLogxAmministrazione(admin) if request.method=="POST": print(request.POST) if 'indietro' in request.POST: print('premuto tast indietro,logout') return HttpResponseRedirect(reverse("login:start")) if "sceltaazienda" in request.POST: sceltaazienda = request.POST.get('sceltaazienda') try: sceltaazienda = int(sceltaazienda) except ValueError as ve: print("Non e' stata fatta la scelta corretta",ve) return HttpResponseRedirect(reverse('azienda:welcome')) print("sceltaazienda = ",request.POST.get('sceltaazienda')) # attività su nuova/edit azienda if sceltaazienda == -1: #richiesta una nuova azienda print('sceltaazienda -1:',sceltaazienda) #return HttpResponseRedirect(reverse('azienda:editAzienda')) elif sceltaazienda == 0: print('sceltaazienda 0:',sceltaazienda) request.session['AziendaIdEdit'] = 0 print('AziendaId',request.session['AziendaIdEdit']) return HttpResponseRedirect(reverse('azienda:editAzienda')) else: try: azienda = Azienda.objects.get(pk=sceltaazienda) data['azienda'] = azienda request.session['AziendaId'] = azienda.id request.session['SedeId'] = -1 if 'sede' in data: del data['sede'] except Azienda.DoesNotExist as dne: print("errore, oggetto inesistente",dne) if "sceltasede" in request.POST: sceltasede = request.POST.get('sceltasede') try: sceltasede = int(sceltasede) request.session['SedeId'] = sceltasede except ValueError as ve: print("Non e' stata fatta la scelta corretta",ve) return HttpResponseRedirect(reverse('azienda:welcome')) print("sceltasede = ",request.POST.get('sceltasede')) if sceltasede == -1: print('sceltasede -1:',sceltasede) if 'sede' in data: del data['sede'] elif sceltasede == 0: #richiesta una nuova azienda print('sceltasede 0:',sceltasede) request.session['SedeIdEdit'] = 0 return HttpResponseRedirect(reverse('azienda:editSede')) else: try: sede = Sede.objects.get(pk=sceltasede) data['sede'] = sede request.session['SedeId'] = sede.id except Sede.DoesNotExist as dne: print("errore,oggetto inesistente",dne) if "utenti" in request.POST: print('premuto tasto utenti') return HttpResponseRedirect(reverse('utente:welcome')) if 'documenti' in request.POST: # stato premuto il tasto documenti print('premuto tasto documenti') return HttpResponseRedirect(reverse('documento:welcome')) if "attivita" in request.POST: print('premuto tasto attivita') print("azioenda:",azienda) data['listaAttivitaxAzienda']=getLogxAzienda(azienda) if 'comunicazioni' in request.POST: print('premuto tasto comunicazioni') return HttpResponseRedirect(reverse('comunicazione:welcome')) if 'parazienda' in request.POST: print('premuto tasto Par.Azienda') azid = request.POST.get('parazienda') print('azienda passata',request.POST.get('parazienda')) azienda = Azienda.objects.get(pk=azid) request.session['AziendaId'] = azienda.id request.session['AziendaIdEdit'] = azienda.id return HttpResponseRedirect(reverse('azienda:editAzienda')) if 'parsede' in request.POST: print('premuto tasto Par.Sede') seid = request.POST.get('parsede') print('sede passata',request.POST.get('parsede')) sede = Sede.objects.get(pk=seid) request.session['SedeId'] = sede.id request.session['SedeIdEdit'] = sede.id return HttpResponseRedirect(reverse('azienda:editSede')) if 'amministratore' in request.POST: print(' premuto tasto Amministratore') return HttpResponseRedirect(reverse('amministratore:welcome')) data['AziendaLista'] = assegnazioneazienda if 'azienda' in data: print('azienda selezionata:',data['azienda'].nome) data['SedeLista'] = data['azienda'].sede_set.all().order_by('nome') print('numero aziende',len(data['AziendaLista'])) if 'SedeLista' in data: print('numero di sedi',len(data['SedeLista'])) return render(request,'azienda.welcome.html',data) # creazione azienda def editAzienda(request): if not 'AdminId' in request.session: return HttpResponseRedirect(reverse("login:start")) AdminId = request.session['AdminId'] print('AdminId',AdminId) data=dict() azienda = None if 'AziendaId' in request.session: AziendaId = request.session['AziendaId'] print('AziendaId',AziendaId) azienda = Azienda.objects.get(pk=AziendaId) data['azienda'] = azienda sede = None if 'SedeId' in request.session: SedeId = request.session['SedeId'] print('SedeId',SedeId) try: sede = Sede.objects.get(pk=SedeId) except Sede.DoesNotExist as dne: print("non esiste") data['sede'] = sede data['HeaderTitle'] = getConfig('HeaderTitle') data['Navbar']=False user = data['admin'] = Amministratore.objects.get(pk=AdminId) azienda = None if 'AziendaIdEdit' in request.session: print('trovato riferimento AziendaIdEdit',request.session.get('AziendaIdEdit')) azid = request.session.get('AziendaIdEdit') try: azienda = Azienda.objects.get(pk=azid) print('azienda trovata',azienda.nome) except Azienda.DoesNotExist as dnf: print(dnf) data['permesso_amministratore'] = getAMP(AdminId) data['permesso_azienda'] = getAZP(azienda,AdminId) print('permesso_amministratore',data['permesso_amministratore']) print('permesso_azienda',data['permesso_azienda']) if 'indietro' in request.POST: return HttpResponseRedirect(reverse('azienda:welcome')) if request.method == "POST": print("Richiesta creazione nuova azienda") nuovaazienda = formAzienda(request.POST) if nuovaazienda.is_valid(): print("il form e' valido",request.POST) if not azienda: azienda = Azienda() azienda.nome = nuovaazienda.cleaned_data.get('nome') azienda.mail = nuovaazienda.cleaned_data.get('mail') azienda.partitaiva = nuovaazienda.cleaned_data.get('partitaiva') azienda.cambiopassword = nuovaazienda.cleaned_data.get('cambiopassword') azienda.forzanuovapassword = nuovaazienda.cleaned_data.get('forzanuovapassword') azienda.save() request.session['AziendaIdEdit'] = azienda.id print('azienda:',azienda.id) setAZP(azienda,data['admin'],"AZIENDA") if 'AZIENDA.CREA' in getAMP(data['admin']): setAZP(azienda,data['admin'],"AZIENDA.CREA") if 'AZIENDA.EDIT' in getAMP(data['admin']): setAZP(azienda,data['admin'],"AZIENDA.EDIT") if 'UTENTE' in getAMP(data['admin']): setAZP(azienda,data['admin'],"UTENTE") if 'UTENTE.CREA' in getAMP(data['admin']): setAZP(azienda,data['admin'],"UTENTE.CREA") assegnazione = AssegnazioneAzienda() assegnazione.azienda=azienda assegnazione.amministratore=Amministratore.objects.get(pk=AdminId) assegnazione.save() del request.session['AziendaIdEdit'] return HttpResponseRedirect(reverse('azienda:welcome')) else: print("form non valido") data['aziendaForm'] = formAzienda(request.POST) else: #non è un post print("Non è un post") formAziendaField = None if azienda: print('Abbiamo azienda',azienda.nome) tmp = dict() tmp['id'] = azienda.id tmp['nome'] = azienda.nome tmp['partitaiva'] = azienda.partitaiva tmp['mail'] = azienda.mail tmp['forzanuovapassword'] = azienda.forzanuovapassword tmp['cambiopassword'] = azienda.cambiopassword formAziendaField = formAzienda(tmp) else: tmp = dict() tmp['nome'] = '' tmp['partitaiva'] = '' tmp['mail'] = user.mail tmp['forzanuovapassword'] = False tmp['cambiopassword' ] = False formAziendaField = formAzienda(tmp) data['aziendaForm'] = formAziendaField data['listaAmministratore'],oggetti = listaAMMperAzienda(AziendaId) print(data['listaAmministratore']) return render(request,'azienda.editAzienda.html',data) def editSede(request): ''' edit Sedi azienda ''' if not 'AdminId' in request.session: return HttpResponseRedirect(reverse("login:start")) AdminId = request.session['AdminId'] print('AdminId',AdminId) data = dict() if 'AziendaId' in request.session: AziendaId = request.session['AziendaId'] print('AziendaId',AziendaId) data['azienda'] = Azienda.objects.get(pk=AziendaId) if 'SedeId' in request.session: SedeId = request.session['SedeId'] print('SedeId',SedeId) try: data['sede'] = Sede.objects.get(pk=SedeId) except Sede.DoesNotExist as dne: print("non esiste") data['HeaderTitle'] = getConfig('HeaderTitle') data['Navbar']=False data['HeaderTitle'] = getConfig('HeaderTitle') admin = data['admin'] = Amministratore.objects.get(pk=AdminId) flag = False if 'SedeIdEdit' in request.session: print('trovato riferimento SedeIdEdit',request.session.get('SedeIdEdit')) seid = request.session.get('SedeIdEdit') try: sede = Sede.objects.get(pk=seid) print('sede trovata',sede.nome) flag = True except Sede.DoesNotExist as dne: print('Sede indicata inesistente',dne) sede = Sede() sede.azienda = Azienda.objects.get(pk=AziendaId) print('sede.azienda',sede.azienda.nome) sede.cambiopassword = sede.azienda.cambiopassword sede.forzanuovapassword = sede.azienda.forzanuovapassword sede.otppassword = sede.azienda.otppassword data['permesso_amministratore'] = getAMP(AdminId) print('permesso_amministratore',data['permesso_amministratore']) if flag: data['permesso_sede'] = getSEP(sede,AdminId) print('permesso_sede',data['permesso_sede']) data['permesso_azienda'] = getAZP(AziendaId,AdminId) print('permesso_azienda',data['permesso_azienda']) if 'indietro' in request.POST: return HttpResponseRedirect(reverse('azienda:welcome')) if request.method == "POST": print("Richiesta creazione nuova azienda") nuovasede = formSede(request.POST) if nuovasede.is_valid(): print("il form e' valido",request.POST) sede.nome = nuovasede.cleaned_data.get('nome') sede.mail = nuovasede.cleaned_data.get('mail') sede.cambiopassword = nuovasede.cleaned_data.get('cambiopassword') sede.forzanuovapassword = nuovasede.cleaned_data.get('forzanuovapassword') sede.otppassword = nuovasede.cleaned_data.get('otppassword') sede.info = nuovasede.cleaned_data.get('info') sede.identificativo = nuovasede.cleaned_data.get('identificativo') sede.save() print('salvataggio sede',nuovasede.cleaned_data) request.session['SedeIdEdit'] = sede.id print('sede:',sede.id) print('azienda',sede.azienda.nome) setSEP(sede,data['admin'],"SEDE") if 'SEDE.CREA' in getAMP(data['admin']): setSEP(sede,data['admin'],"SEDE.CREA") if 'SEDE.EDIT' in getAMP(data['admin']): setSEP(sede,data['admin'],"SEDE.EDIT") if 'UTENTE' in getAMP(data['admin']): setSEP(sede,data['admin'],"UTENTE") if 'UTENTE.CREA' in getAMP(data['admin']): setSEP(sede,data['admin'],"UTENTE.CREA") # verifica assegnazione az = AssegnazioneSede.objects.filter(sede=sede,amministratore=admin) print('assegnazione',az) if not az: az = AssegnazioneSede() az.sede=sede az.amministratore=admin az.save() print(sede.nome,admin.nome) print('az.admin',az.sede,az.amministratore.nome) return HttpResponseRedirect(reverse('azienda:welcome')) else: print("form non valido") data['sedeForm'] = formSede(request.POST) else: #non è un post print("Non è un post") tmp = dict() tmp['nome'] = sede.nome tmp['info'] = sede.info tmp['identificativo'] = sede.identificativo tmp['cambiopassword'] = sede.cambiopassword tmp['forzanuovapassword'] = sede.forzanuovapassword tmp['otppassword'] = sede.otppassword print('stato tmp',tmp) data['sedeForm'] = formSede(tmp) data['listaAmministratore'],oggetti = listaAMMperSede(SedeId) return render(request,'azienda.editSede.html',data)