Преглед изворни кода

modifiche nella visualizzazione liste sedi

Mauro пре 9 месеци
родитељ
комит
dbdafba903
2 измењених фајлова са 25 додато и 9 уклоњено
  1. 5 6
      azienda/views.py
  2. 20 3
      sicurezza/views.py

+ 5 - 6
azienda/views.py

@@ -68,7 +68,7 @@ def welcome(request):
   ### lista delle sedi valida per questo amministratore
   assegnazionesede=None
   if azienda:
-    assegnazionesede = listaSEP(admin,azienda)
+    assegnazionesede = listaSEP(admin,azienda,"SEDE")
     print("assegnazionesede",len(assegnazionesede))
 
   ### lista attività ###
@@ -191,17 +191,16 @@ def welcome(request):
   if 'azienda' in data:
     print('azienda selezionata:',data['azienda'].nome)
     # costruisce la lista delle sedi.
-    #data['SedeLista'] = data['azienda'].sede_set.all().order_by('nome')
-    print(":::",listaSEP(data['azienda'],admin))
-    data['SedeLista'] = listaSEP(data['azienda'],admin)[0]
-    print("::::",data['SedeLista'])
+    #print(":::",listaSEP(data['azienda'],admin))
+    data['SedeLista'] = listaSEP(data['azienda'],admin,"SEDE")[0]
+    #print("::::",data['SedeLista'])
     print(data)
     
   print('numero aziende',len(data['AziendaLista']))
   
   if 'SedeLista' in data:
     print('numero di sedi',len(data['SedeLista']))
-    for i in data['SedeLista']: print(":::",i.nome)
+    #for i in data['SedeLista']: print(":::",i.nome)
 
   return render(request,'azienda.welcome.html',data)
 

+ 20 - 3
sicurezza/views.py

@@ -222,7 +222,8 @@ def listaAZP(amministratore=None):
   return (aziende,oggetto)
 
 # ritorna la lista delle sedi per azienda e amministratore
-def listaSEP(azienda=None,amministratore=None):
+def listaSEP(azienda=None,amministratore=None,permesso=None):
+
   print("listaSEP",azienda,amministratore)
   
   azi = None
@@ -241,6 +242,18 @@ def listaSEP(azienda=None,amministratore=None):
     print('amministratore: istanza int')
     amm = Amministratore.objects.get(pk=amministratore)
 
+  per=None
+  print('listaSEP',permesso)
+  if isinstance(permesso,Permesso):
+    print('si tratta di una istanza, possiamo passarla direttamente')
+    per = permesso
+  if isinstance(permesso,int):
+    print('si tratta di un int, quindi dobbiamo cercare il valore')
+    per = Permesso.objects.get(pk=permesso)
+  if isinstance(permesso,str):
+    print('si tratta di una str, quindi dobbiamo cercare il valore')
+    per = Permesso.objects.get(nome=permesso)
+
   print(amm,azi)
   if not amm: 
     print('problema con la definizione di amministratore')
@@ -257,10 +270,11 @@ def listaSEP(azienda=None,amministratore=None):
   oggetto = list()
 
   sedix = azi.sede_set.all()
+  print("sedix len",len(sedix))
   lam = list()
   
   for s in sedix:
-    tmp = SEP.objects.filter(sede=s).filter(amministratore=amm)
+    tmp = SEP.objects.filter(sede=s).filter(amministratore=amm).filter(permesso=per)
     print(len(tmp))
     for n in tmp:
       lam.append(n)
@@ -350,7 +364,10 @@ def setAMP(amministratore=None,permesso=None):
   p = AMP()
   p.permesso=per
   p.amministratore=amm
-  p.save()
+  try:
+    p.save()
+  except IntegrityError as ie:
+    print(ie)
   return [p,]
 
 def setAZP(azienda=None,amministratore=None,permesso=None):