Explorar o código

corretta gestione azienda. ora funziona meglio.
manca in effetti la possibilita' di creare l'azienda nel caso non se ne
abbia diritto a visualizzare e l'azienda gia' esiste

mauro hai 1 ano
pai
achega
c077d56532

+ 3 - 1
azienda/admin.py

@@ -2,4 +2,6 @@ from django.contrib import admin
 from .models import *
 
 admin.site.register(Azienda)
-admin.site.register(Assegnazione)
+admin.site.register(Sede)
+admin.site.register(AssegnazioneAzienda)
+admin.site.register(AssegnazioneSede)

+ 43 - 0
azienda/migrations/0007_remove_assegnazione_user_and_more.py

@@ -0,0 +1,43 @@
+# Generated by Django 5.1.4 on 2024-12-12 15:46
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('azienda', '0006_assegnazionesede'),
+        ('utente', '0016_utente_sede_alter_utente_azienda'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='assegnazione',
+            name='user',
+        ),
+        migrations.RemoveField(
+            model_name='assegnazionesede',
+            name='user',
+        ),
+        migrations.AddField(
+            model_name='assegnazione',
+            name='amministratore',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='utente.amministratore'),
+        ),
+        migrations.AddField(
+            model_name='assegnazionesede',
+            name='amministratore',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='utente.amministratore'),
+        ),
+        migrations.AlterField(
+            model_name='assegnazione',
+            name='azienda',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='azienda.azienda'),
+        ),
+        migrations.AlterField(
+            model_name='assegnazionesede',
+            name='sede',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='azienda.sede'),
+        ),
+    ]

+ 18 - 0
azienda/migrations/0008_rename_assegnazione_assegnazioneazienda.py

@@ -0,0 +1,18 @@
+# Generated by Django 5.1.4 on 2024-12-12 15:57
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('azienda', '0007_remove_assegnazione_user_and_more'),
+        ('utente', '0016_utente_sede_alter_utente_azienda'),
+    ]
+
+    operations = [
+        migrations.RenameModel(
+            old_name='Assegnazione',
+            new_name='AssegnazioneAzienda',
+        ),
+    ]

+ 6 - 5
azienda/models.py

@@ -1,5 +1,6 @@
 from django.db import models
 from django.contrib.auth.models import User
