| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023 |
- 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")
- print("sede nome",p)
- lista = SEP.objects.filter(sede=sede,amministratore=amministratore,permesso=p)
- print('lista lista',lista,sede,amministratore,p)
- 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)
|