فهرست منبع

problemi con la gestione dei diritti sede - iniziato lavoro sulla possibilita di copiare i diritti di un utente su un altro

mauro 7 ماه پیش
والد
کامیت
2eab1fe102

+ 13 - 0
azienda/forms.py

@@ -49,6 +49,19 @@ class formSedePermessi(forms.Form):
     print('choices lunghezza',len(self.choices))
     return self.choices
 
+class formSedeAmministratoreSorgente(forms.Form):
+  choices = []
+  def __init__(self,*args,amministratori=[],permessi=[],**kwargs):
+    forms.Form.__init__(self,*args,**kwargs)
+    self.fields['ListaAmministratori'] = forms.MultipleChoiceField(required=True,choices=self.c(amministratori))
+    self.fields['ListaAmministratoriSorgente'] = forms.MultipleChoiceField(required=True,choices=self.c(amministratori))
+
+  def c(self,lista):
+    for u in lista:
+      self.choices.append((u.id,u.id),)	
+    print('choices lunghezza',len(self.choices))
+    return self.choices
+
 class formPinMail(forms.Form):
   def __init__(self,*args,**kwargs):
     forms.Form.__init__(self,*args,**kwargs)

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

@@ -99,7 +99,7 @@
     <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>
-      {% if aziendaprensete %} <button type='submit' class="btn btn-primary" name="AggiornaDocumentoButton" value="AggiornaDocumento">Documenti Azienda</button> {% endif %}
+      {% if aziendapresente %} <button type='submit' class="btn btn-primary" name="AggiornaDocumentoButton" value="AggiornaDocumento">Documenti Azienda</button> {% endif %}
       {% if aziendapresente %} <button type='submit' class="btn btn-primary" name= 'AvantiAziendaButton' value='AvantiAzienda'>Avanti/Permessi</button> {% endif %}
       <button type='submit' class="btn btn-primary" name="indietro">Indietro/Chiudi</button>
     </div>

+ 12 - 3
azienda/templates/azienda.editSede.permessi.html

@@ -86,16 +86,25 @@
 		  id="ListaPermessi">
 		    <option value="">-- Permessi disponibili --</option>
                     {% for lp in listaPermessoDaAggiungere %}
-		      <option value="{{ lp.id }}">{{ lp.classe }} - {{ lp.nome }}</option>
+		      <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>
+                  <button type='submit' class='btn btn-primary' name='AssegnaIdenticiPermessiButton'>Copia Permessi da</button>
                 </td>
+		<td>
+		  <select class="form-select"
+		  name="ListaAmministratoriSorgente"
+		  id="ListaAmministratoriSorgente">
+		    <option value="">-- Amministratori Presenti --</option>
+                    {% for lp in listaAmministratoreSorgente %}
+		      <option value="{{ lp.amministratore.id }}">{{ lp.amministratore.nome }}</option>
+		    {% endfor %}
+		  </select>
+		</td>
               </tr> 
-
           </tbody>
         </table>
       </li>

+ 26 - 4
azienda/views.py

@@ -276,14 +276,14 @@ def editAzienda(request):
 
   ### azienda su cui effettuare le operazioni
   azienda = Azienda()
