|
|
|
|
@ -52,16 +52,12 @@ class User(AbstractStatusModel, PermissionsMixin, AbstractBaseUser): |
|
|
|
|
'unique': _("A user with that email already exists."), |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
# referral = models.ForeignKey('referral.Referral', |
|
|
|
|
# verbose_name=_('Referral code'), |
|
|
|
|
# on_delete=models.DO_NOTHING, |
|
|
|
|
# blank=True, null=True, |
|
|
|
|
# related_name='ref_code') |
|
|
|
|
|
|
|
|
|
referral_user = models.ForeignKey('self', |
|
|
|
|
verbose_name=_('Referral user'), |
|
|
|
|
on_delete=models.DO_NOTHING, |
|
|
|
|
blank=True, null=True, |
|
|
|
|
related_name='ref_user') |
|
|
|
|
verbose_name=_('Реферальный пользователь'), |
|
|
|
|
on_delete=models.SET_NULL, |
|
|
|
|
blank=True, null=True |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
confirmed_at = models.DateTimeField(_('подвтержден в'), blank=True, null=True) |
|
|
|
|
|
|
|
|
|
@ -102,12 +98,12 @@ class Profile(AbstractStatusModel): |
|
|
|
|
user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE, verbose_name=_('username')) |
|
|
|
|
first_name = models.CharField(_('first name'), max_length=100, blank=True, null=True) |
|
|
|
|
last_name = models.CharField(_('last name'), max_length=100, blank=True, null=True) |
|
|
|
|
patronymic = models.CharField(_('patronymic'), max_length=100, blank=True, null=True) |
|
|
|
|
birthday = models.DateField(_('birthday'), null=True, blank=True) |
|
|
|
|
patronymic = models.CharField(_('отчество'), max_length=100, blank=True, null=True) |
|
|
|
|
birthday = models.DateField(_('дата рождения'), null=True, blank=True) |
|
|
|
|
|
|
|
|
|
phone_regex = RegexValidator(regex=r'^\((+7)|8)?\d{10}$', |
|
|
|
|
message="Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.") |
|
|
|
|
phone = models.CharField(validators=[phone_regex], max_length=12, blank=True, null=True) |
|
|
|
|
phone = models.CharField(_('телефон'),validators=[phone_regex], max_length=12, blank=True, null=True) |
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
def is_valid(self): |
|
|
|
|
@ -137,17 +133,16 @@ COMPANY_TYPE_DEFAULT_CHOICE = COMPANY_TYPE_LEGAL |
|
|
|
|
# @TODO: translate into english and use translation |
|
|
|
|
class Company(AbstractStatusModel): |
|
|
|
|
user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE, verbose_name=_('username')) |
|
|
|
|
company_name = models.CharField(_('Компания'), max_length=255, blank=True, null=True) |
|
|
|
|
address = models.TextField(_('Адрес'), blank=True, null=True) |
|
|
|
|
company_name = models.CharField(_('компания'), max_length=255, blank=True, null=True) |
|
|
|
|
address = models.TextField(_('адрес'), blank=True, null=True) |
|
|
|
|
inn = models.CharField(_('ИНН'), max_length=12, blank=True, null=True) |
|
|
|
|
ogrn = models.CharField(_('ОГРН'), max_length=13, blank=True, null=True) |
|
|
|
|
type = models.SmallIntegerField(_('Тип'), choices=COMPANY_TYPE_CHOICES, default=COMPANY_TYPE_DEFAULT_CHOICE, |
|
|
|
|
type = models.SmallIntegerField(_('тип'), choices=COMPANY_TYPE_CHOICES, default=COMPANY_TYPE_DEFAULT_CHOICE, |
|
|
|
|
blank=True, null=True) |
|
|
|
|
|
|
|
|
|
def set_company_type(self, is_individual_type_predicate): |
|
|
|
|
return COMPANY_TYPE_INDIVIDUAL if is_individual_type_predicate else COMPANY_TYPE_LEGAL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
def is_individual(self): |
|
|
|
|
return self.type == COMPANY_TYPE_INDIVIDUAL |
|
|
|
|
@ -165,7 +160,7 @@ class Company(AbstractStatusModel): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserPoints(models.Model): |
|
|
|
|
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True) |
|
|
|
|
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, null=True) |
|
|
|
|
points = models.DecimalField(max_digits=8, decimal_places=2, null=True, default=0.00) |
|
|
|
|
requisites = models.CharField(max_length=256, default='') |
|
|
|
|
|
|
|
|
|
@ -173,8 +168,8 @@ class UserPoints(models.Model): |
|
|
|
|
return str(self.user.id) |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
verbose_name = _('Очки пользователя') |
|
|
|
|
verbose_name_plural = _('Очки пользователя') |
|
|
|
|
verbose_name = _('очки пользователя') |
|
|
|
|
verbose_name_plural = _('очки пользователя') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@receiver(post_save, sender=get_user_model()) |
|
|
|
|
|