+from utente.models_amministratore import Amministratore
 
 class Azienda(models.Model):
    '''
@@ -23,15 +24,15 @@ class Sede(models.Model):
     nota = models.CharField(max_length=256,null=False,default="")
     azienda = azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
 
-class Assegnazione(models.Model):
+class AssegnazioneAzienda(models.Model):
   '''
   questa tabella permette le associazioni tra società e Utente
   semmai, il problema è capire come associare la società all'utente registrato nella security 
   '''
-  azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
-  user = models.ForeignKey(User,on_delete=models.PROTECT)
+  azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
+  amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
 
 class AssegnazioneSede(models.Model):
-  sede = models.ForeignKey(Sede,on_delete=models.PROTECT)
-  user = models.ForeignKey(User,on_delete=models.PROTECT)
+  sede = models.ForeignKey(Sede,on_delete=models.PROTECT,null=True)
+  amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
 

+ 19 - 19
azienda/views.py

@@ -35,8 +35,10 @@ def welcome(request):
   data['admin'] = admin
   print('admin',admin.id,admin.nome)
 
-  assegnazione = Assegnazione.objects.filter(user=admin.id)
-  print('assegnazione',len(assegnazione))
+  assegnazioneazienda = AssegnazioneAzienda.objects.filter(amministratore=admin.id)
+  print('assegnazioneazienda',len(assegnazioneazienda))
+  assegnazionesede = AssegnazioneSede.objects.filter(amministratore=admin.id)
+  print('assegnazionesede',len(assegnazionesede))
 
   data['listaAttivitaxAmministrazione']=getLogxAmministrazione(admin)
 
@@ -119,7 +121,7 @@ def welcome(request):
       return HttpResponseRedirect(reverse('azienda:editAzienda'))
 
   tmplist = list()
-  for tmp in assegnazione:
+  for tmp in assegnazioneazienda:
     tmplist.append(tmp.azienda)
 
   data['aziendaLista'] = tmplist
@@ -139,7 +141,7 @@ def editAzienda(request):
 
   data={}
   data['HeaderTitle'] = getConfig('HeaderTitle')
-  user = data['admin'] = User.objects.get(pk=AdminId)
+  user = data['admin'] = Amministratore.objects.get(pk=AdminId)
 
   azienda = None
   if 'AziendaIdEdit' in request.session:
@@ -165,13 +167,11 @@ def editAzienda(request):
       request.session['AziendaIdEdit'] = azienda.id
       print('azienda:',azienda.id)
 
-      assegnazione = Assegnazione()
-      if azienda:
-        assegnazione = Assegnazione.objects.get(azienda=azienda.id,user=user.id)
+      assegnazione = AssegnazioneAzienda()
       assegnazione.azienda=azienda
-      assegnazione.user=User.objects.get(pk=AdminId)
-
+      assegnazione.amministratore=Amministratore.objects.get(pk=AdminId)
       assegnazione.save()
+
       del request.session['AziendaIdEdit']
       return HttpResponseRedirect(reverse('azienda:welcome'))
     else:
@@ -193,7 +193,7 @@ def editAzienda(request):
         tmp = dict()
         tmp['nome'] = ''
         tmp['partitaiva'] = ''
-        tmp['mail'] = user.email
+        tmp['mail'] = user.mail
         tmp['forzanuovapassword'] = True
         formAziendaField = formAzienda(tmp)
 
@@ -206,7 +206,7 @@ def editSede(request):
 
   data={}
   data['HeaderTitle'] = getConfig('HeaderTitle')
-  user = data['admin'] = User.objects.get(pk=AdminId)
+  user = data['admin'] = Amministratore.objects.get(pk=AdminId)
 
   if 'AziendaId' in request.session:
     print('trovato riferimento AziendaId',request.session.get('AziendaId'))
@@ -230,14 +230,14 @@ def editSede(request):
       azienda.save()
       request.session['AziendaId'] = azienda.id
       print('azienda:',azienda.id)
+      # verifica assegnazione
+      az = AssegnazioneAzienda.objects.filter(azienda=azienda,amministratore=admin)
+      if az:
+        assegnazione = Assegnazione()
+        assegnazione.azienda = azienda
+        assegnazione.amministratore = user
+        assegnazione.save()
 
-      assegnazione = Assegnazione()
-      if azienda:
-        assegnazione = Assegnazione.objects.get(azienda=azienda,user=user)
-      assegnazione.azienda=azienda
-      assegnazione.user=User.objects.get(pk=AdminId)
-
-      assegnazione.save()
       return HttpResponseRedirect(reverse('azienda:welcome'))
     else:
       print("form non valido")
@@ -258,7 +258,7 @@ def editSede(request):
         tmp = dict()
         tmp['nome'] = ''
         tmp['partitaiva'] = ''
-        tmp['mail'] = user.email
+        tmp['mail'] = user.mail
         tmp['forzanuovapassword'] = True
         formAziendaField = formAzienda(tmp)
 

+ 1 - 1
static/templates/base.html

@@ -69,7 +69,7 @@
            {{ HeaderTitle }}
     </div>
     <div class='form-outline mb-2 text-center h3'>
-	    {% if admin %} {{ admin.username }} {% endif %}
+	    {% if admin %} {{ admin.nome }} {% endif %}
     </div>
     <div class='form-outline mb-5 text-center h3'>
             {% if azienda %} {{ azienda.nome }} {% endif %}

+ 1 - 0
utente/admin.py

@@ -1,5 +1,6 @@
 from django.contrib import admin
 from .models import *
+from .models_amministratore import *
 
 @admin.register(Amministratore)
 class AmministratoreAdmin(admin.ModelAdmin):

+ 1 - 14
utente/models.py

@@ -2,7 +2,7 @@ from django.db import models
 from django.utils import timezone
 
 import datetime
-from azienda.models import *
+from azienda.models import Azienda,Sede
 #from documento.models import *
 
 class Utente(models.Model):
@@ -26,16 +26,3 @@ class Utente(models.Model):
     class Meta:
       constraints = [ models.UniqueConstraint(fields=['nome','codicefiscale'], name="unique-utente") ]
       indexes = [ models.Index(fields=['codicefiscale','nome']) ]
-
-class Amministratore(models.Model):
-    login = models.CharField(max_length=64,null=False)
-    nome = models.CharField(max_length=128,null=False,unique=True)
-    mail = models.CharField(max_length=128,null=False,default="")
-    pin = models.CharField(max_length=64,null=False)
-    sola_lettura = models.BooleanField(default=False)
-    crea_azienda = models.BooleanField(default=True)
-    crea_sede = models.BooleanField(default=True)
-    crea_utente = models.BooleanField(default=True)
-    crea_documento = models.BooleanField(default=True)
-
-

+ 15 - 0
utente/models_amministratore.py

@@ -0,0 +1,15 @@
+from django.db import models
+from django.utils import timezone
+
+class Amministratore(models.Model):
+    login = models.CharField(max_length=64,null=False)
+    nome = models.CharField(max_length=128,null=False,unique=True)
+    mail = models.CharField(max_length=128,null=False,default="")
+    pin = models.CharField(max_length=64,null=False)
+    sola_lettura = models.BooleanField(default=False)
+    crea_azienda = models.BooleanField(default=True)
+    crea_sede = models.BooleanField(default=True)
+    crea_utente = models.BooleanField(default=True)
+    crea_documento = models.BooleanField(default=True)
+
+