| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- from django.db import models
- from amministratore.models import Amministratore
- class Azienda(models.Model):
- '''
- questa classe definisce le società che gengono gestite dal programma.
- ogni utente può gestire una o più società.
- '''
- nome = models.CharField(max_length=132,null=False,default="",unique=True)
- partitaiva = models.CharField(max_length=11,null=False,default="",unique=True)
- mail = models.CharField(max_length=256,null=False,default="")
- comm=models.CharField(max_length=256,null=False,default="") # email usata come mittente per le comunicazioni
- cambiopassword = models.BooleanField(null=False,default=False)
- forzanuovapassword = models.BooleanField(null=False,default=False)
- otppassword = models.BooleanField(null=False,default=False)
- # cambiopassword = e' consentito il cambio password agli utenti
- # forzanuovapassword = obbligatorio il cambio password al primo login
- # otppassword = l'utente puo' accedere con otp
- def __str__(self):
- return f"{self.id}: {self.nome}"
- class Meta:
- constraints = [ models.UniqueConstraint(fields=['nome','partitaiva'], name="unique-azienda") ]
- indexes = [ models.Index(fields=['partitaiva','nome']) ]
- class Sede(models.Model):
- '''
- 'ogni azienda ha almeno una sede'.
- '''
- nome = models.CharField(max_length=132,null=False,default="")
- info = models.CharField(max_length=256,null=False,default="")
- identificativo = models.CharField(max_length=10,null=False,default="")
- azienda = models.ForeignKey(Azienda,on_delete=models.CASCADE)
- cambiopassword = models.BooleanField(null=False,default=False)
- forzanuovapassword = models.BooleanField(null=False,default=False)
- otppassword = models.BooleanField(null=False,default=False)
- def __str__(self):
- return f"{self.id}: {self.nome}"
- class Meta:
- constraints = [ models.UniqueConstraint(fields=['azienda','nome','identificativo'], name="unique-azienda-sede-identificativo"), ]
- indexes = [ models.Index(fields=['nome','identificativo']) ]
- 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,null=True)
- amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
- 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)
- crea_comunicazione = models.BooleanField(default=True)
- edit_azienda = models.BooleanField(default=True)
- edit_sede = models.BooleanField(default=True)
- edit_utente = models.BooleanField(default=True)
- edit_documento = models.BooleanField(default=True)
- edit_comunicazione = models.BooleanField(default=True)
- crea_permesso = models.BooleanField(default=False)
- edit_permesso = models.BooleanField(default=False)
- read_permesso = models.BooleanField(default=True)
- def __str__(self):
- return f"{self.id}: {self.azienda} - {self.amministratore}"
- class AssegnazioneSede(models.Model):
- sede = models.ForeignKey(Sede,on_delete=models.PROTECT,null=True)
- azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
- amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
- 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)
- crea_comunicazione = models.BooleanField(default=True)
- edit_azienda = models.BooleanField(default=True)
- edit_sede = models.BooleanField(default=True)
- edit_utente = models.BooleanField(default=True)
- edit_documento = models.BooleanField(default=True)
- edit_comunicazione = models.BooleanField(default=True)
- crea_permesso = models.BooleanField(default=False)
- edit_permesso = models.BooleanField(default=False)
- read_permesso = models.BooleanField(default=True)
- def __str__(self):
- return f"{self.id}: {self.sede} - {self.azienda} - {self.amministratore}"
|