Ver código fonte

Merge branch 'perms'

passaggio delle modifiche di perms (gestione permessi amministratori) a
master
mauro 6 meses atrás
pai
commit
46225d9549

+ 0 - 3
amministratore/forms.py

@@ -49,7 +49,6 @@ class FormCancellaPermessiXAmministratore(forms.Form):
 
 class FormAziendaMancante(forms.Form):
   choices = list()
-
   def __init__(self,*args,**kwargs):
     forms.Form.__init__(self,*args,**kwargs)
     self.fields['aziendadaaggiungere'] = forms.ChoiceField(required=True,choices=self.c(azienda))
@@ -61,7 +60,6 @@ class FormAziendaMancante(forms.Form):
     return self.choices
 
 class FormAziendaDaAggiungere(forms.Form):
-
   def __init__(self,*args,azienda=[],**kwargs):
     forms.Form.__init__(self,*args,**kwargs)
     self.fields['ListaAziendaDaAggiungere'] = forms.ChoiceField(required=True,choices=self.c(azienda))
@@ -74,7 +72,6 @@ class FormAziendaDaAggiungere(forms.Form):
     return choices
 
 class FormSedeDaAggiungere(forms.Form):
-
   def __init__(self,*args,sede=[],**kwargs):
     forms.Form.__init__(self,*args,**kwargs)
     self.fields['ListaSedeDaAggiungere'] = forms.ChoiceField(required=True,choices=self.c(sede))

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

@@ -12,7 +12,7 @@
   <!-- fine zona errori -->
   </div>
 
-  <div class="h4">
+  <div class="h5">
     Lista Permessi Amministrativi Assegnati
   </div> 
   <div class="h5">

+ 95 - 0
amministratore/templates/amministratore.edit.AZ.html

@@ -0,0 +1,95 @@
+{% extends 'base.html' %}
+
+{% block body %}
+
+ <div class="error">
+  <!-- errori form sede -->
+  {% if azienda.errors %}
+    <div class="alert alert-danger">
+    {{ azienda.errors }}
+    </div>
+  {% endif %}
+  <!-- fine zona errori -->
+  </div>
+
+  <div class='h4'>
+    Lista Aziende Autorizzate
+  </div> 
+  <div class='h5'>
+  Questa lista contiene le aziende a cui l'amministratore è autorizzato ad accedere. L'accesso è concesso in prima battuta solo in lettura.
+  usare il tasto "P" per consentire anche altre operazioni.
+  </div>
+
+  <form name='aziendapermessiform' method='POST'>
+  {% csrf_token %}
+  <ul class="list-group list-group-flush">
+    <li class="list-group-item">
+      <table class='table table-striped table-hover'>
+        <thead class='thead-dark'>
+          <tr>
+            <th scope='col'>Nome</th>
+            <th scope='col'>P.Iva</th>
+	    <th scope='col'>P</th>
+	    <th scope='col'>S</th>
+	    <th scope='col'>D</th>
+          </tr>
+          </thead>
+          <tbody>
+            {% for a in listaazienda %}
+              <tr>
+                <td> {{ a.nome }} </td>
+                <td> {{ a.partitaiva }} </td>
+		<td><button type='submit' class='btn btn-primary' name="PermessoButton" value='{{ a.id }}'>P</button></td>
+    		<td><button type='submit' class='btn btn-primary' name="SedeButton" value='{{ a.id }}'>S</button></td>
+		<td><button type='button' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmDeleteModal{{ a.id }}' value='{{ a.id }}'>D</button></td>
+              </tr>
+
+          <!-- Modal -->
+            <div class="modal fade" id="ConfirmDeleteModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ a.id }}" aria-hidden="true">
+              <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                  <div class="modal-header">
+                    <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione Diritti</h5>
+                      <span aria-hidden="true"></span>
+                    </button>
+                  </div>
+                  <div class="modal-body">
+                    Confermando si procede all'immediata rimozione dei permessi associati alla
+                    societa' {{ a.nome }} e alle sue sedi.
+                    Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?
+                </div>
+                <div class="modal-footer">
+                    {% csrf_token %}
+                    <button type="submit" name="ConfermaCancellazioneAzienda" 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>
+            </div>
+          <!-- end modal -->
+            {% endfor %}
+
+	    <tr>
+                {% csrf_token %}
+	      <td>
+  	        <select class="form-select" name="ListaAziendaDaAggiungere" id="ListaAziendaDaAggiungere">
+		  <option value="">-- Scegli l'azienda da Aggiungere --</option>
+	          {% for lp in listaaziendadiff  %}
+		  <option value="{{ lp.id }}">{{ lp.nome }} - {{ lp.partitaiva}}</option>
+                    {% endfor %}
+                </select>
+	      </td>
+	      <td>
+		<button type='submit' name="AziendaDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
+	      </td>
+	    </tr>
+          </tbody>
+        </table>
+      </li>
+    </ul>
+    <div class="btn-group">
+      <input type='submit' name="AmministratoreButton" class="btn btn-primary" value="Torna a profilo Amministratore">
+      <input type='submit' name="AmministratoreAziendaButton" class="btn btn-primary" value="Torna a Lista Aziende">
+      <input type='submit' name="AmministratoreReturnButton" class="btn btn-primary" value="Ritorna">
+    <div>
+    </form>
+{% endblock %}

