| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022 |
- from django.shortcuts import render
- from .models import *
- from .forms import *
- from att.views import *
- from config.views import *
- from random import randint
- from django.http import HttpResponse,HttpResponseRedirect
- from django.urls import reverse
- from sicurezza.views import *
- from config.datafunc import *
- from django.db.models import Q
- def welcome(request):
- if not 'AdminId' in request.session:
- print("Non rilevo presensa AdminId in request.session")
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- print('cazzo cazzo')
- ### funzioni esterne fine ###
- ### permessi inizio ###
- data['permesso'] = getAMP(data['admin'])[0]
- print("******",data['azienda'])
- if 'azienda' in data:
- print('**** azienda presente ****')
- for t in getAZP(data['azienda'],data['admin'])[0]:
- if t not in data['permesso']:
- data['permesso'].append(t)
- if 'sede' in data:
- print('**** sede presente ****')
- for t in getSEP(data['sede'],data['admin'])[0]:
- if t not in data['permesso']:
- data['permesso'].append(t)
- print('permessi assegnati:',data['permesso'])
- ### permessi fine ###
- amministratorelista = Amministratore.objects.all()
- data['amministratorelista'] = amministratorelista
- print(len(amministratorelista))
- '''
- # mostriamo gli amministratori per l'azienda
- if data['azienda']:
- print('trovato riferimento per azienda')
- amministratorelista = data['azienda'].assegnazioneazienda_set.all()
- tmp=[]
- for al in amministratorelista:
- print(al.amministratore.nome)
- tmp.append(al.amministratore)
- data['amministratorelista'] = tmp
- if data['sede']:
- print('trovato riferimento per sede')
- amministratorelista = data['sede'].assegnazionesede_set.all()
- tmp = []
- for al in amministratorelista:
- try:
- print(al.amministratore.nome)
- tmp1 = al.amministratore
- tmp.append(al.amministratore)
- except AttributeError as ae:
- print(ae)
- data['amministratorelista'] = tmp
- '''
- data['amministratorelista'] = sorted(data['amministratorelista'], key = lambda x: x.login,reverse=False)
- data['amministratorelistalen'] = len(data['amministratorelista'])
- if request.method == 'POST':
- print("qualcosa e' stato premuto")
-
- if 'indietro' in request.POST:
- return HttpResponseRedirect(reverse("azienda:welcome"))
- if 'sceltanuovo' in request.POST:
- request.session['AmministratoreEditId'] = 0
- print('richiesto nuovo record')
- request.session['masteramm'] = True
- print('masteramm in edit adm',request.session['masteramm'])
- return HttpResponseRedirect(reverse('amministratore:edit'))
- formamministratoreeditid = FormAmministratoreEditId(request.POST,amministratore=data['amministratorelista'])
- if formamministratoreeditid.is_valid():
- scelta = formamministratoreeditid.cleaned_data.get('scelta')
- request.session['AmministratoreEditId'] = scelta
- print("Scelta effettuata",scelta)
- request.session['masteramm'] = True
- print('masteramm in edit adm',request.session['masteramm'])
- return HttpResponseRedirect(reverse("amministratore:edit"))
- #data['amministratorelista'] = amministratorelista
- #data['numeroRecordAmministratore'] = len(amministratorelista)
- #print(data)
- return render(request,'amministratore.welcome.html',data)
- def edit(request):
- '''
- edit amministratore o simile
- sulla base dei diritti assegnati, puo' leggero e/o scrivere nell'utente
- nella sede o nell'azienda.
- i diritti sono assegnati sulla base dell'utente e non successivamente
- all'assegnazione, tanto se l'utente ha una zona assegnata, quella puo' vedere
- e basta.
- '''
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- data = dict()
- data['HeaderTitle'] = getConfig('HeaderTitle')
- data['Navbar']=False
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permesso'] = getAMP(admin)[0]
-
- 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("Sede non esiste")
- data['sede'] = sede
- amministratore = None
- print(request)
- if 'AmministratoreEditId' in request.session:
- amministratoreEditId = request.session.get('AmministratoreEditId')
- try:
- amministratore = Amministratore.objects.get(pk=amministratoreEditId)
- except Amministratore.DoesNotExist as dne:
- amministratore = Amministratore()
- amministratore.pin = str(randint(100000,999999))
- print('amministratore',amministratore.id,amministratore.nome)
- print("request.method",request.method)
- if 'masteramm' in request.session:
- print('masteramm',request.session['masteramm'])
- data['MASTERAMM'] = request.session['masteramm']
-
- if request.method == 'POST':
- print("qualcosa e' stato premuto")
-
- if 'indietro' in request.POST:
- return HttpResponseRedirect(reverse("amministratore:welcome"))
- if 'AmministratoreDirittiAmministratoreButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreDirittiAmministratoreButton'")
- return HttpResponseRedirect(reverse("amministratore:editAMP"))
- if 'AmministratoreCancellaButton' in request.POST:
- print('editAmministratore: premuto "AmministratoreCancellaButton"')
- amp = amministratore.amp_set.all()
- azp = amministratore.azp_set.all()
- sep = amministratore.sep_set.all()
- print(amministratore.nome)
- print(len(amp),amp)
- print(len(azp),azp)
- print(len(sep),sep)
- for x in sep:
- x.delete()
- for x in azp:
- x.delete()
- for x in amp:
- x.delete()
- amministratore.delete()
- return HttpResponseRedirect(reverse("amministratore:welcome"))
-
- if 'AmministratoreDirittiAziendaButton' in request.POST:
- print('edit azienda: premuto "AmministratoreDirittiAziendaButton"')
- return HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'AmministratoreUpdateButton' in request.POST:
- formamministratore = FormAmministratore(request.POST)
- if formamministratore.is_valid():
- print('form valida formamministratore')
- amministratore.login=formamministratore.cleaned_data.get('login')
- amministratore.nome=formamministratore.cleaned_data.get('nome')
- amministratore.mail=formamministratore.cleaned_data.get('mail')
- amministratore.pin=formamministratore.cleaned_data.get('pin')
- amministratore.save()
- print('id amministratore salvato/nuovo',amministratore.id,":",amministratore.nome)
- request.session['AmministratoreEditId'] = amministratore.id
-
- return HttpResponseRedirect(reverse('amministratore:welcome'))
- tmp = dict()
- tmp['nome'] = amministratore.nome
- tmp['login'] = amministratore.login
- tmp['pin'] = amministratore.pin
- tmp['mail'] = amministratore.mail
- data['amministratore'] = FormAmministratore(tmp)
- if amministratore.id:
- # elenco aziende autorizzate per amministratore
- data['listaazienda'] = listaAZP(amministratore)[0]
- print('lista azienda',len(data['listaazienda']))
- # elenco dei permessi per amministratore
- data['listapermesso'] = getAMP(amministratore)[2]
- print('lista permesso',len(data['listapermesso']))
- #calcola la differenza tra i permessi assegnati e quelli disponibili
- data['listapermessotutto'] = getPermesso()
- data['listapermessomancante'] = getAMP(amministratore)[1]
- data['listapermessodiff'] = list(set(data['listapermessotutto']) - set(data['listapermessomancante']))
- print('Quanti ne mancano',len(data['listapermessodiff']),data['listapermessodiff'])
- #calcolo la differenza tra tutte le aziende e le aziende sottoposte a permesso
- listaaziendatutte = Azienda.objects.all()
- #data['listaaziendadiff'] = list(set(listaaziendatutte)-set(data['listaazienda']))
- data['listaaziendadiff'] = sorted(list(set(listaaziendatutte)-set(data['listaazienda'])), key = lambda x: x.nome,reverse=False)
- print('Differenza aziende',len(data['listaaziendadiff']))
-
- return render(request,'amministratore.edit.html',data)
- def editAMP(request):
- ### consente di aggiornare i diritti a livello di amministratore ###
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- ### funzioni esterne fine ###
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permesso'] = getAMP(admin)[0]
- amministratore = None
- if 'AmministratoreEditId' in request.session:
- amministratoreEditId = request.session.get('AmministratoreEditId')
- try:
- amministratore = Amministratore.objects.get(pk=amministratoreEditId)
- except Amministratore.DoesNotExist as dne:
- return HttpResponseRedirect(reverse("amministratore:edit"))
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- data['listapermessiassegnati'] = getAMP(data['amministratore'])[1]
- print('listapermessiassegnati',data['listapermessiassegnati'])
- data['listapermessiassegnabili'] = Permesso.objects.all()
- print('listapermessiassegnabili',data['listapermessiassegnabili'])
- if request.method == 'POST':
- if 'AmministratoreButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreButton'")
- return HttpResponseRedirect(reverse("amministratore:edit"))
- if 'AmministratoreReturnButton' in request.POST:
- print("Un tasto èstato premuto 'AmministratoreReturnButton'")
- return HttpResponseRedirect(reverse("amministratore:welcome"))
- if 'indietro' in request.POST:
- print("Un tasto è stato premuto 'Indietro'")
- return HttpResponseRedirect(reverse("azienda:welcome"))
- formpermessodaaggiungere = FormPermessoDaAggiungere(request.POST,permessi=data['listapermessiassegnabili'])
- if formpermessodaaggiungere.is_valid():
- print('formpermessodaaggiungere valido')
- permesso = formpermessodaaggiungere.cleaned_data.get('ListaPermessiDaAggiungere')
- print('*' * 10)
- setAMP(amministratore,int(permesso))
- print('*' * 10)
- else:
- print('non va: formpermessodaaggiungere',formpermessodaaggiungere)
- print('*' * 20)
- formpermessodarimuovere = FormPermessoDaRimuovere(request.POST)
- if formpermessodarimuovere.is_valid():
- print('formpermessodarimuovere valido')
- permesso = formpermessodarimuovere.cleaned_data.get('ConfermaCancellazionePermesso')
- print('ConfermaCancellazionePermesso',permesso)
- delAMP(amministratore,permesso)
- else:
- print('non va: formpermessodarimuovere',formpermessodarimuovere)
- else:
- print('che merda do operazione')
- print(request.POST)
- data['listapermessiassegnati'] = getAMP(data['amministratore'])[1]
- print('listapermessiassegnati',data['listapermessiassegnati'])
- data['listapermessiassegnabili'] = Permesso.objects.all()
- print('listapermessiassegnabili',data['listapermessiassegnabili'])
- return render(request,'amministratore.edit.AMP.html',data)
- def editAZ(request):
- ### edit lista aziende autorizzate
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- ### funzioni esterne fine ###
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permesso'] = getAMP(admin)[0]
- listaaziendatutte = Azienda.objects.all()
- if 'paramm' in request.session and request.session['paramm']:
- data['DONTSHOWDIRITTI']=True
- amministratore = None
- if 'AmministratoreEditId' in request.session:
- amministratoreEditId = request.session.get('AmministratoreEditId')
- try:
- amministratore = Amministratore.objects.get(pk=amministratoreEditId)
- except Amministratore.DoesNotExist as dne:
- return HttpResponseRedirect(reverse("amministratore:edit"))
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- if amministratore:
- data['listaazienda'] = listaAZP(amministratore)[0]
- data['listaaziendadiff'] = list(set(listaaziendatutte)-set(data['listaazienda']))
- else:
- data['listaaziendadiff'] = list(set(listaaziendatutte))
- #parliamo di diritti assegnati all'azienda.
- data['dirittiAZIENDA'] = Permesso.objects.filter(Q(classe='AZI')|Q(classe='SED'))
- print('dirittiAZIENDA',len(data['dirittiAZIENDA']))
- if request.method == 'POST':
- print("qualcosa e' stato premuto in editAZ")
-
- if 'AmministratoreReturnButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreReturnButton'")
- return HttpResponseRedirect(reverse("amministratore:welcome"))
- if 'AmministratoreButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreButton'")
- return HttpResponseRedirect(reverse("amministratore:edit"))
- if 'indietro' in request.POST:
- print("Un tasto è stato premuto 'Indietro'")
- return HttpResponseRedirect(reverse("azienda:welcome"))
- if 'AziendaDaAggiungereButton' in request.POST:
- print('un tasto è stato premuto AziendaDaAggiungereButton')
- formaziendadaaggiungere = FormAziendaDaAggiungere(request.POST,azienda=listaaziendatutte)
- if formaziendadaaggiungere.is_valid():
- print('AziendaDaAggiungere, form valida')
- azienda = formaziendadaaggiungere.cleaned_data.get('ListaAziendaDaAggiungere')
- print(azienda)
- setAZP(azienda,amministratore,'AZIENDA')
- else:
- print('AziendaDaAggiungere, form non valido')
- if 'SedeButton' in request.POST:
- print("Un tasto è stato premuto 'SedeButton'")
- azienda = request.POST.get('SedeButton')
- request.session['EditAziendaId'] = azienda
- return HttpResponseRedirect(reverse("amministratore:editSE"))
- if 'PermessoButton' in request.POST:
- print("Un tasto è stato premuto 'PermessoButton")
- azienda = request.POST.get('PermessoButton')
- request.session['EditAziendaPermessoId'] = azienda
- return HttpResponseRedirect(reverse("amministratore:editAZP"))
-
- if 'ConfermaCancellazioneAzienda' in request.POST:
- print("Un tasto è stato premuto 'ConfermaCancellazioneAzienda'")
- azi = int(request.POST.get('ConfermaCancellazioneAzienda'))
- delAZP(azi,amministratore)
- if amministratore:
- data['listaazienda'] = listaAZP(amministratore)[0]
- data['listaaziendadiff'] = list(set(listaaziendatutte)-set(data['listaazienda']))
- else:
- data['listaaziendadiff'] = list(set(listaaziendatutte))
- data['listaaziendadiff'] = sorted(data['listaaziendadiff'], key = lambda x: x.nome,reverse=False)
- return render(request,'amministratore.edit.AZ.html',data)
- def editAZP(request):
- ### edit diritti associati all'azienda.
- ### in questa sezione procediamo con l'assegnare o rimuovere i diritti di questo amministratore
- ### per le aziende in elenco.
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- ### funzioni esterne fine ###
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permessoAMP'] = getAMP(admin)[1]
- amministratore = None
- if 'AmministratoreEditId' in request.session:
- amministratoreEditId = request.session.get('AmministratoreEditId')
- try:
- amministratore = Amministratore.objects.get(pk=amministratoreEditId)
- except Amministratore.DoesNotExist as dne:
- return HttpResponseRedirect(reverse("amministratore:edit"))
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- if 'EditAziendaPermessoId' in request.session:
- azienda = Azienda.objects.get(pk=request.session.get('EditAziendaPermessoId'))
- print('azienda',azienda.nome)
- data['aziendaOnWork'] = azienda
- data['permessoAZP'] = getAZP(azienda,amministratore)[1]
- if 'paramm' in request.session and request.session['paramm']:
- data['DONTSHOWDIRITTI']=True
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- ####################################
- listadirittidisponibili= Permesso.objects.filter(Q(classe='AZI')|Q(classe='SED')|Q(classe='UTE')|Q(classe='DOC'))
- # diciamo che fatta cosi' mi pare una pecionata, ma funzionata. magari va ottimizzata un po'
- print(type(listadirittidisponibili))
- ldd = list()
- for i in listadirittidisponibili:
- ldd.append(i)
- print(type(ldd))
- print('*' * 20)
- data['listapermessiassegnabili'] = list()
- for i in ldd:
- if i not in data['permessoAZP']:
- data['listapermessiassegnabili'].append(i)
- ##########################################
- if request.method == 'POST':
- print("qualcosa e' stato premuto")
-
- if 'AmministratoreReturnButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreReturnButton'")
- return HttpResponseRedirect(reverse("amministratore:welcome"))
- if 'AmministratoreButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreButton'")
- return HttpResponseRedirect(reverse("amministratore:edit"))
- if 'AmministratoreAziendaButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreAziendaButton'")
- return HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'PermessoDaAggiungereButton' in request.POST:
- print("Un tasto è stato premuto 'PermessoDaAggiungereButton'")
- formpermessodaaggiungere = FormPermessoDaAggiungere(request.POST,permessi=data['listapermessiassegnabili'])
- if formpermessodaaggiungere.is_valid():
- print('listapermessidaaggiungere',formpermessodaaggiungere.cleaned_data.get('ListaPermessiDaAggiungere'))
- setAZP(azienda,amministratore,int(formpermessodaaggiungere.cleaned_data.get('ListaPermessiDaAggiungere')))
- else:
- print('errore formpermessodaaggiungere',formpermessodaaggiungere)
- if 'indietro' in request.POST:
- print("Un tasto è stato premuto 'Indietro'")
- return HttpResponseRedirect(reverse("azienda:welcome"))
- if 'ConfermaCancellazionePermesso' in request.POST:
- print("Un tasto è stato premuto 'ConfermaCancellazionePermesso'")
- delAZP(azienda,amministratore,int(request.POST.get('ConfermaCancellazionePermesso')))
- data['permessoAZP'] = getAZP(azienda,amministratore)[1]
- ####################################
- listadirittidisponibili= Permesso.objects.filter(Q(classe='AZI')|Q(classe='SED')|Q(classe='UTE')|Q(classe='DOC'))
- # diciamo che fatta cosi' mi pare una pecionata, ma funzionata. magari va ottimizzata un po'
- print(type(listadirittidisponibili))
- ldd = list()
- for i in listadirittidisponibili:
- ldd.append(i)
- print(type(ldd))
- print('*' * 20)
- data['listapermessiassegnabili'] = list()
- for i in ldd:
- if i not in data['permessoAZP']:
- data['listapermessiassegnabili'].append(i)
- ##########################################
- return render(request,'amministratore.edit.AZP.html',data)
- def editSE(request):
- ### edit diritti associati alla sede
- ### in questa sezione procediamo con l'assegnare o rimuovere i diritti di questo amministratore
- ### per le sedi in elenco.
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- ### funzioni esterne fine ###
- if not 'EditAziendaId' in request.session:
- HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permesso'] = getAMP(admin)[0]
- amministratore = None
- if 'AmministratoreEditId' in request.session:
- amministratoreEditId = request.session.get('AmministratoreEditId')
- try:
- amministratore = Amministratore.objects.get(pk=amministratoreEditId)
- except Amministratore.DoesNotExist as dne:
- return HttpResponseRedirect(reverse("amministratore:editSE"))
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- azienda = Azienda.objects.get(pk=request.session.get('EditAziendaId'))
- print('azienda',azienda.nome)
- data['aziendaOnWork'] = azienda
- data['listasede'] = listaSEP(azienda,amministratore.id,"SEDE")[0]
- data['listasede'].sort(key=lambda x: x.nome,reverse=False)
- print("data['listasede']",len(data['listasede']),type(data['listasede']))
- listasedetutte = azienda.sede_set.all().order_by('nome')
- print('listasedetutte',len(listasedetutte))
- data['listasedediff'] = list(set(listasedetutte)-set(data['listasede']))
- data['listasedediff'].sort(key=lambda x: x.nome,reverse=False)
- #data['listasedediff'] = listasedetutte
- print("data['listasedediff']",len(data['listasedediff']))
- # parliamo di diritti relativi alle sedi
- data['dirittiSEDE'] = Permesso.objects.filter(classe='SED')
- print('dirittiSEDE',len(data['dirittiSEDE']))
- print('minchia')
- if request.method == 'POST':
- print("qualcosa é stato premuto")
-
- if 'AmministratoreReturnButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreReturnButton'")
- return HttpResponseRedirect(reverse("amministratore:welcome"))
- if 'AmministratoreButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreButton'")
- return HttpResponseRedirect(reverse("amministratore:edit"))
- if 'AmministratoreAziendaButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreAziendaButton'")
- return HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'AmministratoreEditAZPButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreEditAZPButton'")
- return HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'PermessoButton' in request.POST:
- print("Un tasto è stato premuto 'PermessoButton")
- sede = request.POST.get('PermessoButton')
- request.session['EditSedePermessoId'] = sede
- return HttpResponseRedirect(reverse("amministratore:editSEP"))
- if 'SedeConfermaCancellazionePermessoButton' in request.POST:
- print("un tasto è stato premuto 'SedeConfermaCancellazionePermessoButton'")
- sede = request.POST['SedeConfermaCancellazionePermessoButton']
- print('Sede da rimuovere',sede)
- p = Permesso.objects.get(nome="SEDE")
- lista = SEP.objects.filter(sede=sede,amministratore=amministratore,permesso=p)
- print('lista lista',lista)
- for p in lista:
- p.delete()
- p = Permesso.objects.get(nome="DOCUMENTO")
- lista = SEP.objects.filter(sede=sede,amministratore=amministratore,permesso=p)
- print('lista lista',lista)
- for p in lista:
- p.delete()
- p = Permesso.objects.get(nome="UTENTE")
- lista = SEP.objects.filter(sede=sede,amministratore=amministratore,permesso=p)
- print('lista lista',lista)
- for p in lista:
- p.delete()
- if 'SedeDaAggiungereButton' in request.POST:
- print('un tasto è stato premuto SedeDaAggiungereButton')
- formsededaaggiungere = FormSedeDaAggiungere(request.POST,sede=data['listasedediff'])
- if formsededaaggiungere.is_valid():
- print('SedeDaAggiungere, form valida')
- sede = formsededaaggiungere.cleaned_data.get('ListaSedeDaAggiungere')
- print('id sede da aggiungere',sede)
- setSEP(sede,amministratore,'SEDE')
- setSEP(sede,amministratore,'UTENTE')
- setSEP(sede,amministratore,'DOCUMENTO')
- else:
- print('SedeDaAggiungere, form non valido')
- if 'SedePermessoUpdateButton' in request.POST:
- print("Un tasto è stato premuto 'SedePermessoUpdate'")
- print(request.POST)
- formpermessodaaggiungere = FormPermessoDaAggiungere(request.POST)
- formpermessodaaggiungere.c(Permesso.objects.filter(classe="SED"))
- if formpermessodaaggiungere.is_valid():
- print('formpermessodaaggiungere è valido')
- print("cazzo cazzo")
- else:
- print('errore',formpermessodaaggiungere)
- #formpermessoupdate = form.PermessoUpdate(request.POST)
- data['listasede'] = listaSEP(azienda,amministratore.id,"SEDE")[0]
- data['listasede'].sort(key=lambda x: x.nome,reverse=False)
- print("data['listasede']",len(data['listasede']),type(data['listasede']))
- listasedetutte = azienda.sede_set.all().order_by('nome')
- print('listasedetutte',len(listasedetutte))
- data['listasedediff'] = list(set(listasedetutte)-set(data['listasede']))
- data['listasedediff'].sort(key=lambda x: x.nome,reverse=False)
- #data['listasedediff'] = listasedetutte
- print("data['listasedediff']",len(data['listasedediff']))
- # parliamo di diritti relativi alle sedi
- data['dirittiSEDE'] = Permesso.objects.filter(classe='SED')
- print('dirittiSEDE',len(data['dirittiSEDE']))
- return render(request,'amministratore.edit.SE.html',data)
- def editSEP(request):
- ### edit diritti associati all sede.
- ### in questa sezione procediamo con l'assegnare o rimuovere i diritti di questo amministratore
- ### per le aziende in elenco.
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- ### funzioni esterne fine ###
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permessoSEP'] = getAMP(admin)[1]
- amministratore = None
- if 'AmministratoreEditId' in request.session:
- amministratoreEditId = request.session.get('AmministratoreEditId')
- try:
- amministratore = Amministratore.objects.get(pk=amministratoreEditId)
- except Amministratore.DoesNotExist as dne:
- return HttpResponseRedirect(reverse("amministratore:edit"))
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- if 'EditSedePermessoId' in request.session:
- sede = Sede.objects.get(pk=request.session.get('EditSedePermessoId'))
- print('sede',sede.nome)
- data['sedeOnWork'] = sede
- data['permessoSEP'] = getSEP(sede,amministratore)[1]
- print('PermessoSEP',data['permessoSEP'])
- if 'paramm' in request.session and request.session['paramm']:
- data['DONTSHOWDIRITTI']=True
- print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
- data['amministratore'] = amministratore
- ####################################
- listadirittidisponibili= Permesso.objects.filter(Q(classe='SED')|Q(classe='UTE')|Q(classe='DOC'))
- # diciamo che fatta cosi' mi pare una pecionata, ma funzionata. magari va ottimizzata un po'
- print(type(listadirittidisponibili))
- ldd = list()
- for i in listadirittidisponibili:
- ldd.append(i)
- print(type(ldd))
- print('*' * 20)
- data['listapermessiassegnabili'] = list()
- for i in ldd:
- if i not in data['permessoSEP']:
- data['listapermessiassegnabili'].append(i)
- ##########################################
- if request.method == 'POST':
- print("qualcosa e' stato premuto")
-
- if 'AmministratoreReturnButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreReturnButton'")
- return HttpResponseRedirect(reverse("amministratore:welcome"))
- if 'AmministratoreButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreButton'")
- return HttpResponseRedirect(reverse("amministratore:edit"))
- if 'AmministratoreAziendaButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreAziendeButton'")
- return HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'AmministratoreSedeButton' in request.POST:
- print("Un tasto è stato premuto 'AmministratoreAziendeButton'")
- return HttpResponseRedirect(reverse("amministratore:editSE"))
- if 'PermessoDaAggiungereButton' in request.POST:
- print("Un tasto è stato premuto 'PermessoDaAggiungereButton'")
- formpermessodaaggiungere = FormPermessoDaAggiungere(request.POST,permessi=data['listapermessiassegnabili'])
- if formpermessodaaggiungere.is_valid():
- print('listapermessidaaggiungere',formpermessodaaggiungere.cleaned_data.get('ListaPermessiDaAggiungere'))
- setSEP(sede,amministratore,int(formpermessodaaggiungere.cleaned_data.get('ListaPermessiDaAggiungere')))
- else:
- print('errore formpermessodaaggiungere',formpermessodaaggiungere)
- if 'ConfermaCancellazionePermesso' in request.POST:
- print("Un tasto è stato premuto 'ConfermaCancellazionePermesso'")
- delSEP(azienda,amministratore,int(request.POST.get('ConfermaCancellazionePermesso')))
- data['permessoSEP'] = getSEP(sede,amministratore)[1]
- ####################################
- listadirittidisponibili= Permesso.objects.filter(Q(classe='SED')|Q(classe='UTE')|Q(classe='DOC'))
- # diciamo che fatta cosi' mi pare una pecionata, ma funzionata. magari va ottimizzata un po'
- print(type(listadirittidisponibili))
- ldd = list()
- for i in listadirittidisponibili:
- ldd.append(i)
- print(type(ldd))
- print('*' * 20)
- data['listapermessiassegnabili'] = list()
- for i in ldd:
- if i not in data['permessoSEP']:
- data['listapermessiassegnabili'].append(i)
- ##########################################
- return render(request,'amministratore.edit.SEP.html',data)
- '''
- if 'ConfermaCancellazionePermessoXAmministratore' in request.POST:
- print("Premuto tasto ConfermaCancellazionePermessoXAmministratore")
- formcancellapermessoxamministratore = FormCancellaPermessiXAmministratore(request.POST)
- if formcancellapermessoxamministratore.is_valid():
- print('Form Valida CancellaPermessoXAmministratore')
- permessodarimuovere = formcancellapermessoxamministratore.cleaned_data.get('ConfermaCancellazionePermessoXAmministratore')
- print('Permesso da rimuovere',permessodarimuovere)
- amp = AMP.objects.get(pk=permessodarimuovere)
- amp.delete()
- if 'PermessoDaAggiungereButton' in request.POST:
- print("Premuto aggiunta permesso")
- formpermessodaaggiungere = FormPermessoDaAggiungere(request.POST)
- print(formpermessodaaggiungere)
- if formpermessodaaggiungere.is_valid():
- print("Form permessodaaggiungere valida")
- pda = Permesso.objects.get(pk=formpermessodaaggiungere.cleaned_data.get('permessodaaggiungere'))
- print('pda',pda.nome)
- amp = AMP()
- amp.amministratore = amministratore
- amp.permesso = pda
- amp.save()
- data['pane']='Permesso'
- if 'AziendaConfermaCancellazionePermesso' in request.POST:
- formcancellapermesso = FormCancellaPermessi(request.POST)
- if formcancellapermesso.is_valid():
- print('form valida formcancellapermesso')
- aziendadarimuovere = formcancellapermesso.cleaned_data.get('ConfermaCancellazionePermesso')
- print('azienda da rimuovere',aziendadarimuovere)
- #prima cosa togliamo i diritti alle sedi
- aztorm = None
- try:
- aztorm = Azienda.objects.get(pk=aziendadarimuovere)
- except Azienda.DoesNotExist:
- print('Azienda non trovata',aziendadarimuovere)
- print('azienda trovata',aztorm.nome)
- print("Iniziamo dalle sedi")
- sedi = aztorm.sede_set.all()
- for tmp in sedi:
- print('sede',tmp.nome)
- for p in tmp.sep_set.all():
- print('permesso',p.permesso.nome)
- p.delete()
- print("Ora tocca all'azienda")
- for p in aztorm.azp_set.all():
- print('permesso azienda',p.permesso.nome)
- p.delete()
- data['pane'] = "Azienda"
- listaaziendatutte = Azienda.objects.all()
- if amministratore.id:
- data['listaazienda'] = listaAZP(amministratore)[0]
- data['listaaziendadiff'] = list(set(listaaziendatutte)-set(data['listaazienda']))
- else:
- data['listaaziendadiff'] = list(set(listaaziendatutte))
- if 'AziendaDaAggiungereButton' in request.POST:
- formaziendamancante=FormAziendaMancante(request.POST)
- formaziendamancante.c(data['listaaziendadiff'])
- #print('fam',formaziendamancante)
- if formaziendamancante.is_valid():
- print('form valida formaziendamancante')
- aziendadaaggiungere = formaziendamancante.cleaned_data.get('aziendadaaggiungere')
- print('Azienda da aggiungere',aziendadaaggiungere)
- aztoadd = None
- try:
- aztoadd = Azienda.objects.get(pk=aziendadaaggiungere)
- except Azienda.DoesNotExist as dne:
- print("Azienda non trovata",aziendadaaggiungere)
- if aztoadd:
- print('Azienda in corso di aggiunta',aztoadd.nome)
- azp = AZP()
- azp.azienda = aztoadd
- azp.amministratore = amministratore
- azp.permesso = getPermesso("AZIENDA")
- print('permesso base',getPermesso("AZIENDA").nome)
- azp.save()
- print(azp.id)
- data['pane']='Azienda'
- if 'AziendaSelect' in request.POST:
- print('Richiesta Selezione Azienda')
- formaziendaselect = FormAziendaSelect(request.POST)
- if formaziendaselect.is_valid():
- print('FormAziendaSelect valido')
- aziendaselect = formaziendaselect.cleaned_data.get('AziendaSelect')
- request.session['aziendaselect'] = aziendaselect
- print('aziendaselect',aziendaselect)
- # una volta ottenuta l'azienda, selezioniamo le sedi:
- # le selezioni sono due:
- # 1 lista delle sedi gia' associate all'utente attraverso il permesso(SEP)
- # 2 lista delle sedi ancora da assegnare (tolte le sedi gia' assegnate)
- data['listasede'] = listaSEP(aziendaselect,amministratore)[0]
- data['listasedediff']= list(set(Azienda.objects.get(pk=aziendaselect).sede_set.all()) - set(listaSEP(aziendaselect,amministratore)[0]))
- print("lista sede",len(data['listasede']))
- data['pane']='Azienda'
- if 'SedeConfermaCancellazionePermesso' in request.POST:
- print('Richiesta cancellazione Permessi Sede')
- if 'SedeDaAggiungereButton' in request.POST:
- if 'aziendaselect' in request.session:
- aziendaselect = request.session.get('aziendaselect')
- print('Richiesta Sede da aggiungere')
- data['listasede'] = listaSEP(aziendaselect,amministratore)[0]
- data['listasedediff']= list(set(Azienda.objects.get(pk=aziendaselect).sede_set.all()) - set(listaSEP(aziendaselect,amministratore)[0]))
- print('listasedediff len',len(data['listasedediff']))
- formsedemancante = FormSedeMancante(request.POST,lista=data['listasedediff'])
- #formsedemancante.c(data['listasedediff'])
- if 'ListaSedeMancante' in request.POST:
- print('ListaSedeMancante',request.POST['ListaSedeMancanteSelect'])
- if formsedemancante.is_valid():
- listasedemancante = formsedemancante.cleaned_data.get('ListaSedeMancanteSelect')
- print(listasedemancante)
- for lsm in listasedemancante:
- setSEP(Sede.objects.get(pk=lsm),amministratore,Permesso.objects.get(nome="SEDE"))
- #else: print(formsedemancante)
- '''
- ### editing amministratore senza ulteriori funzioni ###
- def editAmministratore(request):
- if not 'AdminId' in request.session:
- return HttpResponseRedirect(reverse("login:start"))
- ### funzioni esterne ###
- d = DataDict()
- data = d.getData()
- data['NavBar']=True
- data['ShowSelectAzienda'] = False
- data['ShowSelectSede'] = False
- define = Define(request)
- data['admin'] = define.getAdmin()
- data['azienda'] = define.getAzienda()
- data['AziendaId'] = define.getAziendaId()
- data['sede'] = define.getSede()
- data['SedeId'] = define.getSedeId()
- print('cazzo cazzo')
- ### funzioni esterne fine ###
- if 'AdminId' in request.session:
- data['AdminId'] = request.session['AdminId']
- admin = Amministratore.objects.get(pk=data['AdminId'])
- data['admin'] = admin
- print('admin',admin.id,admin.nome)
- data['permesso'] = getAMP(admin)[0]
- amministratore = data['admin']
- print('amministratore',amministratore.id,amministratore.nome)
- if request.method == 'POST':
- print("qualcosa e' stato premuto")
- if 'indietro' in request.POST:
- return HttpResponseRedirect(reverse("azienda:welcome"))
- if 'AmministratoreDirittiAziendaButton' in request.POST:
- print("premuto: 'AmministratoreDirittiAziendaButton'")
- return HttpResponseRedirect(reverse("amministratore:editAZ"))
- if 'AmministratoreUpdateButton' in request.POST:
- formamministratore = FormAmministratore(request.POST)
- if formamministratore.is_valid():
- print('form valida formamministratore')
- amministratore.login=formamministratore.cleaned_data.get('login')
- amministratore.nome=formamministratore.cleaned_data.get('nome')
- amministratore.mail=formamministratore.cleaned_data.get('mail')
- amministratore.pin=formamministratore.cleaned_data.get('pin')
- amministratore.save()
- print('id amministratore salvato/nuovo',amministratore.id,":",amministratore.nome)
- tmp = dict()
- tmp['nome'] = amministratore.nome
- tmp['login'] = amministratore.login
- tmp['pin'] = amministratore.pin
- tmp['mail'] = amministratore.mail
- data['amministratore'] = FormAmministratore(tmp)
- return render(request,'amministratore.edit.html',data)
|