models.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. cambiopassword = models.BooleanField(null=False,default=0)
  14. class Meta:
  15. constraints = [ models.UniqueConstraint(fields=['nome','partitaiva'], name="unique-azienda") ]
  16. indexes = [ models.Index(fields=['partitaiva','nome']) ]
  17. def __str__(self):
  18. return f"{self.id}: {self.nome}"
  19. class Sede(models.Model):
  20. '''
  21. 'ogni azienda ha almeno una sede'.
  22. '''
  23. nome = models.CharField(max_length=132,null=False,default="")
  24. info = models.CharField(max_length=256,null=False,default="")
  25. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
  26. cambiopassword = models.BooleanField(null=False,default=0)
  27. def __str__(self):
  28. return f"{self.id}: {self.nome}"
  29. class AssegnazioneAzienda(models.Model):
  30. '''
  31. questa tabella permette le associazioni tra società e Utente
  32. semmai, il problema è capire come associare la società all'utente registrato nella security
  33. '''
  34. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
  35. amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)
  36. class AssegnazioneSede(models.Model):
  37. sede = models.ForeignKey(Sede,on_delete=models.PROTECT,null=True)
  38. azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT,null=True)
  39. amministratore = models.ForeignKey(Amministratore,on_delete=models.PROTECT,null=True)