+ 19 - 56
amministratore/templates/amministratore.edit.AZP.html

@@ -12,15 +12,17 @@
   <!-- fine zona errori -->
   </div>
 
-  <div>
-    Lista Aziende Autorizzate
+  <div class="h4">
+    Lista Permessi assegnati per societa'.
   </div> 
-  <div class='h4'>
-  Questa lista contiene le aziende a cui l'amministratore è autorizzato ad accedere. L'accesso è concesso in prima battuta solo in lettura.
-  usare il tasto "E" per consentire anche altre operazioni.
+  <div class="h5">
+  Questa lista contiene i permessi assegnati a livello di amministratore.
+  </div>
+  <div class="h5">
+  Assegnare i permessi a questo livello <b>supera</b> eventuali permessi assegnati a livello azienda o sede.
   </div>
 
-  <form name='aziendapermessiform' method='POST'>
+  <form name='amministratorepermessiform' method='POST'>
   {% csrf_token %}
   <ul class="list-group list-group-flush">
     <li class="list-group-item">
@@ -28,56 +30,18 @@
         <thead class='thead-dark'>
           <tr>
             <th scope='col'>Nome</th>
-            <th scope='col'>P.Iva</th>
-	    <th scope='col'>S</th>
-	    <th scope='col'>E</th>
+	    <th scope='col'>Descrizione</th>
 	    <th scope='col'>D</th>
           </tr>
           </thead>
           <tbody>
-            {% for a in listaazienda %}
+            {% for a in permessoAZP %}
               <tr>
                 <td> {{ a.nome }} </td>
-                <td> {{ a.partitaiva }} </td>
-                  {% csrf_token %}
-    		  <td><button type='submit' class='btn btn-primary' name="SedeButton" value='{{ a.id }}'>S</button></td>
-		<td><button type='button' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmUpdateModal{{ a.id }}' value='{{ a.id }}'>E</button></td>
+		<td> {{ a.descrizione }} </td>
 		<td><button type='button' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmDeleteModal{{ a.id }}' value='{{ a.id }}'>D</button></td>
               </tr>
 
-              <!-- Modal -->
-              <div class="modal fade" id="ConfirmUpdateModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmUpdateLabel{{ a.id }}" aria-hidden="true">
-                <div class="modal-dialog" role="document">
-              <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title" id="ConfirmUpdateLabel">Aggiornamento Diritti Amministratore</h5>
-                   <span aria-hidden="true"></span>
-                  </button>
-                </div>
-                <div class="modal-body">
-	          <select name="ListaPermessiDaRimuovere" class="form-select" multiple aria-label="Selezione Multipla Permessi" >
-		    {% for lp in listapermesso %}
-  		      <option value={{ lp.permesso.id }}>{{ lp.permesso.nome }} - {{ lp.descrizione }}</option>
-                    {% endfor %}
-		  </select>
-                </div>
-                <div class="modal-body">
-                  <select name="ListaPermessiDaAggiungere" class="form-select" multiple aria-label="Seleziona Permessi Disponibili">
-                    {% for lp in dirittiAZIENDA %}
-                      <option value="{{ lp.id }}">{{ lp.nome }}</option>
-                    {% endfor %}
-                  </select>
-                </div>
-                <div class="modal-footer">
-                  <button type="submit" name="AziendaPermessoDeleteButton" value='{{ a.id }}' class="btn btn-primary">Rimuovi Permessi</button>
-                  <button type="submit" name="AziendaPermessoUpdateButton" value='{{ a.id }}' class="btn btn-primary">Aggiungi Permessi</button>
-                  <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
-                </div>
-              </div>
-            </div>
-          </div>
-          <!-- end modal -->
-
           <!-- Modal -->
             <div class="modal fade" id="ConfirmDeleteModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ a.id }}" aria-hidden="true">
               <div class="modal-dialog" role="document">
@@ -88,13 +52,11 @@
                     </button>
                   </div>
                   <div class="modal-body">
-                    Confermando si procede all'immediata rimozione dei permessi associati alla
-                    societa' {{ a.nome }} e alle sue sedi.
-                    Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?
+                    Confermando si procede all'immediata rimozione del permesso indicato?
                 </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="ConfermaCancellazionePermesso" value='{{ a.id }}' class="btn btn-primary">Cancella Permesso</button>
                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
                 </div>
               </div>
@@ -105,15 +67,15 @@
 	    <tr>
                 {% csrf_token %}
 	      <td>
-  	        <select class="form-select" name="ListaAziendaDaAggiungere" id="ListaAziendaDaAggiungere">
-		  <option value="">-- Scegli l'azienda da Aggiungere --</option>
-	          {% for lp in listaaziendadiff  %}
-		  <option value="{{ lp.id }}">{{ lp.nome }} - {{ lp.partitaiva}}</option>
+                <select class="form-select" name="ListaPermessiDaAggiungere" id="ListaPermessiDaAggiungere">
+		  <option value="">-- Scegli il permesso da Aggiungere --</option>
+	          {% for lp in listapermessiassegnabili  %}
+		  <option value="{{ lp.id }}">{{ lp.nome }}</option>
                     {% endfor %}
                 </select>
 	      </td>
 	      <td>
-		<button type='submit' name="AziendaDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
+		<button type='submit' name="PermessoDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
 	      </td>
 	    </tr>
           </tbody>
