浏览代码

modificata form di gestione aziende e permessi

mauro 8 月之前
父节点
当前提交
5674f0145a
共有 5 个文件被更改,包括 389 次插入148 次删除
  1. 5 3
      azienda/forms.py
  2. 2 79
      azienda/templates/azienda.editAzienda.html
  3. 243 0
      azienda/templates/azienda.editAzienda.permessi.html
  4. 1 0
      azienda/urls.py
  5. 138 66
      azienda/views.py

+ 5 - 3
azienda/forms.py

@@ -13,14 +13,16 @@ class formAzienda(forms.Form):
 
 class formAziendaPermessi(forms.Form):
   choices = []
-  def __init__(self,*args,amministratori=[],**kwargs):
+  def __init__(self,*args,amministratori=[],permessi=[],**kwargs):
     forms.Form.__init__(self,*args,**kwargs)
-    self.fields['ListaAmministratoriPermessi'] = forms.MultipleChoiceField(required=True,choices=self.c(amministratori))
+    self.fields['ListaAmministratori'] = forms.MultipleChoiceField(required=True,choices=self.c(amministratori))
+    self.fields['ListaPermessi'] = forms.MultipleChoiceField(required=True,choices=self.c(permessi))
+
   def c(self,lista):
     for u in lista:
       self.choices.append((u.id,u.id),)	
+
     print('choices lunghezza',len(self.choices))
-    print(self.choices)
     return self.choices
 
 class formSede(forms.Form):

+ 2 - 79
azienda/templates/azienda.editAzienda.html

@@ -107,7 +107,9 @@
     </div>
     <br>
     <div class="btn-group">
