فهرست منبع

completata parte diritti amministratore

mauro 9 ماه پیش
والد
کامیت
4983caff30
4فایلهای تغییر یافته به همراه67 افزوده شده و 40 حذف شده
  1. 6 1
      amministratore/forms.py
  2. 8 8
      amministratore/templates/amministratore.edit.html
  3. 41 26
      amministratore/views.py
  4. 12 5
      sicurezza/views.py

+ 6 - 1
amministratore/forms.py

@@ -35,7 +35,12 @@ class FormAmministratore(forms.Form):
 class FormCancellaPermessi(forms.Form):
   def __init__(self,*args,**kwargs):
     forms.Form.__init__(self,*args,**kwargs)
-    self.fields['confermacancellazionepermesso'] = forms.IntegerField(required=True)
+    self.fields['ConfermaCancellazionePermesso'] = forms.IntegerField(required=True)
+
+class FormCancellaPermessiXAmministratore(forms.Form):
+  def __init__(self,*args,**kwargs):
+    forms.Form.__init__(self,*args,**kwargs)
+    self.fields['ConfermaCancellazionePermessoXAmministratore'] = forms.IntegerField(required=True)
 
 class FormAziendaMancante(forms.Form):
   choices = list()

+ 8 - 8
amministratore/templates/amministratore.edit.html

@@ -97,7 +97,7 @@
               <div class="modal-dialog" role="document">
                 <div class="modal-content">
                   <div class="modal-header">
-                    <h5 class="modal-title" id="ConfirmDeletePermessoLabel">Conferma Cancellazione Diritti</h5>
+                    <h5 class="modal-title" id="ConfirmDeletePermessoLabel">Conferma Cancellazione Diritto</h5>
                       <span aria-hidden="true"></span>
                     </button>
                   </div>
@@ -108,7 +108,7 @@
                 <div class="modal-footer">
                   <form name='ConfirmDeleteModal' method='POST'>
                     {% csrf_token %}
-                    <button type="submit" name="confermacancellazionepermesso" value='{{ a.id }}' class="btn btn-primary">Cancella Permessi</button>
+                    <button type="submit" name="ConfermaCancellazionePermessoXAmministratore" value='{{ a.id }}' class="btn btn-primary">Cancella Permesso</button>
                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
                   </form>
                 </div>
@@ -120,8 +120,8 @@
                 {% csrf_token %}
 	      <td>
                 <select class="form-select" name="permessodaaggiungere" id=permessodaaggiungere">
-		  <option value="">-- Scegli ilpermesso da Aggiungere --</option>
-	          {% for lp in listpermessodiff  %}
+		  <option value="">-- Scegli il permesso da Aggiungere --</option>
+	          {% for lp in listapermessodiff  %}
 		  <option value="{{ lp.id }}">{{ lp.nome }}</option>
                     {% endfor %}
                 </select>
@@ -175,12 +175,12 @@
                 <div class="modal-body">
 	          <select class="form-select" multiple aria-label="Selezione Multipla Permessi" >
 		    {% for lp in listapermesso %}
-  		      <option value={{ lp.id }}>{{ lp.nome }} - {{ lp.descrizione }}</option>
+  		      <option value={{ lp.permesso.id }}>{{ lp.permesso.nome }} - {{ lp.descrizione }}</option>
                     {% endfor %}
 		  </select>
                 </div>
                 <div class="modal-footer">
-                  <form name='ConfirmDeleteModal' method='POST'>
+                  <form name="UpdatePermessoForm" method="POST">
                     {% csrf_token %}
                     <button type="submit" name="UpdatePermesso" value='{{ a.id }}' class="btn btn-primary">Aggiorna Permessi</button>
                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
@@ -208,7 +208,7 @@
                 <div class="modal-footer">
                   <form name='ConfirmDeleteModal' method='POST'>
                     {% csrf_token %}
-                    <button type="submit" name="confermacancellazionepermesso" value='{{ a.id }}' class="btn btn-primary">Cancella Permessi</button>
+                    <button type="submit" name="ConfermaCancellazionePermesso" value='{{ a.id }}' class="btn btn-primary">Cancella Permessi</button>
                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
                   </form>
                 </div>
@@ -229,7 +229,7 @@
                 </select>
 	      </td>
 	      <td>
-		<button type='submit' class='btn btn-primary'>Aggiungi</button>
+		<button type='submit' name="AziendaDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
 	      </td>
               </form>
 	    </tr>

+ 41 - 26
amministratore/views.py

@@ -165,30 +165,41 @@ def edit(request):
       request.session['AmministratoreEditId'] = amministratore.id
       return HttpResponseRedirect(reverse('amministratore:welcome'))
 
-    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)
+    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 'ConfermaCancellazionePermesso' 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()
-      print("Ora tocca all'azienda")
-      for p in aztorm.azp_set.all():
-        print('permesso azienda',p.permesso.nome)
-        p.delete()
 
     if amministratore.id:
       data['listaazienda'] = listaAZP(amministratore)[0]
@@ -226,15 +237,19 @@ def edit(request):
   data['amministratore'] = FormAmministratore(tmp)
 
   if amministratore.id:
+    # elenco aziende autorizzate per amministratore
     data['listaazienda'] = listaAZP(amministratore)[0]
-    data['listapermesso'] = getAMP(amministratore)[1]
+    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'] = data['listapermesso']
+
+    data['listapermessomancante'] = getAMP(amministratore)[1]
     data['listapermessodiff'] = list(set(data['listapermessotutto']) - set(data['listapermessomancante']))
-    print('Quanti ne mancano',data['listapermessodiff'])
+    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()

+ 12 - 5
sicurezza/views.py

@@ -23,15 +23,17 @@ def getAMP(amministratore=None):
     amm = Amministratore.objects.get(pk=amministratore)
 
   permessi = list()
-  oggetto = list()
+  oggettoPermesso = list()
+  oggettoAMM = list()
 
   for p in amm.amp_set.all():
     permessi.append(p.permesso.nome)
-    oggetto.append(p)
+    oggettoPermesso.append(p.permesso)
+    oggettoAMM.append(p)
 
   print('permessi disponibili',len(permessi))
   #for i in permessi: print(i,)
-  return (permessi,oggetto)
+  return (permessi,oggettoPermesso,oggettoAMM)
 
 #riporta l'elenco dei permessi per azienda, filtrato per amministratore
 def getAZP(azienda=None,amministratore=None):
@@ -58,14 +60,18 @@ def getAZP(azienda=None,amministratore=None):
     return []
 
   permessi = list()
-
+  oggettoPermesso = list()
+  oggettoAZP = list()
   for p in azi.azp_set.all().filter(amministratore=amm):
     permessi.append(p.permesso.nome)
+    oggettoPermesso.append(p.permesso)
+    oggettoAZP.append(p)
 
   print('permessi disponibili',len(permessi))
   #for i in permessi: print(i,)
-  return permessi
+  return (permessi,oggettoPermesso,oggettoAZP)
 
+'''
 # riporta l'elenco dei permessi per amministratore versione oggetto (adatta all'editing)
 def listaAMP(amministratore=None):
   amm=None
@@ -86,6 +92,7 @@ def listaAMP(amministratore=None):
   print('permessi disponibili',len(permessi))
   #for i in permessi: print(i,)
   return (permessi,oggetto)
+'''
 
 #ottiene la lista degli amministratori per azienda
 def listaAMMperAzienda(azienda=None):