@@ -122,6 +84,7 @@
     </ul>
     <div class="btn-group">
       <input type='submit' name="AmministratoreButton" class="btn btn-primary" value="Torna a profilo Amministratore">
+      <input type='submit' name="AmministratoreAziendaButton" class="btn btn-primary" value="Torna a Lista Aziende">
       <input type='submit' name="AmministratoreReturnButton" class="btn btn-primary" value="Ritorna">
     <div>
     </form>

+ 96 - 0
amministratore/templates/amministratore.edit.SE.html

@@ -0,0 +1,96 @@
+{% extends 'base.html' %}
+
+{% block body %}
+
+ <div class="error">
+  <!-- errori form sede -->
+  {% if sede.errors %}
+    <div class="alert alert-danger">
+    {{ sede.errors }}
+    </div>
+  {% endif %}
+  <!-- fine zona errori -->
+  </div>
+
+  <div>
+    Lista Sedi Autorizzate
+  </div> 
+  <div>
+  Questa lista contiene le sedi a cui l'amministratore è autorizzato ad accedere. L'accesso è concesso in prima battuta solo in lettura.
+  usare il tasto "E" per consentire anche altre operazioni.<br><br>
+  amministratore: {{ amministratore.login }} - {{ amministratore.nome }}.<br>
+  azienda in corso di elaborazione: {{ aziendaOnWork.nome }}
+  </div>
+
+  <form name='listasedeform' method='POST'>
+  {% csrf_token %}
+  <ul class="list-group list-group-flush">
+    <li class="list-group-item">
+      <table class='table table-striped table-hover'>
+        <thead class='thead-dark'>
+          <tr>
+            <th scope='col'>Nome</th>
+            <th scope='col'>Identificativo</th>
+	    <th scope='col'>P</th>
+	    <th scope='col'>D</th>
+          </tr>
+          </thead>
+          <tbody>
+            {% for a in listasede %}
+              <tr>
+                <td> {{ a.nome }} </td>
+                <td> {{ a.identificativo }} </td>
+                  {% csrf_token %}
+		<td><button type='submit' class='btn btn-primary' name='PermessoButton' value='{{ a.id }}'>P</button></td>
+		<td><button type='button' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmDeleteModal{{ a.id }}' value='{{ a.id }}'>D</button></td>
+              </tr>
+
+          <!-- Modal -->
+            <div class="modal fade" id="ConfirmDeleteModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ a.id }}" aria-hidden="true">
+              <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                  <div class="modal-header">
+                    <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione Diritti</h5>
+                      <span aria-hidden="true"></span>
+                    </button>
+                  </div>
+                  <div class="modal-body">
+                    Confermando si procede all'immediata rimozione dei permessi associati alla
+                    societa' {{ a.nome }} e alle sue sedi.
+                    Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?
+                </div>
+                <div class="modal-footer">
+                    {% csrf_token %}
+                    <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>
+            </div>
+          <!-- end modal -->
+            {% endfor %}
+
+	    <tr>
+                {% csrf_token %}
+	      <td>
+                <select class="form-select" name="ListaSedeDaAggiungere" id="ListaSedeDaAggiungere">
+		  <option value="">-- Scegli la sede da Aggiungere --</option>
+	          {% for lp in listasedediff  %}
+		  <option value="{{ lp.id }}">{{ lp.nome }} - {{ lp.identificativo}}</option>
+                    {% endfor %}
+                </select>
+	      </td>
+	      <td>
+		<button type='submit' name="SedeDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
+	      </td>
+	    </tr>
+          </tbody>
+        </table>
+      </li>
+    </ul>
+    <div class="btn-group">
+      <input type='submit' name="AmministratoreButton" class="btn btn-primary" value="Torna a profilo Amministratore">
+      <input type='submit' name)"AmministratoreEditAZButton" class="btn btn-primary" value="Lista Aziende">
+      <input type='submit' name="AmministratoreReturnButton" class="btn btn-primary" value="Ritorna">
+    <div>
+    </form>
+{% endblock %}

+ 23 - 60
amministratore/templates/amministratore.edit.SEP.html

@@ -4,25 +4,25 @@
 
  <div class="error">
   <!-- errori form sede -->
-  {% if sede.errors %}
+  {% if azienda.errors %}
     <div class="alert alert-danger">
-    {{ sede.errors }}
+    {{ azienda.errors }}
     </div>
   {% endif %}
   <!-- fine zona errori -->
   </div>
 
-  <div>
-    Lista Sedi Autorizzate
+  <div class="h4">
+    Lista Permessi assegnati alla Sede
   </div> 
-  <div>
-  Questa lista contiene le sedi a cui l'amministratore è autorizzato ad accedere. L'accesso è concesso in prima battuta solo in lettura.
-  usare il tasto "E" per consentire anche altre operazioni.<br><br>
-  amministratore: {{ amministratore.login }} - {{ amministratore.nome }}.<br>
-  azienda in corso di elaborazione: {{ aziendaOnWork.nome }}
+  <div class="h5">
+  Questa lista contiene i permessi assegnati a livello di sede
+  </div>
+  <div class="h5">
+  Assegnare i permessi a questo livello <b>supera</b> eventuali permessi assegnati a livello azienda o sede.
   </div>
 