+      {# sperimentale: "avanti" per impostare i diritti amministratore #}
       <button type='submit' class="btn btn-primary" name= 'AggiornaAziendaButton' value='AggiornaAzienda' {% if admin.sola_lettura %} disabled {% endif %}>Aggiorna/Salva</button>
+      <button type='submit' class="btn btn-primary" name= 'AvantiAziendaButton' value='AvantiAzienda'>Avanti</button>
       <button type='submit' class="btn btn-primary" name="indietro">Indietro/Chiudi</button>
     </div>
   </form>
@@ -152,82 +154,3 @@
   </div>
 </div>
 {% endblock %}
-
-{% block bodybottom %}
-  <br>
-    <div class="card">
-      <div class="class="card-header">
-        Lista Amministratori con autorizzazione all'accesso
-      </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'>Login</th>
-            <th scope='col'>Nome</th>
-            <th scope='col'>Permesso</th>
-            <th scope='col'>E</th>
-            <th scope='col'>D</th>
-          </tr>
-          </thead>
-          <tbody>
-            {% for a in listaAmministratore %}
-              <tr>
-	        <td> {{ a.amministratore.login }} </td>
-                <td> {{ a.amministratore.nome }} </td>
-                <td> {{ a.permesso.nome }} </td>
-                <td></td>
-                <td><button type='submit' 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>
-                </div>
-                <div class="modal-body">
-                  La conferma rimuove immediatamente tutti i diritti associati alla
-                  societa' {{ a.nome }} e alle sue sedi.
-                  Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?<br>
-                </div>
-                <div class="modal-footer">
-                  <form name='ConfirmDeleteModal' method='POST'>
-                    {% csrf_token %}
-                    <button type="submit" name="CancellaAziendaPermessiButton"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='formAmministratoreDaAggiungere' method='POST'>
-                {% csrf_token %}
-                <td>
-                  <select class="form-select"
-                  name="ListaAmministratoriPermessi"
-                  id="ListaAmministratoriPermessi"
-                  >
-                    <option value="">-- Scegli tra gli amministratori disponibili --</option>
-                    {% for lp in listaAmministratoreDaAggiungere  %}
-                      <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>
-{% endblock %}

+ 243 - 0
azienda/templates/azienda.editAzienda.permessi.html

@@ -0,0 +1,243 @@
+{% extends 'base.html' %}
+
+{% block headersupplement %}
+  <script language="JavaScript">
+
+    {% if AziendaEsistente %}
+//      $(window).on('load',function() {
+	$(document).ready(function() {
+	$('#AlertAziendaEsistente').modal('show');
+        $("#dest_nome").html($("#nome").val());
+        $("#dest_partitaiva").html($("#partitaiva").val());
+        console.log($("#partitaiva").val());
+      });
+    {% endif %}
+    
+   </script>
+{% endblock %}
+
+{% block body %}
+  <div class="class="card-header">
+    Lista Amministratori con autorizzazione all'accesso
+  </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'>Login</th>
+            <th scope='col'>Nome</th>
+            <th scope='col'>Permesso</th>
+	    <th scope='col'>Chiave</th>
+            <th scope='col'>E</th>
+            <th scope='col'>D</th>
+          </tr>
+          </thead>
+          <tbody>
+            {% for a in listaAmministratore %}
+              <tr>
+	        <td> {{ a.amministratore.login }} </td>
+                <td> {{ a.amministratore.nome }} </td>
+                <td> {{ a.permesso.nome }} </td>
+		<td> {{ a.permesso.classe }} </td>
+                <td></td>
+                <td><button type='submit' 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>
+                </div>
+                <div class="modal-body">
+                  La conferma rimuove immediatamente tutti i diritti associati alla
+                  societa' {{ a.nome }} e alle sue sedi.
+                  Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?<br>
+                </div>
+                <div class="modal-footer">
+                  <form name='ConfirmDeleteModal' method='POST'>
+                    {% csrf_token %}
+                    <button type="submit" name="CancellaAziendaPermessiButton"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>
+            {% endfor %}
+
+            <form name='formAmministratoreDaAggiungere' method='POST'>
+              {% csrf_token %}
+              <tr>
+                <td>
+                  <select class="form-select"
+                  name="ListaAmministratori"
+		  id="ListaAmministratori">
+                    <option value="">-- Amministratori disponibili --</option>
+                    {% for la in listaAmministratoreDaAggiungere  %}
+                      <option value="{{ la.id }}">{{ la.nome }}</option>
+                    {% endfor %}
+                  </select>
+                </td>
+
+		<td>
+		  <select class="form-select"
+		  name="ListaPermessi"
+		  id="ListaPermessi">
+		    <option value="">-- Permessi disponibili --</option>
+                    {% for lp in listaPermessoDaAggiungere %}
+		      <option value="{{ lp.id }}">{{ lp.classe }} - {{ lp.nome }}</option>
+		    {% endfor %}
+		  </select>
+		</td>
+		<td>
+                  <button type='submit' class='btn btn-primary' name='PermessoDaAggiungereButton'>Aggiungi</button>
+                  <button type='submit' class='btn btn-primary' name='AssegnaIdenticiPermessiButton'>Copia Permessi</button>
+                </td>
+              </tr> 
+
+          </tbody>
+        </table>
+      </li>
+      </ul>
+                  <button type='submit' class="btn btn-primary" name= 'IndietroAziendaButton' value='IndietroAzienda'>Indietro</button>
+                  <button type='submit' class="btn btn-primary" name= 'FineAziendaButton' value='FineAzienda'>Chiudi</button>
+    </div>
+  </form>
+{% endblock %}
+
+  <!-- errori form azienda -->
+  {% if aziendaForm.errors %}
+    {{ aziendaForm.errors }}
+    {% for field in aziendaForm %}
+      {% for error in field.errors %}
+        <div class="alert alert-danger">
+          <strong>{{ error|escape }}</strong>
+        </div>
+      {% endfor %}
+    {% endfor %}
+
+    {% for error in aziendaForm.non_field_errors %}
+      <div class="alert alert-danger">
+          <strong>{{ error|escape }}</strong>
+      </div>
+    {% endfor %}
+  {% else %}
+    Nessun Errore rilevato
+  {% endif %}
+  <!-- fine zona errori -->
+
+  <!-- profilo azienda -->
+  <form name='AziendaEdit' method='post'>
+    {% csrf_token %}
+    <div class='form-group'>
+      <label for="nome">Nome Azienda</label>
+      <input type='text' class='form-control form-control-lg' name='nome' id='nome' value='{{ aziendaForm.nome.value }}' {% if adminForm.sola_lettura %} disabled {% endif %}>
+    </div>
+    <div class='form-group'>
+      <label for="partitaiva">Partita IVA</label>
+      <input type='text' class='form-control' name='partitaiva' id='partitaiva' value='{{ aziendaForm.partitaiva.value }}' {% if adminForm.sola_lettura %} disabled {% endif %}>
+    </div>
+    <div class='form-group'>
+      <label for="mail" class="form-control-label">Email</label>
+      <input type='mail' class='form-control' name='mail' id='mail' value='{{ aziendaForm.mail.value }}' {% if adminForm.sola_lettura %} disabled {% endif %}>
+    </div>
+    <br>
+    <div class="card">
+      <div class="card-header">
+        Opzioni Comuni
+      </div>
+      <ul class="list-group list-group-flush">
+      <li class="list-group-item">
+        <div class='form-check'>
+          <input class="form-check-input" type="checkbox" {% if aziendaForm.cambiopassword.value %} checked {% endif %} id="cambiopassword" name="cambiopassword" {% if admin.sola_lettura %} disabled {% endif %}>
+          <label for='cambiopassword' class='form-control-label'>Il dipendente può aggiornare la password</label>
+        </div>
+        <div class="form-check">
+          <input class="form-check-input" type="checkbox" id="cambiopasswordreplica" name="cambiopasswordreplica" {% if admin.sola_lettura %} disabled {% endif %}/>
+          <label for='cambiopasswordreplica' class='form-control-label'>Applica immediatamente anche a tutte le sedi associate e a tutti i dipendenti gia' presenti</label>
+        </div>
+
+      </li>
+      <!-- blocco automazione cambio password al primo accesso -->
+      <li class="list-group-item">
+        <div class='form-check'>
+          <input class="form-check-input" type="checkbox" {% if aziendaForm.forzanuovapassword.value %} checked {% endif %} id="forzanuovapassword" name="forzanuovapassword" {% if admin.sola_lettura %} disabled {% endif %}/>
+          <label for='forzanuovapassword' class='form-control-label'>Il dipendente deve cambiare la password al primo login. (Opzione valida per i nuovi inserimenti) </label>
+          </div>
+        <div class="form-check">
+          <input class="form-check-input" type="checkbox" id="forzanuovapasswordreplica" name="forzanuovapasswordreplica" {% if admin.sola_lettura %} disabled {% endif %}/>
+          <label for='forzanuovapasswordreplica' class='form-control-label'>Applica immediatamente anche a tutte le sedi associate e a tutti i dipendenti gia' presenti</label>
+        </div>
+      </li>
+
+      <!-- cancellazione azienda -->
+     <li class="list-group-item">
+        <div class="form-check">
+          <input class="form-check-input" type="checkbox" value="{{ aziendaForm.cancellaazienda.value }}" id="cancellaazienda" name="cancellaazienda" {% if admin.sola_lettura %} disabled {% endif %}>
+          <label class="form-check-label" for="cancellaazienda">Cancella Azienda! Operazione NON revocabile e NON Recuperabile!</label>
+        </div>
+      </li>
+
+    </ul>
+    </div>
+    <br>
+    <div class="btn-group">
+      {# sperimentale: "avanti" per impostare i diritti amministratore #}
+      <button type='submit' class="btn btn-primary" name= 'AggiornaAziendaButton' value='AggiornaAzienda' {% if admin.sola_lettura %} disabled {% endif %}>Aggiorna/Salva</button>
+      <button type='submit' class="btn btn-primary" name= 'AvantiAziendaButton' value='AvantiAzienda'>Avanti</button>
+      <button type='submit' class="btn btn-primary" name="indietro">Indietro/Chiudi</button>
+    </div>
+  </form>
+</div>
+
+
+  <br>
+    <div class="card">
+      <div class="class="card-header">
+        Lista Amministratori con autorizzazione all'accesso
+      </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'>Login</th>
+            <th scope='col'>Nome</th>
+            <th scope='col'>Permesso</th>
+            <th scope='col'>E</th>
+            <th scope='col'>D</th>
+          </tr>
+          </thead>
+          <tbody>
+            {% for a in listaAmministratore %}
+              <tr>
+	        <td> {{ a.amministratore.login }} </td>
+                <td> {{ a.amministratore.nome }} </td>
+                <td> {{ a.permesso.nome }} </td>
+                <td></td>
+                <td><button type='submit' 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>
+                </div>
+                <div class="modal-body">
+                  La conferma rimuove immediatamente tutti i diritti associati alla
+                  societa' {{ a.nome }} e alle sue sedi.
+                  Confermi la cancellazione dei diritti di accesso di {{ a.nome }}?<br>
+                </div>
+                <div class="modal-footer">
+                  <form name='ConfirmDeleteModal' method='POST'>
+                    {% csrf_token %}
+                    <button type="submit" name="CancellaAziendaPermessiButton"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>
+	      <!-- end Modal -->
+            {% endfor %}
+    

+ 1 - 0
azienda/urls.py

@@ -5,5 +5,6 @@ app_name='azienda'
 urlpatterns = [
   path('welcome',views.welcome,name='welcome'),
   path('editAzienda',views.editAzienda,name='editAzienda'),
+  path('editAziendaPermesso',views.editAziendaPermesso,name="editAziendaPermesso"),
   path('editSede',views.editSede,name='editSede'),
   ]

+ 138 - 66
azienda/views.py

@@ -23,7 +23,6 @@ def welcome(request):
   data['AziendaId'] = define.getAziendaId()
   data['sede'] = define.getSede()
   data['SedeId'] = define.getSedeId()
-  print('cazzo cazzo')
 
   ### permessi inizio ###
   data['permesso'] = getAMP(data['admin'])[0]
@@ -229,9 +228,31 @@ def editAzienda(request):
   if not 'AdminId' in request.session:
     return HttpResponseRedirect(reverse("login:start"))
 
-  data=dict()
-  data['HeaderTitle'] = getConfig('HeaderTitle')
-  data['Navbar']=False
+  d = DataDict()
+  data = d.getData()
+
+  define = Define(request)
+  data['admin'] = define.getAdmin()
+  data['azienda'] = define.getAzienda()
+  data['AziendaId'] = define.getAziendaId()
+  data['sede'] = define.getSede()
+  data['SedeId'] = define.getSedeId()
+  data['Navbar'] = False
+
+  ### 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']):
+        if t not in data['permesso']:
+          data['permesso'].append(t)
+  print("Permessi Disponibili",data['permesso'])
 
   AdminId = request.session['AdminId']
   print('AdminId',AdminId)
@@ -239,48 +260,20 @@ def editAzienda(request):
   data['admin'] = admin
   print('admin',admin.id,admin.nome)
 
-  azienda = None
-  AziendaId = 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
-
   ### azienda su cui effettuare le operazioni
   azienda = None
+  aziendapresente = False
   if 'AziendaIdEdit' in request.session:
     print('trovato riferimento AziendaIdEdit',request.session.get('AziendaIdEdit'))
     azid = request.session.get('AziendaIdEdit')
     try:
       azienda = Azienda.objects.get(pk=azid)
+      aziendapresente = True
       print('azienda trovata',azienda.nome)
     except Azienda.DoesNotExist as dnf:
       print(dnf)
       azienda = Azienda()
       
-  #### permessi ####
-  data['permesso'] = getAMP(admin)[0]
-  for t in getAZP(azienda,admin):
-    if t not in data['permesso']:
-      data['permesso'].append(t)
-  if 'sede' in data:
-    for t in getSEP(data['sede'],admin):
-      if t not in data['permesso']:
-        data['permesso'].append(t)
-  print('permessi:',data['permesso'])
-  #### permessi ####
-
   if request.method == 'POST':
     print('un tasto è stato premuto')
 
@@ -290,6 +283,7 @@ def editAzienda(request):
     if 'AggiornaAziendaButton' in request.POST:
       print('premuto tasto "AggiornaAziendaButton"')
       nuovaazienda = formAzienda(request.POST)
+
       if nuovaazienda.is_valid():
         print("il form AggiornaAziendaButton' valido",request.POST)
 
@@ -338,33 +332,14 @@ def editAzienda(request):
         data['aziendaForm'] = formAzienda(request.POST)
         print("il form 'AggiornaAziendaButton' non è valido")
 
-    if 'CancellaAziendaPermessiButton' in request.POST:
-      print('premuto "CancellaAziendaPermessiButton"')
-      cancellaaziendaamministratoripermessi = request.POST.get('CancellaAziendaPermessiButton')
-      print('CancellaAziendaAmministratoriPermessi',cancellaaziendaamministratoripermessi)
-      azp = AZP.objects.get(pk=cancellaaziendaamministratoripermessi)
-      if azp:
-        print('Permesso Azienda Amministratore trovato - cancello')
-        azp.delete()
-
-    if 'PermessoDaAggiungereButton' in request.POST:
-      print('premuto "PermessoDaAggiungereButton"')
-      formaziendapermessi = formAziendaPermessi(request.POST,amministratori=Amministratore.objects.all())
-      #formaziendapermessi.c(Amministratore.objects.all()) # alternativa: lista dei soli amministratori con autorizzazione AZIENDA in AMM
-      #print(formaziendapermessi)
-      if formaziendapermessi.is_valid():
-        print('formAziendaPermessi valida')
-        amministratori = formaziendapermessi.cleaned_data.get('ListaAmministratoriPermessi')
-        print('amministratori da aggiungere',amministratori)
-        for x in amministratori: 
-          print('am',amministratori,'az',azienda.nome)
-          try:
-            setAZP(azienda,str(x),"AZIENDA")
-          except ValueError as ve:
-            print('errore in SETAZP')
+    if 'AvantiAziendaButton' in request.POST:
+      print('premuto "AvantiAziendaButton"')
+      ### puo' andare avanti solo se l'azienda gia' e' inserita
+      if aziendapresente:
+        print("azienda presente")
+        return HttpResponseRedirect(reverse('azienda:editAziendaPermesso'))
       else:
-        print('formAziendaPermessi Errore')
-        print(formaziendapermessi)
+        print("azienda non presente")
                 
   formaziendafield = None
   if azienda:
@@ -389,12 +364,108 @@ def editAzienda(request):
     formaziendafield = formAzienda(tmp)
   data['aziendaForm'] = formaziendafield
 
-  if AziendaId:
-    data['listaAmministratore'] = listaAMMperAzienda(AziendaId)[1]
-    print(data['listaAmministratore'])
+  return render(request,'azienda.editAzienda.html',data)
+
+def editAziendaPermesso(request):
+  if not 'AdminId' in request.session:
+    return HttpResponseRedirect(reverse("login:start"))
+
+  d = DataDict()
+  data = d.getData()
+
+  define = Define(request)
+  data['admin'] = define.getAdmin()
+  data['azienda'] = define.getAzienda()
+  data['AziendaId'] = define.getAziendaId()
+  data['sede'] = define.getSede()
+  data['SedeId'] = define.getSedeId()
+  data['Navbar'] = False
+
+  ### 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']):
+        if t not in data['permesso']:
+          data['permesso'].append(t)
+  print("Permessi Disponibili",data['permesso'])
+
+  AziendaId = request.session['AziendaId']
+  print('AziendaId',AziendaId)
+  azienda = Azienda.objects.get(pk=AziendaId)
+
+  if request.method == 'POST':
+    print('un tasto è stato premuto')
+
+    if 'IndietroAziendaButton' in request.POST:
+      return HttpResponseRedirect(reverse('azienda:editAzienda'))
+
+    if 'FineAziendaButton' in request.POST:
+      return HttpResponseRedirect(reverse('azienda:welcome'))
+
+    if 'PermessoDaAggiungereButton' in request.POST:
+      print('premuto "PermessoDaAggiungereButton"')
+      formaziendapermessi = formAziendaPermessi(request.POST,amministratori=Amministratore.objects.all(),permessi=Permesso.objects.all())
+      if formaziendapermessi.is_valid():
+        print('formAziendaPermessi valida')
+        amministratore = formaziendapermessi.cleaned_data.get('ListaAmministratori')
+        permesso = formaziendapermessi.cleaned_data.get('ListaPermessi')
+
+        print('amministratore da aggiungere',amministratore)
+        print('permesso da aggiungere',permesso)
+
+        for a in amministratore: 
+          for p in permesso:
+            try:
+              setAZP(azienda,a,Permesso.objects.get(pk=str(p)))
+            except ValueError as ve:
+              print('errore in seAZP')
+
+      else:
+        if 'errors' in formaziendapermessi:
+          print('formAziendaPermessi Errore',formaziendapermessi['errors'])
+        data['formaziendapermessi'] = formaziendapermessi
+ 
+    if 'AssegnaIdenticiPermessiButton' in request.POST:
+      print('premuto "AssegnaIdenticiPermessiButton"')
+      listapermessidisponibili = getAZP(azienda,data['admin'])[0]
+      print('listapermessidisponibili',listapermessidisponibili)
+      formaziendapermessi = formAziendaPermessi(request.POST,amministratori=Amministratore.objects.all(),permessi=Permesso.objects.all())
+      if formaziendapermessi.is_valid():
+        print('formAziendaPermessi valida')
+        amministratore = formaziendapermessi.cleaned_data.get('ListaAmministratori')
+        for p in listapermessidisponibili:
+          for a in amministratore:
+            try:
+              setAZP(azienda,a,p)
+            except ValueError as ve:
+              print('errore in setAZP')
+
+    if 'CancellaAziendaPermessiButton' in request.POST:
+      print('premuto "CancellaAziendaPermessiButton"')
+      cancellaaziendaamministratoripermessi = request.POST.get('CancellaAziendaPermessiButton')
+      print('CancellaAziendaAmministratoriPermessi',cancellaaziendaamministratoripermessi)
+      azp = AZP.objects.get(pk=cancellaaziendaamministratoripermessi)
+      if azp:
+        print('Permesso Azienda Amministratore trovato - cancello')
+        azp.delete()
+  #else:
+
+  data['listaAmministratore'] = listaAMMperAzienda(AziendaId)[1]
+  data['listaAmministratore'] = sorted(data['listaAmministratore'], key = lambda x: x.amministratore.nome,reverse=False)
+
+  print("listaAmministratore",len(data['listaAmministratore']))
+
   data['listaAmministratoreDaAggiungere'] = Amministratore.objects.all()
+  data['listaPermessoDaAggiungere'] = Permesso.objects.filter(classe="AMM")
 
-  return render(request,'azienda.editAzienda.html',data)
+  return render(request,"azienda.editAzienda.permessi.html",data)
 
 def editSede(request):
 
@@ -405,7 +476,6 @@ def editSede(request):
   data['HeaderTitle'] = getConfig('HeaderTitle')
   data['Navbar']=False
 
-  AdminId = request.session['AdminId']
   print('AdminId',AdminId)
   admin = Amministratore.objects.get(pk=AdminId)
   data['admin'] = admin
@@ -532,7 +602,9 @@ def editSede(request):
       else:
         print('formSedePermessi Errore')
         print(formsedepermessi)
-        
+
+
+      
   formsedefield = None
   if sede:
     print('Abbiamo sede',sede.nome)