models.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from django.db import models
  2. from django.contrib.auth.models import User
  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. class Meta:
  13. constraints = [ models.UniqueConstraint(fields=['nome','partitaiva'], name="unique-azienda") ]
  14. indexes = [ models.Index(fields=['partitaiva','nome']) ]
  15. class Sede(models.Model):
  16. '''
  17. 'ogni azienda ha almeno una sede'.
  18. '''
  19. nome = models.CharField(max_length=132,null=False,default="")
  20. nota = models.CharField(max_length=256,null=False,default="")
  21. azienda = azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
  22. class Assegnazione(models.Model):
  23. '''
  24. questa tabella permette le associazioni tra società e Utente
  25. semmai, il problema è capire come associare la società all'utente registrato nella security
  26. '''
  27. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
  28. user = models.ForeignKey(User,on_delete=models.PROTECT)
  29. class AssegnazioneSede(models.Model):
  30. sede = models.ForeignKey(Sede,on_delete=models.PROTECT)
  31. user = models.ForeignKey(User,on_delete=models.PROTECT)