-  <form name='listasedeform' method='POST'>
+  <form name='sedepermessiform' method='POST'>
   {% csrf_token %}
   <ul class="list-group list-group-flush">
     <li class="list-group-item">
@@ -30,54 +30,18 @@
         <thead class='thead-dark'>
           <tr>
             <th scope='col'>Nome</th>
-            <th scope='col'>Identificativo</th>
-	    <th scope='col'>P</th>
+	    <th scope='col'>Descrizione</th>
 	    <th scope='col'>D</th>
           </tr>
           </thead>
           <tbody>
-            {% for a in listasede %}
+            {% for a in permessoSEP %}
               <tr>
-                <td> {{ a.nome }} </td>
-                <td> {{ a.identificativo }} </td>
-                  {% csrf_token %}
-		<td><button type='button' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmUpdateModal{{ a.id }}' value='{{ a.id }}'>P</button></td>
+		      <td> {{ a.nome }} </td>
+		<td> {{ a.descrizione }} </td>
 		<td><button type='button' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmDeleteModal{{ a.id }}' value='{{ a.id }}'>D</button></td>
               </tr>
 
-              <!-- Modal -->
-              <div class="modal fade" id="ConfirmUpdateModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmUpdateLabel{{ a.id }}" aria-hidden="true">
-                <div class="modal-dialog" role="document">
-              <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title" id="ConfirmUpdateLabel">Aggiornamento Diritti Amministratore</h5>
-                   <span aria-hidden="true"></span>
-                  </button>
-                </div>
-                <div class="modal-body">
-	          <select class="form-select" multiple aria-label="Selezione Multipla Permessi" >
-		    {% for lp in listapermesso %}
-  		      <option value={{ lp.permesso.id }}>{{ lp.permesso.nome }} - {{ lp.descrizione }}</option>
-                    {% endfor %}
-		  </select>
-                </div>
-		<div class="modal-body">
-		  <select class="form-select" multiple aria-label="Seleziona Permessi Disponibili">
-		    {% for lp in dirittiSEDE %}
-		      <option value="{{ lp.id }}">{{ lp.nome }}</option>
-                    {% endfor %}
-		  </select>
-		</div>
-                <div class="modal-footer">
-                  <button type="submit" name="SedePermessoDeleteButton" value='{{ a.id }}' class="btn btn-primary">Rimuovi Permessi</button>
-                  <button type="submit" name="SedePermessoUpdateButton" value='{{ a.id }}' class="btn btn-primary">Aggiungi Permessi</button>
-                  <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
-                </div>
-              </div>
-            </div>
-          </div>
-          <!-- end modal -->
-
           <!-- Modal -->
             <div class="modal fade" id="ConfirmDeleteModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ a.id }}" aria-hidden="true">
               <div class="modal-dialog" role="document">
@@ -88,13 +52,11 @@
                     </button>
                   </div>
                   <div class="modal-body">
-                    Confermando si procede all'immediata rimozione dei permessi associati alla
-                    societa' {{ a.nome }} e alle sue sedi.
-                    Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?
+                    Confermando si procede all'immediata rimozione del permesso indicato?
                 </div>
                 <div class="modal-footer">
                     {% csrf_token %}
-                    <button type="submit" name="SedeConfermaCancellazionePermessoButton" value='{{ a.id }}' class="btn btn-primary">Cancella Permessi</button>
+                    <button type="submit" name="ConfermaCancellazionePermesso" value='{{ a.id }}' class="btn btn-primary">Cancella Permesso</button>
                     <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
                 </div>
               </div>
@@ -105,15 +67,15 @@
 	    <tr>
                 {% csrf_token %}
 	      <td>
-                <select class="form-select" name="ListaSedeDaAggiungere" id="ListaSedeDaAggiungere">
-		  <option value="">-- Scegli la sede da Aggiungere --</option>
-	          {% for lp in listasedediff  %}
-		  <option value="{{ lp.id }}">{{ lp.nome }} - {{ lp.identificativo}}</option>
+                <select class="form-select" name="ListaPermessiDaAggiungere" id="ListaPermessiDaAggiungere">
+		  <option value="">-- Scegli il permesso da Aggiungere --</option>
+	          {% for lp in listapermessiassegnabili  %}
+		  <option value="{{ lp.id }}">{{ lp.nome }}</option>
                     {% endfor %}
                 </select>
 	      </td>
 	      <td>
-		<button type='submit' name="SedeDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
+		<button type='submit' name="PermessoDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
 	      </td>
 	    </tr>
           </tbody>
@@ -122,7 +84,8 @@
     </ul>
     <div class="btn-group">
       <input type='submit' name="AmministratoreButton" class="btn btn-primary" value="Torna a profilo Amministratore">
-      <input type='submit' name)"AmministratoreEditAZPButton" class="btn btn-primary" value="Lista Aziende">
+      <input type='submit' name="AmministratoreAziendaButton" class="btn btn-primary" value="Torna a Lista Aziende">
+      <input type='submit' name="AmministratoreSedeButton" class="btn btn-primary" value="Torna a Lista Sedi">
       <input type='submit' name="AmministratoreReturnButton" class="btn btn-primary" value="Ritorna">
     <div>
     </form>

+ 0 - 90
amministratore/templates/amministratore.edit.pam.html

