Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
Questo repository è archiviato. Puoi vedere i file e clonarli, ma non puoi effettuare richieste di pushj o aprire problemi/richieste di pull.

models.py 1.5 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.db import models
  2. from common.models import Address, NatureOfBusiness
  3. from employee.models import Employee
  4. # Create your models here.
  5. class Client(models.Model):
  6. name = models.CharField(max_length=255)
  7. email = models.EmailField(unique=True)
  8. phone_number = models.CharField(max_length=15)
  9. address = models.OneToOneField(Address, on_delete=models.SET_NULL, null=True)
  10. gstin = models.CharField(max_length=15, blank=True, null=True)
  11. cin = models.CharField(max_length=20, blank=True, null=True)
  12. nature_of_business = models.ForeignKey(NatureOfBusiness, on_delete=models.SET_NULL, null=True)
  13. def __str__(self):
  14. return self.name
  15. class Project(models.Model):
  16. client = models.ForeignKey(Client, on_delete=models.CASCADE)
  17. name = models.CharField(max_length=255)
  18. description = models.TextField()
  19. initiation_date = models.DateField()
  20. def __str__(self):
  21. return self.name
  22. class Requirement(models.Model):
  23. name = models.CharField(max_length=255)
  24. description = models.TextField()
  25. def __str__(self):
  26. return self.name
  27. class Contract(models.Model):
  28. project = models.ForeignKey(Project, on_delete=models.CASCADE)
  29. name = models.CharField(max_length=255)
  30. description = models.TextField()
  31. start_date = models.DateField()
  32. end_date = models.DateField()
  33. requirements = models.ManyToManyField(Requirement, blank=True)
  34. employees = models.ManyToManyField(Employee, blank=True)
  35. def __str__(self):
  36. return self.name