44 lines
2.1 KiB
Python
44 lines
2.1 KiB
Python
from django.contrib.auth import get_user_model
|
|
from django.db import models
|
|
from utils.base_model import BaseModel
|
|
from apps.appsetting.models import City as CityModel
|
|
from apps.projectcode.models import ProjectCode as ProjectCodeModel
|
|
# Create your models here.
|
|
CUserModel = get_user_model()
|
|
|
|
|
|
class Project(BaseModel):
|
|
|
|
status_choices = [
|
|
('AwaitComp', 'Awaiting completion'),
|
|
('waiting', 'Waiting'),
|
|
('approved', 'Approved'),
|
|
('rejected', 'Rejected'),
|
|
]
|
|
|
|
cuser = models.ForeignKey(CUserModel, on_delete=models.CASCADE, null=False, blank=False, related_name='mojri_projects')
|
|
city = models.ForeignKey(CityModel, on_delete=models.SET_NULL, null=True, blank=True)
|
|
address = models.CharField(max_length=200, null=False, blank=False)
|
|
zirbana = models.PositiveIntegerField(null=True, blank=True, default=0)
|
|
tabaghat = models.PositiveIntegerField(null=True, blank=True, default=0)
|
|
vahed = models.PositiveIntegerField(null=True, blank=True, default=0)
|
|
factor_price = models.PositiveBigIntegerField(null=False, blank=False)
|
|
seller_name = models.CharField(max_length=50, null=True, blank=True)
|
|
seller_mobile = models.PositiveBigIntegerField(null=True, blank=True)
|
|
seller_address = models.CharField(max_length=200, null=True, blank=True)
|
|
status = models.CharField(max_length=10, choices=status_choices, default='AwaitComp')
|
|
op_cuser = models.ForeignKey(CUserModel, on_delete=models.SET_NULL, null=True, blank=True, related_name='projects')
|
|
ax_factor = models.ImageField(upload_to='project-factor/', null=True, blank=True)
|
|
emtiyaz = models.IntegerField(null=True, blank=True)
|
|
projectcode = models.ForeignKey(ProjectCodeModel, on_delete=models.SET_NULL, null=True, blank=True)
|
|
|
|
def __str__(self):
|
|
return f'{self.cuser.name_family} - {self.city.name}'
|
|
|
|
class Meta:
|
|
ordering = ['-created_at']
|
|
|
|
|
|
class ProjectImage(BaseModel):
|
|
project = models.ForeignKey(Project, models.CASCADE, null=False, blank=False, related_name='project_image')
|
|
image = models.ImageField(upload_to='media/project/', null=False, blank=False) |