models.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.db import models
  2. from amministratore.models import Amministratore
  3. class Azienda(models.Model):
  4. '''
  5. questa classe definisce le società che gengono gestite dal programma.
  6. ogni utente può gestire una o più società.
  7. '''
  8. nome = models.CharField(max_length=132,null=False,default="")
  9. partitaiva = models.CharField(max_length=11,null=False,default="")
  10. mail = models.CharField(max_length=256,null=False,default="")
  11. comm=models.CharField(max_length=256,null=False,default="") # email usata come mittente per le comunicazioni
  12. cambiopassword = models.BooleanField(null=False,default=False)
  13. forzanuovapassword = models.BooleanField(null=False,default=False)
  14. # cambiopassword = e' consentito il cambio password agli utenti
  15. # forzanuovapassword = obbligatorio il cambio password al primo login
  16. class Meta:
  17. constraints = [ models.UniqueConstraint(fields=['nome','partitaiva'], name="unique-azienda") ]
  18. indexes = [ models.Index(fields=['partitaiva','nome']) ]
  19. def __str__(self):
  20. return f"{self.id}: {self.nome}"
  21. class Sede(models.Model):
  22. '''
  23. 'ogni azienda ha almeno una sede'.
  24. '''
  25. nome = models.CharField(max_length=132,null=False,default="")
  26. info = models.CharField(max_length=256,null=False,default="")
  27. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
  28. cambiopassword = models.BooleanField(null=False,default=False)
  29. forzanuovapassword = models.BooleanField(null=False,default=False)
  30. def __str__(self):
  31. return f"{self.id}: {self.nome}"
  32. class AssegnazioneAzienda(models.Model):
  33. '''
  34. questa tabella permette le associazioni tra società e Utente
  35. semmai, il problema è capire come associare la società all'utente registrato nella security
  36. '''
  37. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
  38. amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
  39. class AssegnazioneSede(models.Model):
  40. sede = models.ForeignKey(Sede,on_delete=models.PROTECT,null=True)
  41. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
  42. amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)