huge fix
This commit is contained in:
parent
810c87e2e0
commit
b5bf3a5dbe
51 changed files with 2397 additions and 326 deletions
|
|
@ -4,7 +4,7 @@ from django.utils.html import format_html
|
|||
from django.core.validators import RegexValidator
|
||||
from simple_history.models import HistoricalRecords
|
||||
from common.models import TagModel, BaseModel, NameSlugModel
|
||||
from common.consts import UserRoles, BANK_CHOICES
|
||||
from common.consts import UserRoles, BANK_CHOICES, USER_TYPE_CHOICES
|
||||
from locations.models import Affairs, Broker, County
|
||||
|
||||
|
||||
|
|
@ -88,6 +88,33 @@ class Profile(BaseModel):
|
|||
verbose_name="شماره تماس ۲",
|
||||
blank=True
|
||||
)
|
||||
user_type = models.CharField(
|
||||
max_length=20,
|
||||
choices=USER_TYPE_CHOICES,
|
||||
default='individual',
|
||||
verbose_name="نوع کاربر"
|
||||
)
|
||||
company_national_id = models.CharField(
|
||||
max_length=11,
|
||||
null=True,
|
||||
verbose_name="شناسه ملی شرکت",
|
||||
blank=True,
|
||||
validators=[
|
||||
RegexValidator(
|
||||
regex=r'^\d+$',
|
||||
message='شناسه ملی باید فقط شامل اعداد باشد.',
|
||||
code='invalid_company_national_id'
|
||||
)
|
||||
],
|
||||
help_text="فقط برای کاربران حقوقی الزامی است"
|
||||
)
|
||||
company_name = models.CharField(
|
||||
max_length=255,
|
||||
null=True,
|
||||
verbose_name="نام شرکت",
|
||||
blank=True,
|
||||
help_text="فقط برای کاربران حقوقی الزامی است"
|
||||
)
|
||||
|
||||
pic = models.ImageField(
|
||||
upload_to="profile_images",
|
||||
|
|
@ -179,6 +206,23 @@ class Profile(BaseModel):
|
|||
|
||||
pic_tag.short_description = "تصویر"
|
||||
|
||||
def is_legal_entity(self):
|
||||
return self.user_type == 'legal'
|
||||
|
||||
def is_individual(self):
|
||||
return self.user_type == 'individual'
|
||||
|
||||
def get_display_name(self):
|
||||
"""Returns appropriate display name based on user type"""
|
||||
if self.is_legal_entity() and self.company_name:
|
||||
return self.company_name
|
||||
return self.user.get_full_name() or str(self.user)
|
||||
|
||||
def user_type_display(self):
|
||||
return dict(USER_TYPE_CHOICES).get(self.user_type, self.user_type)
|
||||
|
||||
user_type_display.short_description = "نوع کاربر"
|
||||
|
||||
|
||||
class Company(NameSlugModel):
|
||||
logo = models.ImageField(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue