Преглед изворни кода

Merge branch 'FunzioniComuni'

mauro пре 9 месеци
родитељ
комит
21e66638cb
4 измењених фајлова са 160 додато и 86 уклоњено
  1. 17 31
      amministratore/views.py
  2. 45 41
      azienda/views.py
  3. 72 0
      config/datafunc.py
  4. 26 14
      static/templates/base.html

+ 17 - 31
amministratore/views.py

@@ -7,60 +7,46 @@ from random import randint
 from django.http import HttpResponse,HttpResponseRedirect
 from django.urls import reverse
 from sicurezza.views import *
+from config.datafunc import *
 
 def welcome(request):
   if not 'AdminId' in request.session:
     print("Non rilevo presensa AdminId in request.session")
     return HttpResponseRedirect(reverse("login:start"))
 
-  AdminId = request.session['AdminId']
-  print('AdminId',AdminId)
+  ### funzioni esterne ###
+  d = DataDict()
+  data = d.getData()
 
-  data = dict()
-  data['HeaderTitle'] = getConfig('HeaderTitle')
-  data['Navbar']=False
+  define = Define(request)
+  data['admin'] = define.getAdmin()
+  data['azienda'] = define.getAzienda()
+  data['sede'] = define.getSede()
+  ### funzioni esterne fine ###
 
-  admin = Amministratore.objects.get(pk=AdminId)
-  data['admin'] = admin
-  print('admin',admin.id,admin.nome)
+  #AdminId = request.session['AdminId']
+  #print('AdminId',AdminId)
 
-  data['permesso'] = getAMP(admin)[0]
-  data['permesso_amministratore'] = getAMP(admin)[0]
+  data['permesso'] = getAMP(data['admin'])[0]
+  data['permesso_amministratore'] = getAMP(data['admin'])[0]
   
-  azienda = 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
-
   amministratorelista = Amministratore.objects.all()
   data['amministratorelista'] = amministratorelista
   print(len(amministratorelista))
 
   # mostriamo gli amministratori per l'azienda
-  if azienda:
+  if data['azienda']:
     print('trovato riferimento per azienda')
-    amministratorelista = azienda.assegnazioneazienda_set.all()
+    amministratorelista = data['azienda'].assegnazioneazienda_set.all()
     tmp=[]
     for al in amministratorelista:
       print(al.amministratore.nome)
       tmp.append(al.amministratore)
     data['amministratorelista'] = tmp
 
-  if sede:
+  if data['sede']:
     print('trovato riferimento per sede')
-    amministratorelista = sede.assegnazionesede_set.all()
+    amministratorelista = data['sede'].assegnazionesede_set.all()
     tmp = []
     for al in amministratorelista:
       try:

+ 45 - 41
azienda/views.py

@@ -3,6 +3,7 @@ from django.http import HttpResponseRedirect
 from django.urls import reverse
 from .models import *
 from config.views import *
+from config.datafunc import *
 from att.views import *
 from .forms import *
 from sicurezza.views import *
@@ -12,43 +13,31 @@ def welcome(request):
   if not 'AdminId' in request.session:
     return HttpResponseRedirect(reverse("login:start"))
 
-  data = dict()
-  data['HeaderTitle'] = getConfig('HeaderTitle')
-  data['Navbar']=True
+  d = DataDict()
+  data = d.getData()
 
-  AdminId = request.session['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()
+  print('cazzo cazzo')
 
-  azienda = 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
- 
   ### permessi inizio ###
-  data['permesso'] = getAMP(admin)[0]
-
-  if 'AziendaId' in data:
-    for t in getAZP(data['AziendaId'],admin):
-      if t not in data['permesso']:
-        data['permesso'].append(t)
-    for t in getSEP(data['sede'],admin):
+  data['permesso'] = getAMP(data['admin'])[0]
+  print("******",data['azienda'])
+  if 'azienda' in data:
+    print('**** azienda presente ****')
+    for t in getAZP(data['azienda'],data['admin']):
       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(data['permesso'])
 
     #print('permesso',getAMP(admin)[0])
     #print('permesso_azienda',getAZP(data['AziendaId'],admin))
@@ -56,7 +45,7 @@ def welcome(request):
   ### permessi fine ###
 
   ### ricerca delle aziende valide per questo amministratore 
-  assegnazioneazienda = listaAZP(admin)[0]
+  assegnazioneazienda = listaAZP(data['admin'])[0]
   print('assegnazioneazienda',len(assegnazioneazienda))
   if len(assegnazioneazienda) == 1:
     ### c'e' una sola azienda, 
@@ -68,12 +57,12 @@ def welcome(request):
 
   ### lista delle sedi valida per questo amministratore
   assegnazionesede=None
-  if azienda:
-    assegnazionesede = listaSEP(admin,azienda,"SEDE")
+  if data['azienda']:
+    assegnazionesede = listaSEP(data['admin'],data['azienda'],"SEDE")
     print("assegnazionesede",len(assegnazionesede))
 
   ### lista attività ###
-  data['listaAttivitaxAmministrazione']=getLogxAmministrazione(admin)
+  data['listaAttivitaxAmministrazione']=getLogxAmministrazione(data['admin'])
 
   if request.method=="POST":
     print(request.POST)
@@ -189,13 +178,11 @@ def welcome(request):
 
   data['AziendaLista'] = assegnazioneazienda
 
-  if 'azienda' in data:
+  if 'azienda' in data and data['azienda'] != None:
+    print('azienda',data['azienda'])
     print('azienda selezionata:',data['azienda'].nome)
     # costruisce la lista delle sedi.
-    #print(":::",listaSEP(data['azienda'],admin))
-    data['SedeLista'] = listaSEP(data['azienda'],admin,"SEDE")[0]
-    #print("::::",data['SedeLista'])
-    #print(data)
+    data['SedeLista'] = listaSEP(data['azienda'],data['admin'],"SEDE")[0]
     
   print('numero aziende',len(data['AziendaLista']))
   
@@ -203,6 +190,22 @@ def welcome(request):
     print('numero di sedi',len(data['SedeLista']))
     #for i in data['SedeLista']: print(":::",i.nome)
 
+  ### 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']):
+      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(data['permesso'])
+  ### permessi fine ###
+
   return render(request,'azienda.welcome.html',data)
 
 # creazione azienda
@@ -387,6 +390,7 @@ def editSede(request):
   print('admin',admin.id,admin.nome)
 
   azienda = None
+  AziendaId = None
   if 'AziendaId' in request.session:
     AziendaId = request.session['AziendaId']
     print('AziendaId',AziendaId)

+ 72 - 0
config/datafunc.py

@@ -0,0 +1,72 @@
+#modulo per la gestione della lista 'data' e dei relativo valori
+from .views import *
+from azienda.models import *
+from amministratore.models import *
+
+class DataDict(object):
+  def __init__(self):
+    self.data = dict()
+    self.data['HeaderTitle'] = getConfig('HeaderTitle')
+    self.data['Navbar']=True
+    self.data['ShowSelectAzienda'] = True
+    self.data['ShowSelectSede'] = True
+
+  def getData(self):
+    return self.data
+
+  def setData(self,data,valore):
+    if data in self.data:
+      self.data[data] = valore
+      return self.data
+    self.data[data]=valore
+    return self.data
+
+class Define(object):
+  def __init__(self,request):
+    self.AziendaId = None
+    self.SedeId = None
+    self.AdminId = None
+
+    if 'AziendaId' in request.session:
+      self.AziendaId = request.session['AziendaId']
+    if 'SedeId' in request.session:
+      self.SedeId = request.session['SedeId']
+    if 'AdminId' in request.session:
+      self.AdminId = request.session['AdminId']
+
+  def getAzienda(self):
+    azienda=None
+    if self.AziendaId:
+      try:
+        azienda = Azienda.objects.get(pk=self.AziendaId)
+      except Azienda.DoesNotExist as dne:
+        print('azienda non esiste')
+    return azienda
+
+  def getAziendaId(self):
+    return self.AziendaId
+
+  def getSede(self):
+    sede=None
+    if self.AziendaId:
+      try:
+        sede = Sede.objects.get(pk=self.SedeId)
+      except Sede.DoesNotExist as dne:
+        print('Sede Non esiste')
+    return sede
+
+  def getSedeId(self):
+    return self.SedeId
+
+  def getAdmin(self):
+    admin = None
+    if self.AdminId:
+      try:
+        admin = Amministratore.objects.get(pk=self.AdminId)
+      except Amministratore.DoesNotExist as dne:
+        print('Amministratore non esiste')
+    return admin
+
+  def getAdminid(self):
+    return self.AdminId
+

+ 26 - 14
static/templates/base.html

@@ -18,30 +18,35 @@
   <!-- https://getbootstrap.com/docs/5.0/components/navbar/ -->
   <nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
 
-    <div class="container-fluid">
-    <a class="navbar-brand" href="#">Gestione Documenti</a>
+  <div class="container-fluid">
+    <!--<a class="navbar-brand" href="#">Gestione Documenti</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>
-    </button>
-    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+    </button>-->
 
+    <div class="collapse navbar-collapse" id="navbarSupportedContent">
       <ul class="navbar-nav me-auto mb-2 mb-lg-0">
+        {% if ShowSelectAzienda %}
         <li class="nav-item">
-          <ul>
-            <form name="scegliazienda" method=POST class='d-flex'>
+          <ul class="navbar-nav me-auto mb-2 mb-lg-0">
+		  <form name="scegliazienda" method=POST class='d-flex'>
             {% csrf_token %}
             <select class="form-select form-select-lg mb-1" aria-label=".form-select-lg" name="sceltaazienda" onchange="this.form.submit()">
 	      <option value=-1>Scelta Azienda</option>
               {% for a in AziendaLista %}
 	      <option value={{ a.id }} {% if a.id == azienda.id %}selected{% endif %}>{{ a.nome }}</button></option>
               {% endfor %}
+	      {% if "AZIENDA.CREA" in permesso %}
               <option value=0>Nuova Azienda</option>
+	      {% endif %}
             </select>
             </form>
 	  </ul>
 	</li>
+        {% endif %}
+        {% if ShowSelectSede %}
 	<li class="nav-item">
-	  <ul>
+	  <ul class="navbar-nav me-auto mb-2 mb-lg-0">
             <form name="sceglisede" method=POST class='d-flex'>
             {% csrf_token %}
             <select class="form-select form-select-lg mb-1" aria-label=".form-select-lg" name="sceltasede" onchange="this.form.submit()">
@@ -49,31 +54,38 @@
               {% for s in SedeLista %}
 	      <option value={{ s.id }} {% if s.id == sede.id %}selected{% endif %}>{{ s.nome }} {% if s.identificativo %}({{ s.identificativo }}){% endif %}</button></option>
               {% endfor %}
-              <option value=0>Nuova Sede</option>
+	      {% if "SEDE.CREA" in permesso %}
+                <option value=0>Nuova Sede</option>
+	      {% endif %}
             </select>
             </form>
           </ul>
         </li>
+        {% endif %}
+      </ul>
+      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
+        <li class="nav-item form-outline text-center mb-2 h2">
+          {{ HeaderTitle }}
+        </li>
       </ul>
-
       <form class="d-flex" method='POST'>
         {% csrf_token %}
         <ul class="navbar-nav me-auto mb-2 mb-lg-0">
-          <li class="nav-item">
+        <li class="nav-item">
         {% if "AMMINISTRATORE" in permesso %}
-	<ul><button type='submit' class='btn btn-outline-success' name='amministratore' value='{{ admin.id }}'>Amministratori</button> </ul>
+	  <ul class="navbar-nav me-auto mb-2 mb-lg-0"><button type='submit' class='btn btn-outline-success' name='amministratore' value='{{ admin.id }}'>Amministratori</button> </ul>
         {% endif %}
 	</li>
 	{% if 'SEARCH' in permesso %}
           <li class="nav-item">
-            <ul><input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"></ul>
+            <ul class="navbar-nav me-auto mb-2 mb-lg-0"><input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"></ul>
 	  </li>
           <li class="nav-item">
-  	    <ul><button class="btn btn-outline-success" type="submit">Search</button></ul>
+  	    <ul class="navbar-nav me-auto mb-2 mb-lg-0"><button class="btn btn-outline-success" type="submit">Search</button></ul>
 	  </li>
 	{% endif %}
         <li class="nav-item">
-          <ul><button class="btn btn-outline-success" name='indietro' type="submit">Logout</button></ul>
+          <ul class="navbar-nav me-auto mb-2 mb-lg-0"><button class="btn btn-outline-success" name='indietro' type="submit">Logout</button></ul>
         </li>
 	</ul>
       </form>