Kaynağa Gözat

e' ora possibile cancellare le sedi dalla lista autorizzata

mauro 6 ay önce
ebeveyn
işleme
f8e436d546

+ 1 - 1
amministratore/templates/amministratore.edit.SEP.html

@@ -94,7 +94,7 @@
                 </div>
                 <div class="modal-footer">
                     {% csrf_token %}
-                    <button type="submit" name="AziendaConfermaCancellazionePermesso" value='{{ a.id }}' class="btn btn-primary">Cancella Permessi</button>
+                    <button type="submit" name="SedeConfermaCancellazionePermessoButton" value='{{ a.id }}' class="btn btn-primary">Cancella Permessi</button>
                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
                 </div>
               </div>

+ 24 - 2
amministratore/views.py

@@ -494,7 +494,7 @@ def editSEP(request):
 
   print('minchia')
   if request.method == 'POST':
-    print("qualcosa e' stato premuto")
+    print("qualcosa é stato premuto")
   
     if 'AmministratoreReturnButton' in request.POST:
       print("Un tasto è stato premuto 'AmministratoreReturnButton'")
@@ -505,9 +505,29 @@ def editSEP(request):
       return HttpResponseRedirect(reverse("amministratore:edit"))
 
     if 'AmministratoreEditAZPButton' in request.POST:
-      print("Un tasto èstato premuto 'AmministratoreEditAZPButton'")
+      print("Un tasto è stato premuto 'AmministratoreEditAZPButton'")
       return HttpResponseRedirect(reverse("amministratore:editAZP"))
 
+    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'])
@@ -516,6 +536,8 @@ def editSEP(request):
         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')
 

+ 30 - 7
sicurezza/views.py

@@ -369,14 +369,20 @@ def listaSEP(azienda=None,amministratore=None,permesso=None):
   return (sedi,oggetto)
 
 # getSEP: riporta l'elenco dei permessi per sede filtrato per amministratore
-def getSEP(sede=None,amministratore=None):
+def getSEP(sede=None,amministratore=None,permesso=None):
 
   print('getSEP',sede,amministratore)
 
   sed=None
   if isinstance(sede,Sede):
-    print('si tratta di una istanza sede')
+    print('sede: si tratta di una istanza sede')
     sed=sede
+  if isinstance(sede,str):
+    print('sede: si tratta di una instanza int')
+    try:
+      sede = int(sede)
+    except ValueError as ve:
+      print('Errore conversione sede')
   if isinstance(sede,int):
     print('sede: istanza int')
     sed = Sede.objects.get(pk=sede)
@@ -390,16 +396,33 @@ def getSEP(sede=None,amministratore=None):
     print('si tratta di un int, quindi dobbiamo cercare il valore')
     amm = Amministratore.objects.get(pk=amministratore)
 
+  per=None
+  if isinstance(permesso,Permesso):
+    print('si tratta di una istanza permesso')
+    per = permesso
+    print('permesso',per.nome)
+  if isinstance(permesso,str):
+    print('si tratta di una str, quindi dobbiamo cercare il valore')
+    per = Permesso.objects.get(nome=permesso)
+
   if not sed:
      print('sede non presente')
      return []
-  permessi = list()
 
-  for t in sed.sep_set.all():
-    print(t.amministratore.nome,t.permesso.nome)
+  if not amm:
+    print('amministratore non presente')
+    return []
 
-  for p in sed.sep_set.all().filter(amministratore=amm):
-    permessi.append(p.permesso.nome)
+  permessi = list()
+
+  if not permesso:
+    for p in sed.sep_set.all().filter(amministratore=amm):
+      print(p.amministratore.nome,p.permesso.nome)
+      permessi.append(p.permesso.nome)
+  else:
+    for p in sed.sep_set.all().filter(amministratore=amm).filter(permesso=per):
+      print(p.amministratore.nome,p.permesso.nome)
+      permessi.append(p.permesso.nome)
 
   print('permessi disponibili',len(permessi))
   #for i in permessi: print(i,)