models.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.db import models
  2. from django.contrib.auth.models import User
  3. from amministratore.models import Amministratore
  4. class Azienda(models.Model):
  5. '''
  6. questa classe definisce le società che gengono gestite dal programma.
  7. ogni utente può gestire una o più società.
  8. '''
  9. nome = models.CharField(max_length=132,null=False,default="")
  10. partitaiva = models.CharField(max_length=11,null=False,default="")
  11. mail = models.CharField(max_length=256,null=False,default="")
  12. comm=models.CharField(max_length=256,null=False,default="") # email usata come mittente per le comunicazioni
  13. class Meta:
  14. constraints = [ models.UniqueConstraint(fields=['nome','partitaiva'], name="unique-azienda") ]
  15. indexes = [ models.Index(fields=['partitaiva','nome']) ]
  16. class Sede(models.Model):
  17. '''
  18. 'ogni azienda ha almeno una sede'.
  19. '''
  20. nome = models.CharField(max_length=132,null=False,default="")
  21. info = models.CharField(max_length=256,null=False,default="")
  22. azienda = azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
  23. class AssegnazioneAzienda(models.Model):
  24. '''
  25. questa tabella permette le associazioni tra società e Utente
  26. semmai, il problema è capire come associare la società all'utente registrato nella security
  27. '''
  28. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
  29. amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
  30. class AssegnazioneSede(models.Model):
  31. sede = models.ForeignKey(Sede,on_delete=models.PROTECT,null=True)
  32. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
  33. amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)