No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
Este repositorio está archivado. Puede ver los archivos y clonarlo, pero no puede subir cambios o reportar incidencias ni pedir Pull Requests.

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