@@ -1,90 +0,0 @@
-{% extends 'base.html' %}
-
-{% block body %}
-
- <div class="error">
-  <!-- errori form sede -->
-  {% if sede.errors %}
-    <div class="alert alert-danger">
-    {{ sede.errors }}
-    </div>
-  {% endif %}
-  <!-- fine zona errori -->
-  </div>
-
-    <div>
-      Lista dei permessi generici assegnati all'utente <b>{{ amministratore.nome.value }}</b>:
-    </div> 
-    <ul class="list-group list-group-flush">
-      <li class="list-group-item">
-        <table class='table table-striped table-hover'>
-          <thead class='thead-dark'>
-            <tr>
-              <th scope='col'>Nome</th>
-	      <th scope='col'>D</th>
-            </tr>
-          </thead>
-          <tbody>
-            {% for a in listapermesso %}
-              <tr>
-                <td> {{ a.permesso.nome }} </td>
-                <td><button type='submit' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#ConfirmDeletePermessoModal{{ a.permesso.id }}' value='{{ a.permesso.id }}'>D</button></td>
-              </tr>
-
-              <!-- Modal -->
-              <div class="modal fade" id="ConfirmDeletePermessoModal{{ a.permesso.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ a.permesso.id }}" aria-hidden="true">
-                <div class="modal-dialog" role="document">
-                  <div class="modal-content">
-                    <div class="modal-header">
-                      <h5 class="modal-title" id="ConfirmDeletePermessoLabel">Conferma Cancellazione Diritto</h5>
-                      <span aria-hidden="true"></span>
-                    </div>
-                    <div class="modal-body">
-                      Confermando si procede all'immediata rimozione dei permessi associati all'amministratore {{ amministratore.nome.value }}.
-                      Confermi la cancellazione dei diritti di accesso per {{ amministratore.nome.value }}?
-                    </div>
-                    <div class="modal-footer">
-                      <form name='ConfirmDeleteModal' method='POST'>
-                        {% csrf_token %}
-                        <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>
-                  </div>
-                </div>
-	      </div>
-              <!-- end modal -->
-              {% endfor %}
-	      <tr>
-              <form name='permessoadaaggiungereform' method='POST'>
-                {% csrf_token %}
-                <td>
-                  <select class="form-select" name="permessodaaggiungere" id="permessodaaggiungere">
-	  	    <option value="">-- Scegli il permesso da Aggiungere --</option>
-                    {% for lp in listapermessodiff  %}
-	              <option value="{{ lp.id }}">{{ lp.nome }}</option>
-                    {% endfor %}
-                  </select>
-	        </td>
-	        <td>
-		  <button type='submit' class='btn btn-primary' name='PermessoDaAggiungereButton'>Aggiungi</button>
-  	        </td>
-              </form>
-	    </tr>
-
-          </tbody>
-        </table>
-      </li>
-    </ul>
-  </div>
-</div>
-
-    <div class="btn-group">
-      <br>
-      <input type='submit' name="AmministratoreUpdateButton" class="btn btn-primary" value='Aggiorna'>
-      {# ordine: azienda, sede, amministratore #}
-      <input type='submit' name="AmministratoreDirittiAziendaButton" class="btn btn-primary" value="Avanti">
-      <input type='submit' class="btn btn-primary" name="indietro" value="Indietro">
-    </div>
-
-{% endblock %}

+ 0 - 117
amministratore/templates/amministratore.edit.pse.html

@@ -1,117 +0,0 @@
-{% extends 'base.html' %}
-
-{% block body %}
-
- <div class="error">
-  <!-- errori form sede -->
-  {% if sede.errors %}
-    <div class="alert alert-danger">
-    {{ sede.errors }}
-    </div>
-  {% endif %}
-  <!-- fine zona errori -->
-  </div>
-
-  <div">
-      Lista Zone Autorizzate
-    </div> 
-    <ul class="list-group list-group-flush">
-      <li class="list-group-item">
-        <table class='table table-striped table-hover'>
-          <thead class='thead-dark'>
-          <tr>
-            <th scope='col'>Nome</th>
-            <th scope='col'>Identificativo</th>
-            <th scope='col'>ES</th>
-            <th scope='col'>D</th>
-          </tr>
-        </thead>
-        <tbody>
-          {% for a in listasede %}
-            <tr>
-              <td> {{ a.nome }} </td>
-              <td> {{ a.identificativo }} </td>
-              <td><button type='submit' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#SedeConfirmUpdateModal{{ a.id }}' value='{{ a.id }}'>E</button></td>
-              <td><button type='submit' class='btn btn-primary' data-bs-toggle='modal' data-bs-target='#SedeConfirmDeleteModal{{ a.id }}' value='{{ a.id }}'>D</button></td>
-            </tr>
-
-            <!-- Modal -->
-            <div class="modal fade" id="SedeConfirmUpdateModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="SedeConfirmUpdateLabel{{ a.id }}" aria-hidden="true">
-              <div class="modal-dialog" role="document">
-                <div class="modal-content">
-                  <div class="modal-header">
-                    <h5 class="modal-title" id="SedeConfirmUpdateLabel">Aggiornamento Diritti Amministratore</h5>
-                      <span aria-hidden="true"></span>
-                  </div>
-                  <div class="modal-body">
-  	            <select class="form-select" multiple aria-label="Selezione Multipla Permessi" >
-   		      {% for lp in listapermesso %}
-  		        <option value={{ lp.permesso.id }}>{{ lp.permesso.nome }} - {{ lp.descrizione }}</option>
-                      {% endfor %}
-		    </select>
-                  </div>
-                  <div class="modal-footer">
-                    <form name="SedeUpdatePermessoForm" method="POST">
-                      {% csrf_token %}
-                      <button type="submit" name="SedeUpdatePermesso" value='{{ a.id }}' class="btn btn-primary">Aggiorna Permessi</button>
-                      <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
-                    </form>
-                  </div>
-                </div>
-              </div>
-	    </div>
-            <!-- end modal -->
-
-            <!-- Modal -->
-            <div class="modal fade" id="SedeConfirmDeleteModal{{ a.id }}" tabindex="-1" role="dialog" aria-labelledby="SedeConfirmDeleteLabel{{ a.id }}" aria-hidden="true">
-              <div class="modal-dialog" role="document">
-                <div class="modal-content">
-                  <div class="modal-header">
-                    <h5 class="modal-title" id="SedeConfirmDeleteLabel">Conferma Cancellazione Diritti</h5>
-                      <span aria-hidden="true"></span>
-                    </div>
-                    <div class="modal-body">
-                      Confermando si procede all'immediata rimozione dei permessi associati alla
-                      societa' {{ a.nome }} e alle sue sedi.
-                      Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?
-                  </div>
-                  <div class="modal-footer">
-                    <form name='SedeConfirmDeleteModal' method='POST'>
-                      {% csrf_token %}
-                      <button type="submit" name="SedeConfermaCancellazionePermesso" 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>
-                </div>
-              </div>
-  	    </div>
-            <!-- end modal -->
-            {% endfor %}
-	    <tr>
-              <form name='sededaaggiungereform' method='POST'>
-                {% csrf_token %}
-  	        <td>
-                  <select class="form-select" multiple name="ListaSedeMancanteSelect" id="listasedemancante">
-	            {% for lp in listasedediff %}
-		      <option value="{{ lp.id }}">{{ lp.nome }} - {{ lp.identificativo}}</option>
-                    {% endfor %}
-                  </select>
-	        </td>
-	        <td>
-		  <button type='submit' name="SedeDaAggiungereButton" class='btn btn-primary'>Aggiungi</button>
-	        </td>
-              </form>
-	    </tr>
-          </tbody>
-        </table>
-      </li>
-    </ul>
-    <div class="btn-group">
-      <br>
-      <input type='submit' name="AmministratoreUpdateButton" class="btn btn-primary" value='Aggiorna'>
-      {# ordine: azienda, sede, amministratore #}
-      <input type='submit' name="AmministratoreDirittiAziendaButton" class="btn btn-primary" value="Avanti">
-      <input type='submit' class="btn btn-primary" name="indietro" value="Indietro">
-    </div>
-
-{% end block %}

+ 3 - 1
amministratore/urls.py

@@ -6,8 +6,10 @@ urlpatterns = [
   path('welcome',views.welcome,name='welcome'),
   path('edit',views.edit,name='edit'),
   path('editAMP',views.editAMP,name='editAMP'),
+  path('editAZ',views.editAZ,name='editAZ'),
   path('editAZP',views.editAZP,name='editAZP'),
-  path('editSEP',views.editSEP,name="editSEP"),
+  path('editSE',views.editSE,name="editSE"),
+  path('editSEP',views.editSEP,name='editSEP'),
   path('editAmministratore',views.editAmministratore,name='editAmministratore'),
 ]
 

+ 281 - 25
amministratore/views.py

@@ -41,7 +41,7 @@ def welcome(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print('permessi assegnati:',data['permesso'])
@@ -193,7 +193,7 @@ def edit(request):
     
     if 'AmministratoreDirittiAziendaButton' in request.POST:
       print('edit azienda: premuto "AmministratoreDirittiAziendaButton"')
-      return HttpResponseRedirect(reverse("amministratore:editAZP"))
+      return HttpResponseRedirect(reverse("amministratore:editAZ"))
 
     if 'AmministratoreUpdateButton' in request.POST:
       formamministratore = FormAmministratore(request.POST)
@@ -293,6 +293,10 @@ def editAMP(request):
       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')
@@ -325,10 +329,8 @@ def editAMP(request):
 
   return render(request,'amministratore.edit.AMP.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.
+def editAZ(request):
+  ### edit lista aziende autorizzate
 
   if not 'AdminId' in request.session:
     return HttpResponseRedirect(reverse("login:start"))
@@ -381,7 +383,7 @@ def editAZP(request):
   print('dirittiAZIENDA',len(data['dirittiAZIENDA']))
 
   if request.method == 'POST':
-    print("qualcosa e' stato premuto")
+    print("qualcosa e' stato premuto in editAZ")
   
     if 'AmministratoreReturnButton' in request.POST:
       print("Un tasto è stato premuto 'AmministratoreReturnButton'")
@@ -391,6 +393,10 @@ def editAZP(request):
       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)
@@ -406,29 +412,148 @@ def editAZP(request):
       print("Un tasto è stato premuto 'SedeButton'")
       azienda = request.POST.get('SedeButton')
       request.session['EditAziendaId'] = azienda 
-      return HttpResponseRedirect(reverse("amministratore:editSEP"))
+      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 'AziendaPermessoUpdateButton' in request.POST:
-      print("Un tasto è stato premuto 'AziendaPermessoUpdate'")
-      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)
-      
   if amministratore: 
     data['listaazienda'] = listaAZP(amministratore)[0]
     data['listaaziendadiff'] = list(set(listaaziendatutte)-set(data['listaazienda']))
   else:
     data['listaaziendadiff'] = list(set(listaaziendatutte))
 
+  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 editSEP(request):
+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.
@@ -452,7 +577,7 @@ def editSEP(request):
   ### funzioni esterne fine ###
 
   if not 'EditAziendaId' in request.session:
-    HttpResponseRedirect(reverse("amministratore:editAZP"))
+    HttpResponseRedirect(reverse("amministratore:editAZ"))
 
   if 'AdminId' in request.session:
     data['AdminId'] = request.session['AdminId']
@@ -467,7 +592,7 @@ def editSEP(request):
     try:
       amministratore = Amministratore.objects.get(pk=amministratoreEditId)
     except Amministratore.DoesNotExist as dne:
-      return HttpResponseRedirect(reverse("amministratore:editSEP"))
+      return HttpResponseRedirect(reverse("amministratore:editSE"))
 
     print('amministratore',amministratore.id,amministratore.login,amministratore.nome)
   data['amministratore'] = amministratore
@@ -504,9 +629,19 @@ def editSEP(request):
       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:editAZP"))
+      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'")
@@ -569,6 +704,127 @@ def editSEP(request):
   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)
 
 '''
@@ -736,7 +992,7 @@ def editAmministratore(request):
 
     if 'AmministratoreDirittiAziendaButton' in request.POST:
       print("premuto: 'AmministratoreDirittiAziendaButton'")
-      return HttpResponseRedirect(reverse("amministratore:editAZP"))
+      return HttpResponseRedirect(reverse("amministratore:editAZ"))
 
     if 'AmministratoreUpdateButton' in request.POST:
       formamministratore = FormAmministratore(request.POST)

+ 7 - 23
azienda/views.py

@@ -37,7 +37,7 @@ def welcome(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print("Permessi Disponibili",data['permesso'])
@@ -252,7 +252,7 @@ def welcome(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print(data['permesso'])
@@ -287,7 +287,7 @@ def editAzienda(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print("Permessi Disponibili",data['permesso'])
@@ -440,7 +440,7 @@ def editAziendaPermesso(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print("Permessi Disponibili",data['permesso'])
@@ -543,7 +543,7 @@ def editSede(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print("Permessi Disponibili",data['permesso'])
@@ -715,7 +715,7 @@ def editSedePermesso(request):
       print("****")
       print('sede',sede)
       print('admin',data['admin'])
-      print(getSEP(sede,data['admin']))
+      print(getSEP(sede,data['admin'])[0])
       print("****") 
 
       formsedeamministratoresorgente = formSedeAmministratoreSorgente(request.POST)
@@ -724,22 +724,6 @@ def editSedePermesso(request):
         print('i dati inseriti sono validi')
       else:
         print('fail')
-      '''
-      listapermessidisponibili = getSEP(sede,data['admin'])[0]
-
-      print('listapermessidisponibili',listapermessidisponibili)
-      formsedepermessi = formSedePermessi(request.POST,amministratori=Amministratore.objects.all(),permessi=Permesso.objects.all())
-
-      if formaziendapermessi.is_valid():
-        print('formSedePermessi valida')
-        amministratore = formsedepermessi.cleaned_data.get('ListaAmministratori')
-        for p in listapermessidisponibili:
-          for a in amministratore:
-            try:
-              setSEP(sede,a,p)
-            except ValueError as ve:
-              print('errore in setSEP')
-      '''
 
     if 'CancellaSedePermessiButton' in request.POST:
       print('premuto "CancellaSedePermessiButton"')
@@ -792,7 +776,7 @@ def editAziendaDocumento(request):
         data['permesso'].append(t)
     if 'sede' in data:
       print('**** sede presente ****')
-      for t in getSEP(data['sede'],data['admin']):
+      for t in getSEP(data['sede'],data['admin'])[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
   print("Permessi Disponibili",data['permesso'])

+ 4 - 4
documento/views.py

@@ -183,8 +183,8 @@ def welcome(request,utente=None):
         data['permesso'].append(t)
         
     if 'sede' in data:
-      print('livello sede',getSEP(data['sede'],admin))
-      for t in getSEP(data['sede'],admin):
+      print('livello sede',getSEP(data['sede'],admin)[0])
+      for t in getSEP(data['sede'],admin)[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
     print('Stato permessi:',data['permesso'])
@@ -500,8 +500,8 @@ def azienda(request,utente=None):
         data['permesso'].append(t)
         
     if 'sede' in data:
-      print('livello sede',getSEP(data['sede'],admin))
-      for t in getSEP(data['sede'],admin):
+      print('livello sede',getSEP(data['sede'],admin)[0])
+      for t in getSEP(data['sede'],admin)[0]:
         if t not in data['permesso']:
           data['permesso'].append(t)
     print('Stato permessi:',data['permesso'])

+ 74 - 12
sicurezza/views.py

@@ -58,7 +58,7 @@ def getP(azienda=None,sede=None,amministratore=None,permesso=None):
         data.append(t)
     if sed:
       print('**** sede presente ****')
-      for t in getSEP(sed,amm):
+      for t in getSEP(sed,amm)[0]:
         if t not in data:
           data.append(t)
   print("getP Permessi:",data)
@@ -404,30 +404,48 @@ def getSEP(sede=None,amministratore=None,permesso=None):
   if isinstance(permesso,str):
     print('si tratta di una str, quindi dobbiamo cercare il valore')
     per = Permesso.objects.get(nome=permesso)
+  if isinstance(permesso,int):
+    print('si tratta di un int, quindi cerchiamo per chiave')
+    per = Permesso.objects.get(pk=permesso)
 
   if not sed:
      print('sede non presente')
-     return []
+     return ([],[],{},)
 
   if not amm:
     print('amministratore non presente')
-    return []
+    return ([],[],{},)
 
   permessi = list()
+  oggettopermessi = list()
+  oggettoSEP = 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)
+      oggettopermessi.append(p.permesso)
+      oggettoSEP.append(p)
   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)
+      oggettopermessi.append(p.permesso)
+      oggettoSEP.append(p)
 
   print('permessi disponibili',len(permessi))
-  #for i in permessi: print(i,)
-  return permessi
+  return (permessi,oggettopermessi,oggettoSEP)
+
+  ####
+  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,oggettoPermesso,oggettoAZP)
+  ####
 # riporta un permesso (generico) o tutti i permessi
 def getPermesso(permesso=None):
   if permesso:
@@ -500,16 +518,17 @@ def delAMP(amministratore=None,permesso=None):
     print('si tratta di una str, quindi dobbiamo cercare il valore')
     per = Permesso.objects.get(nome=permesso)
 
-  if not per or not amm:
+  if not amm:
     return False
 
-  p = None
-  try:
+  if per:
     p = AMP.objects.filter(amministratore=amm).filter(permesso=per)
-  except AMP.DoesNotExist as dne:
-    print('errore: record non trovato')
-    return False
-  p.delete()
+    for i in p:
+      i.delete()
+  else:
+    p = AMP.objects.filter(amministratore=amm)
+    for i in p:
+      i.delete()
   return True
 
 # setAZP: imposta i permessi a livello azienda
@@ -564,6 +583,49 @@ def setAZP(azienda=None,amministratore=None,permesso=None):
     print(ie)
   return [p,]
 
+def delAZP(azienda=None, amministratore=None,permesso=None):
+  # rimuovere un permesso a un amministratore
+
+  if isinstance(azienda,Azienda):
+    print('si tratta di una instanza, quindi possiamo direttamente accedere')
+    azi = azienda
+  if isinstance(azienda,int):
+    print('si tratta di un int, quindi dobbiamo cercare il valore')
+    azi = Azienda.objects.get(pk=azienda)
+
+  if isinstance(amministratore,Amministratore):
+    print('si tratta di una istanza, quindi possiamo direttamente accedere')
+    amm = amministratore
+  if isinstance(amministratore,int):
+    print('si tratta di un int, quindi dobbiamo cercare il valore')
+    amm = Amministratore.objects.get(pk=amministratore)
+
+  per=None
+  print('getAMP',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)
+
+  if not azi or not amm:
+    return False
+
+  if per: #permesso presente, quindi si rimuove solo quel permesso
+    p = None
+    p = AZP.objects.filter(amministratore=amm).filter(azienda=azi).filter(permesso=per)
+    for i in p:
+      p.delete()
+  else: #si rimuovo tutti i permessi per quell'azienda
+    p = AZP.objects.filter(amministratore=amm).filter(azienda=azi)
+    for i in p:
+      i.delete()
+  return True
+
 # setSEP: imposta i permessi a livello sede
 def setSEP(sede=None,amministratore=None,permesso=None):
   print('setSEP',sede,type(sede),amministratore,type(amministratore),permesso,type(permesso))

BIN
static/upload/06316060968/RSTLSS85T443L750I/1738922491.6972039.saved


+ 2 - 10
utente/views.py

@@ -102,14 +102,10 @@ def welcome(request):
   for t in getAZP(data['AziendaId'],admin):
     if t not in data['permesso']:
       data['permesso'].append(t)
-  for t in getSEP(data['sede'],admin):
+  for t in getSEP(data['sede'],admin)[0]:
     if t not in data['permesso']:
       data['permesso'].append(t)
 
-  #print('permesso',getAMP(admin)[0])
-  #print('permesso_azienda',getAZP(data['AziendaId'],admin))
-  #print('permesso_sede',getSEP(data['sede'],admin))
-
   if request.method == 'POST':
     print('qualcuno ha premuto un tasto')
     if 'indietro' in request.POST:
@@ -203,14 +199,10 @@ def edit(request):
       data['permesso'].append(t)
   if 'sede' in data and data['sede']:
     print('sede presente:',sede)
-    for t in getSEP(data['sede'],admin):
+    for t in getSEP(data['sede'],admin)[0]:
       if t not in data['permesso']:
         data['permesso'].append(t)
 
-  #rint('permesso',getAMP(admin)[0])
-  #print('permesso_azienda',getAZP(data['AziendaId'],admin))
-  #print('permesso_sede',getSEP(data['sede'],admin))
-
   if 'UserId' in request.session:
     data['UserId'] = request.session['UserId']