-  aziendapresente=False
+  data['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
+      data['aziendapresente']=True
       print('azienda trovata',azienda.nome)
     except Azienda.DoesNotExist as dnf:
       print(dnf)
@@ -313,7 +313,7 @@ def editAzienda(request):
         print("####### azienda.mail",azienda.mail)
         try:
           azienda.save()
-          aziendapresente=True
+          data['aziendapresente']=True
         except IntegrityError as ie:
           print("Errore, azienda gia' presente:",azienda.nome,azienda.partitaiva)
           return HttpResponseRedirect(reverse('azienda:welcome'))
@@ -363,7 +363,6 @@ def editAzienda(request):
             setAZP(azienda,data['admin'],"UTENTE.EDIT")
 
         data['aziendaForm'] = formAzienda(request.POST)
-        if aziendapresente: data['aziendapresente']=True
 
         return render(request,'azienda.editAzienda.html',data)
       else:
@@ -689,9 +688,24 @@ def editSedePermesso(request):
  
     if 'AssegnaIdenticiPermessiButton' in request.POST:
       # print('premuto "AssegnaIdenticiPermessiButton"')
+      print("****")
+      print('sede',sede)
+      print('admin',data['admin'])
+      print(getSEP(sede,data['admin']))
+      print("****") 
+
+      formsedeamministratoresorgente = formSedeAmministratoreSorgente(request.POST)
+      formsedeamministratoresorgente.c(Amministratore.objects.all())
+      if formsedeamministratoresorgente.is_valid():
+        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')
@@ -701,6 +715,7 @@ def editSedePermesso(request):
               setSEP(sede,a,p)
             except ValueError as ve:
               print('errore in setSEP')
+      '''
 
     if 'CancellaSedePermessiButton' in request.POST:
       print('premuto "CancellaSedePermessiButton"')
@@ -711,10 +726,17 @@ def editSedePermesso(request):
         print('Permesso Sede Amministratore trovato - cancello')
         sep.delete()
 
+  # lista degli amministratori gia presenti 
   data['listaAmministratore'] = listaAMMperSede(data['SedeId'])[1]
   data['listaAmministratore'] = sorted(data['listaAmministratore'], key = lambda x: x.amministratore.nome,reverse=False)
 
+  data['listaAmministratoreSorgente'] = list()
+  for x in data['listaAmministratore']:
+      if x not in data['listaAmministratoreSorgente']:
+        data['listaAmministratoreSorgente'].append(x)
+  
   print("listaAmministratore",len(data['listaAmministratore']))
+  print("listaAmministratoreSorgente",len(data['listaAmministratoreSorgente']))
 
   data['listaAmministratoreDaAggiungere'] = Amministratore.objects.all()
   data['listaPermessoDaAggiungere'] = Permesso.objects.filter(Q(classe="SED")|Q(classe="DOC")|Q(classe="UTE"))

+ 1 - 1
gd/settings.py

@@ -130,7 +130,7 @@ STATIC_URL = 'static/'
 
 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 
-FORCE_SCRIPT_NAME = '/gd'
+#FORCE_SCRIPT_NAME = '/gd'
 
 #la sessione comunque scade alla chiusura del browser
 SESSION_EXPIRE_AT_BROWSER_CLOSE=True

+ 6 - 1
sicurezza/views.py

@@ -373,7 +373,7 @@ def getSEP(sede=None,amministratore=None):
 
   sed=None
   if isinstance(sede,Sede):
-    print('si tratta di una istanza dede')
+    print('si tratta di una istanza sede')
     sed=sede
   if isinstance(sede,int):
     print('sede: istanza int')
@@ -383,14 +383,19 @@ def getSEP(sede=None,amministratore=None):
   if isinstance(amministratore,Amministratore):
     print('si tratta di una istanza amministratore, quindi possiamo direttamente accedere')
     amm = amministratore
+    print('amministratore',amm.nome)
   if isinstance(amministratore,int):
     print('si tratta di un int, quindi dobbiamo cercare il valore')
     amm = Amministratore.objects.get(pk=amministratore)
 
   if not sed:
+     print('sede non presente')
      return []
   permessi = list()
 
+  for t in sed.sep_set.all():
+    print(t.amministratore.nome,t.permesso.nome)
+
   for p in sed.sep_set.all().filter(amministratore=amm):
     permessi.append(p.permesso.nome)
 

+ 3 - 3
static/templates/base.html

@@ -18,7 +18,7 @@
   <!-- https://getbootstrap.com/docs/5.0/components/navbar/ -->
   <nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
 
-  <div class="container-fluid">
+  <div class="container-fluid h4">
     <a class="navbar-brand" href="#"></a>
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
@@ -64,7 +64,7 @@
         {% endif %}
       </ul>
       <ul class="navbar-nav me-auto mb-2 mb-lg-0">
-        <li class="nav-item form-outline text-center mb-2 h2">
+        <li class="nav-item form-outline text-center mb-2 h4">
           {{ HeaderTitle }}
         </li>
       </ul>
@@ -99,7 +99,7 @@
 <!-- blocco info generali -->
 <div class='container'>
     {% block top %}
-    <div class='form-outline mb-2 text-center h3'>
+    <div class='form-outline mb-2 text-center h4'>
 	    {% if admin %} {{ admin.nome }} {% endif %}
     <!--</div>
     <div class='form-outline mb-5 text-center h3'>-->