浏览代码

aggiunta form gestione permessi sede

Mauro 8 月之前
父节点
当前提交
9d45324772

+ 4 - 4
azienda/forms.py

@@ -21,7 +21,6 @@ class formAziendaPermessi(forms.Form):
   def c(self,lista):
     for u in lista:
       self.choices.append((u.id,u.id),)	
-
     print('choices lunghezza',len(self.choices))
     return self.choices
 
@@ -38,14 +37,15 @@ class formSede(forms.Form):
 
 class formSedePermessi(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 formPinMail(forms.Form):

+ 106 - 0
azienda/templates/azienda.editAzienda.documento.html

@@ -0,0 +1,106 @@
+{% extends "base.html" %}
+
+{% block headersupplement %}
+<script language="JavaScript">
+function toggle(source) {
+  checkboxes = document.getElementsByName('select');
+  for(var i=0, n=checkboxes.length;i<n;i++) {
+    checkboxes[i].checked = source.checked;
+  }
+}
+</script>
+{% endblock %}
+
+{% block body %}
+<!-- Nav tabs -->
+<div class="button-group" role="tablist">
+  <button class="btn btn-primary active" id="documento-tab" data-bs-toggle="tab" data-bs-target="#documento-pane" type="button" role="tab" aria-controls="documento-pane" aria-selected="true">Documento</button>
+  {% if 'DOCUMENTO.CREA' in permesso %}
+  <button class="btn btn-primary" id="upload-tab" data-bs-toggle="tab" data-bs-target="#upload-pane" type="button" role="tab" aria-controls="upload-pane" aria-selected="true">Upload</button>
+  {% endif %}
+  {% if 'DOCUMENTO.EDIT' in permesso %}
+  <button class="btn btn-primary" id="delete-tab" data-bs-toggle="tab" data-bs-target="#delete-pane" type="button" role="tab" aria-controls="delete-pane" aria-selected="true">Cancella Vecchi</button>
+  {% endif %}
+  <button class="btn btn-outline-primary" id="return-tab" data-bs-toggle="tab" data-bs-target="#return-pane" type="button" role="tab" aria-controls="return-pane" aria-selected="true"><a href="{% url 'azienda:welcome' %}">Indietro</a></button>
+</div>
+<!-- end nav tabs -->
+
+<div>&nbsp;</div>
+<!-- Tab panes -->
+<div class="tab-content" id='mycontent'>
+  {% include 'documento.welcome.documento.html' %}
+  {% include 'documento.welcome.upload.html' %}
+</div>
+
+  <!-- Modal -->
+<div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="true">
+         <div class="modal-dialog" role="document">
+           <div class="modal-content">
+             <form name='ConfirmDeleteModal' method='POST'>
+               {% csrf_token %}
+               <div class="modal-header">
+                <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione?</h5>
+                  <span aria-hidden="true">&times;</span>
+                </button>
+               </div>
+               <div class="modal-body">
+               Confermi la cancellazione dei vecchi documenti?<br>
+               La cancellazione è definitiva,immediata e non recuperabile
+               <label for='limite'>Documenti più vecchi di:&nbsp;</label>
+               <input type='text' name='limite' id='limite' value='{{ eol }}' maxlenght='4' size='4'>
+               <label for='limite'>giorni.</label>
+               </div>
+               <div class="modal-footer">
+                 <button type="submit" name="DeleteOldDocuments" value='{{ documento.id }}' class="btn btn-primary">Elimina Vecchi Documenti</button>
+                 <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi</button>
+               </div>
+             </form>
+           </div>
+         </div>
+       </div>
+</div>
+  <!-- end modal -->
+{% endblock %}
+
+{% block bodybottom %}
+  {% if listaok %}
+    <div>Sono stati caricati {{ listaoklen }} documento/i</div>
+    <table class='table table-striped table-hover'>
+      <thead class='thead-dark'>
+        <tr>
+          <th scope='col'>Documento caricato con successo</th>
+        </tr>
+      </thead>
+      <tbody>
+        {% for l in listaok %}
+        <tr>
+          <td> {{ l.documento }} </td>
+        </tr>
+        {% endfor %}
+      </tbody>
+    </table>
+    </div>
+  {% endif %}
+
+  <div><br></div>
+
+  {% if listanotok %}
+    <div>Sono stati rifiutati {{ listanotoklen }} documento/i</div>
+    <table class='table table-striped table-hover'>
+      <thead class='thead-dark'>
+        <tr>
+          <th scope='col'>Documento non caricato perche già presente</th>
+        </tr>
+      </thead>
+      <tbody>
+        {% for l in listanotok %}
+        <tr>
+          <td> {{ l.documento }} </td>
+        </tr>
+        {% endfor %}
+      </tbody>
+    </table>
+    </div>
+  {% endif %}
+{% endblock %}
+

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

@@ -108,7 +108,8 @@
     <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= AggiornaAziendaButton' value='AggiornaAzienda' {% if admin.sola_lettura %} disabled {% endif %}>Aggiorna/Salva</button>
+      <button type='submit' class="btn btn-primary" name="AggiornaDocumentoButton" value="AggiornaDocumento">Documenti Azienda</button>
       <button type='submit' class="btn btn-primary" name= 'AvantiAziendaButton' value='AvantiAzienda'>Avanti/Permessi</button>
       <button type='submit' class="btn btn-primary" name="indietro">Indietro/Chiudi</button>
     </div>

+ 3 - 80
azienda/templates/azienda.editSede.html

@@ -80,89 +80,12 @@
     <br>
 
     <div class="btn-group">
-      <button type='submit' class="btn btn-primary" name= 'AggiornaSedeButton' value='AggiornaSede'>Aggiorna/Salva</button>
+      {# sperimentale: "avanti" per impostare i diritti amministratore #}
+      <button type='submit' class="btn btn-primary" name= 'AggiornaSedeButton' value='AggiornaSede' {% if admin.sola_lettura %} disabled {% endif %}>Aggiorna/Salva</button>
+      <button type='submit' class="btn btn-primary" name= 'AvantiSedeButton' value='AvantiSede'>Avanti/Permessi</button>
       <button type='submit' class="btn btn-primary" name="indietro">Indietro/Chiudi</button>
     </div>
   </form>
 </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.amministratore.id }}' value='{{ a.amministratore.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 di cancellazione 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="DeletePermesso" 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 %}

+ 107 - 0
azienda/templates/azienda.editSede.permessi.html

@@ -0,0 +1,107 @@
+{% extends 'base.html' %}
+
+{% block headersupplement %}
+  <script language="JavaScript">
+
+    {% if SedeEsistente %}
+//      $(window).on('load',function() {
+	$(document).ready(function() {
+	$('#AlertSedeEsistente').modal('show');
+        $("#dest_nome").html($("#nome").val());
+        $("#dest_identificativo").html($("#identificativo").val());
+        console.log($("#identificativo").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 Permesso</h5>
+                </div>
+                <div class="modal-body">
+                  La conferma rimuove immediatamente tutti i diritti associati alla
+                  sede' {{ a.nome }}.
+                  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="CancellaSedePermessiButton"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>
+            {% 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 %}

+ 2 - 0
azienda/urls.py

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

+ 176 - 69
azienda/views.py

@@ -1,6 +1,7 @@
 from django.shortcuts import render
 from django.http import HttpResponseRedirect
 from django.db.utils import IntegrityError
+from django.db.models import Q
 from django.urls import reverse
 from .models import *
 from config.views import *
@@ -10,6 +11,7 @@ from .forms import *
 from sicurezza.views import *
 from random import randint
 
+# lista aziende
 def welcome(request):
 
   if not 'AdminId' in request.session:
@@ -223,7 +225,7 @@ def welcome(request):
 
   return render(request,'azienda.welcome.html',data)
 
-# creazione azienda
+# Edit/Creazione Azienda
 def editAzienda(request):
 
   if not 'AdminId' in request.session:
@@ -376,6 +378,7 @@ def editAzienda(request):
 
   return render(request,'azienda.editAzienda.html',data)
 
+# edit Permessi Azienda
 def editAziendaPermesso(request):
   if not 'AdminId' in request.session:
     return HttpResponseRedirect(reverse("login:start"))
@@ -473,73 +476,64 @@ def editAziendaPermesso(request):
   print("listaAmministratore",len(data['listaAmministratore']))
 
   data['listaAmministratoreDaAggiungere'] = Amministratore.objects.all()
-  data['listaPermessoDaAggiungere'] = Permesso.objects.filter(classe="AZI")
+  data['listaPermessoDaAggiungere'] = Permesso.objects.filter(Q(classe="AZI")|Q(classe="SED")|Q(classe="DOC")|Q(classe="UTE"))
 
   return render(request,"azienda.editAzienda.permessi.html",data)
 
+# Edit / Creazione Sede
 def editSede(request):
 
   if not 'AdminId' in request.session:
     return HttpResponseRedirect(reverse("login:start"))
+    
+  d = DataDict()
+  data = d.getData()
 
-  data=dict()
-  data['HeaderTitle'] = getConfig('HeaderTitle')
-  data['Navbar']=False
-
-  AdminId = request.session.get('AdminId')
-  print('AdminId',AdminId)
-  admin = Amministratore.objects.get(pk=AdminId)
-  data['admin'] = admin
-  print('admin',admin.id,admin.nome)
+  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
 
-  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
+  ### 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'])
   
+  ### azienda su cui effettuare le operazioni
   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
-
-  sede = None    
+  sedepresente = False
+  
   if 'SedeIdEdit' in request.session:
     print('trovato riferimento SedeIdEdit',request.session.get('SedeIdEdit'))
     seid = request.session.get('SedeIdEdit')
     try:
       sede = Sede.objects.get(pk=seid)
-      print('sede trovata',sede.nome)
-      flag = True
-    except Sede.DoesNotExist as dne:
-      print('Sede indicata inesistente',dne)
+      sedepresente = True
+      print('sede trovata',data['sede'].nome)
+    except Sede.DoesNotExist as dnf:
+      print(dnf)
       sede = Sede()
-      sede.azienda = Azienda.objects.get(pk=AziendaId)
+      sede.azienda = data['azienda']
       print('sede.azienda',sede.azienda.nome)
       sede.cambiopassword = sede.azienda.cambiopassword
       sede.forzanuovapassword = sede.azienda.forzanuovapassword
       sede.otppassword = sede.azienda.otppassword
 
-  #### permessi ####
-  data['permesso'] = getAMP(admin)[0]
-  for t in getAZP(azienda,admin):
-    if t not in data['permesso']:
-      data['permesso'].append(t)
-  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')
+    print('un tasto è stato premuto in editSede')
     
     if 'indietro' in request.POST:
       return HttpResponseRedirect(reverse('azienda:welcome'))
@@ -586,10 +580,18 @@ def editSede(request):
         if 'UTENTE.EDIT' in getAMP(data['admin'])[0]:
           print('getAMP: UTENTE.EDIT')
           setSEP(sede,data['admin'],"UTENTE.EDIT")
-
       else:
         data['sedeForm'] = formSede(request.POST)
-      
+        
+    if 'AvantiSedeButton' in request.POST:
+      print('premuto "AvantiSedeButton"')
+      ### puo' andare avanti solo se la sede gia' e' inserita
+      if sedepresente:
+        print("sede presente")
+        return HttpResponseRedirect(reverse('azienda:editSedePermesso'))
+      else:
+        print("sede non presente")
+        
     if 'CancellaSedePermessiButton' in request.POST:
       print('premuto "CancellaSedePermessiButton"')
       cancellasedeamministratoripermessi = request.POST.get('CancellaSedePermessiButton')
@@ -599,23 +601,6 @@ def editSede(request):
         print('Permesso Sede Amministratore trovato - cancello')
         sep.delete()
 
-    if 'PermessoDaAggiungereButton' in request.POST:
-      print('premuto "PermessoDaAggiungereButton"')
-      formsedepermessi = formSedePermessi(request.POST,amministratori=Amministratore.objects.all())
-      #formaziendapermessi.c(Amministratore.objects.all()) # alternativa: lista dei soli amministratori con autorizzazione AZIENDA in AMM
-      #print(formaziendapermessi)
-      if formsedepermessi.is_valid():
-        print('formSedePermessi valida')
-        amministratori = formsedepermessi.cleaned_data.get('ListaAmministratoriPermessi')
-        for i in amministratori:
-          print('amministratori da aggiungere',i)
-          setSEP(sede,str(i),"SEDE")
-      else:
-        print('formSedePermessi Errore')
-        print(formsedepermessi)
-
-
-      
   formsedefield = None
   if sede:
     print('Abbiamo sede',sede.nome)
@@ -630,12 +615,134 @@ def editSede(request):
     formsedefield = formSede(tmp)
     
   data['sedeForm'] = formsedefield
+  
+  return render(request,'azienda.editSede.html',data)
 
-  print("**** sedeId",SedeId)
+### Edit permessi sede
+### collegato a edit Sede, consente di modificare i permessi assegnati alla sede per gli utenti.
+def editSedePermesso(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'])
+
+  SedeId = request.session['SedeId']
+  print('SedeId',SedeId)
+  sede = Sede.objects.get(pk=SedeId)
   
-  data['listaAmministratore'] = listaAMMperSede(SedeId)[1]
-  print("lamm",data['listaAmministratore'])
-  data['listaAmministratoreDaAggiungere'] = Amministratore.objects.all()
+  if request.method == 'POST':
+    print('un tasto è stato premuto in editSedePermesso')
 
-  return render(request,'azienda.editSede.html',data)
+    if 'IndietroSedeButton' in request.POST:
+      return HttpResponseRedirect(reverse('azienda:editSede'))
+    
+    if 'FineAziendaButton' in request.POST:
+      return HttpResponseRedirect(reverse('azienda:welcome'))
+    
+    if 'PermessoDaAggiungereButton' in request.POST:
+      print('premuto "PermessoDaAggiungereButton"')
+      formsedepermessi = formSedePermessi(request.POST,amministratori=Amministratore.objects.all())
+      if formsedepermessi.is_valid():
+        print('formSedePermessi valida')
+        amministratore = formsedepermessi.cleaned_data.get('ListaAmministratori')
+        permesso = formsedepermessi.cleaned_data.get('ListaPermessi')
+
+        print('amministratore da aggiungere',amministratore)
+        print('permesso da aggiungere',permesso)
+
+        for a in amministratore: 
+          for p in permesso:
+            try:
+              setSEP(sede,a,Permesso.objects.get(pk=str(p)))
+            except ValueError as ve:
+              print('errore in setSEP')
+      else:
+        print('formSedePermessi Errore',formsedepermessi['errors'])
+        data['formsedepermessi'] = formsedepermessi
  
+    if 'AssegnaIdenticiPermessiButton' in request.POST:
+      # print('premuto "AssegnaIdenticiPermessiButton"')
+      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"')
+      cancellasedeamministratoripermessi = request.POST.get('CancellaSedePermessiButton')
+      print('CancellaSedeAmministratoriPermessi',cancellasedeamministratoripermessi)
+      sep = SEP.objects.get(pk=cancellasedeamministratoripermessi)
+      if sep:
+        print('Permesso Sede Amministratore trovato - cancello')
+        sep.delete()
+
+  data['listaAmministratore'] = listaAMMperSede(data['SedeId'])[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(Q(classe="SED")|Q(classe="DOC")|Q(classe="UTE"))
+    
+  return render(request,"azienda.editSede.permessi.html",data)
+
+def editAziendaDocumento(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') 
+
+  return render(request,"azienda.editAzienda.documenti.html",data)

+ 14 - 16
sicurezza/views.py

@@ -1,16 +1,12 @@
 from django.shortcuts import render
-
-# Create your views here.
-from django.shortcuts import render
 from .models import *
 from att.views import *
 from config.views import *
 from django.db import IntegrityError
 
+# getP: ritorna una lista con i permessi assegnati a tutti i livelli possibili
 def getP(azienda=None,sede=None,amministratore=None,permesso=None):
-  '''
-  getP: ritorna una lista con i permessi assegnati a tutti i livelli possibili
-  '''
+
   print('getP',azienda,sede,amministratore,permesso)
   
   sed = None
@@ -70,7 +66,7 @@ def getP(azienda=None,sede=None,amministratore=None,permesso=None):
   print("getP Permessi:",data)
   return data
   
-# riporta l'elenco dei permessi per amministratore
+# getAMP: riporta l'elenco dei permessi per amministratore
 def getAMP(amministratore=None):
   print("getAMP",amministratore)
   amm=None
@@ -94,7 +90,7 @@ def getAMP(amministratore=None):
   #for i in permessi: print(i,)
   return (permessi,oggettoPermesso,oggettoAMM)
 
-#riporta l'elenco dei permessi per azienda, filtrato per amministratore
+# getAZP: riporta l'elenco dei permessi per azienda, filtrato per amministratore
 def getAZP(azienda=None,amministratore=None):
   print('getAZP',azienda,amministratore)
 
@@ -139,7 +135,7 @@ def getAZP(azienda=None,amministratore=None):
   #for i in permessi: print(i,)
   return (permessi,oggettoPermesso,oggettoAZP)
 
-#ottiene la lista degli amministratori per azienda
+# listaAMMperAzienda: ottiene la lista degli amministratori per azienda
 def listaAMMperAzienda(azienda=None,permesso=None):
 
   azi = None
@@ -185,7 +181,7 @@ def listaAMMperAzienda(azienda=None,permesso=None):
   print('amministratori disponibili',len(amministratore))
   return (amministratore,oggetto)
 
-#ottiene la lista degli amministratori per sede
+# listaAMMperSede: ottiene la lista degli amministratori per sede
 def listaAMMperSede(sede=None,permesso=None):
   print("listaAMMperSede",sede,permesso)
   
@@ -225,20 +221,20 @@ def listaAMMperSede(sede=None,permesso=None):
     t = sed.sep_set.filter(permesso__nome=per_nome)
     for tmp in t:
      lse.append(tmp)
-  print('lunghezza LAZ parametro indicato',lse)
+  print('lunghezza LSE',len(lse))
 
   amministratore = list()
   oggetto = list()
 
   for p in lse:
-    print(p.amministratore.nome)
+    #print(p.amministratore.nome)
     amministratore.append(p.amministratore)
     oggetto.append(p)
 
   print('amministratori disponibili',len(amministratore))
   return (amministratore,oggetto)
 
-#riporta la lista delle aziende in base all'amministratore
+#listaAZP: riporta la lista delle aziende in base all'amministratore
 def listaAZP(amministratore=None):
   print('Parametro amministratore',amministratore,type(amministratore))
   amm = None
@@ -269,7 +265,7 @@ def listaAZP(amministratore=None):
   print('aziende disponibili',len(aziende))
   return (aziende,oggetto)
 
-# ritorna la lista delle sedi per azienda e amministratore
+# listaSEP: ritorna la lista delle sedi per azienda e amministratore
 def listaSEP(azienda=None,amministratore=None,permesso=None):
 
   print("listaSEP",azienda,amministratore,permesso)
@@ -367,7 +363,7 @@ def listaSEP(azienda=None,amministratore=None,permesso=None):
   print('sedi disponibili',len(sedi))
   return (sedi,oggetto)
 
-#riporta l'elenco dei permessi per sede filtrato per amministratore
+# getSEP: riporta l'elenco dei permessi per sede filtrato per amministratore
 def getSEP(sede=None,amministratore=None):
 
   print('getSEP',sede,amministratore)
@@ -415,6 +411,7 @@ def getPermesso(permesso=None):
 def setDefault(amministratore=None):
   pass
 
+# setAMP: imposta i permessi a livello azienda
 def setAMP(amministratore=None,permesso=None):
 
   amm=None
@@ -448,6 +445,7 @@ def setAMP(amministratore=None,permesso=None):
     print(ie)
   return [p,]
 
+# setAZP: imposta i permessi a livello azienda
 def setAZP(azienda=None,amministratore=None,permesso=None):
   print('setAZP:',azienda,amministratore,permesso) 
   azi = None
@@ -500,7 +498,7 @@ def setAZP(azienda=None,amministratore=None,permesso=None):
     print(ie)
   return [p,]
 
-# set Permessi Sede
+# setSEP: imposta i permessi a livello sede
 def setSEP(sede=None,amministratore=None,permesso=None):
 
   sed=None