add referral and refferal_user fields into the user model

remotes/origin/HEAD
Max Yakovenko 8 years ago
parent ce11662df9
commit d1c27f363f
  1. 35
      accounts_ext/models.py

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

Loading…
Cancel
Save