refactor accounts ext models

remotes/origin/HEAD
Max Yakovenko 8 years ago
parent fa6531c1df
commit 4667cfe7c8
  1. 48
      accounts_ext/models.py

@ -42,9 +42,10 @@ class UserManager(ActualOnlyManager, BaseUserManager):
def get_queryset(self): def get_queryset(self):
return CaseInsensitiveQuerySet(self.model) return CaseInsensitiveQuerySet(self.model)
#@TODO: translate into english and use translation
# @TODO: translate into english and use translation
class User(AbstractStatusModel, PermissionsMixin, AbstractBaseUser): class User(AbstractStatusModel, PermissionsMixin, AbstractBaseUser):
username = models.CharField(_('username'),max_length=255, blank=False, null=False) username = models.CharField(_('username'), max_length=255, blank=False, null=False)
email = models.EmailField( email = models.EmailField(
_('email'), _('email'),
unique=True, unique=True,
@ -89,7 +90,7 @@ class User(AbstractStatusModel, PermissionsMixin, AbstractBaseUser):
verbose_name_plural = _('пользователи') verbose_name_plural = _('пользователи')
#@TODO: translate into english and use translation # @TODO: translate into english and use translation
class Group(GroupBase): class Group(GroupBase):
class Meta: class Meta:
proxy = True proxy = True
@ -97,8 +98,8 @@ class Group(GroupBase):
verbose_name_plural = _('группы') verbose_name_plural = _('группы')
#@TODO: translate into english and use translation # @TODO: translate into english and use translation
class Profile(AbstractStatusModel): class Profile(models.Model):
user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE) user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE)
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)
@ -127,19 +128,20 @@ class Profile(AbstractStatusModel):
COMPANY_STATUS_LEGAL = 25 COMPANY_STATUS_LEGAL = 25
COMPANY_STATUS_INDIVIDUAL = 50 COMPANY_STATUS_INDIVIDUAL = 50
COMPANY_STATUS_LIST = ( COMPANY_STATUS_CHOICES = (
(COMPANY_STATUS_INDIVIDUAL, _("Legal")), (COMPANY_STATUS_LEGAL, _("Компания")),
(COMPANY_STATUS_INDIVIDUAL, _("Individual")) (COMPANY_STATUS_INDIVIDUAL, _("Физ лицо"))
) )
COMPANY_STATUS_DEFAULT_CHOICE = COMPANY_STATUS_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) user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE)
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)
status = models.SmallIntegerField(choices=COMPANY_STATUS_LIST, blank=True, null=True) status = models.SmallIntegerField(_('Тип'), choices=COMPANY_STATUS_CHOICES, default=COMPANY_STATUS_DEFAULT_CHOICE, blank= True, null=True)
@property @property
def is_individual(self): def is_individual(self):
@ -150,14 +152,14 @@ class Company(AbstractStatusModel):
return self.status == COMPANY_STATUS_LEGAL return self.status == COMPANY_STATUS_LEGAL
def __str__(self): def __str__(self):
return self.company_name return self.company_name or ''
class Meta: class Meta:
verbose_name = _('компания') verbose_name = _('компания')
verbose_name_plural = _('компании') verbose_name_plural = _('компании')
class PickUpRequest(models.Model): class UserPoints(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True) user = models.ForeignKey(User, 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='')
@ -166,23 +168,15 @@ class PickUpRequest(models.Model):
return str(self.user.id) return str(self.user.id)
class Meta: class Meta:
verbose_name = 'PickUpRequest' verbose_name = _('Очки пользователя')
verbose_name_plural = 'PickUpRequests' verbose_name_plural = _('Очки пользователя')
@receiver(post_save, sender=get_user_model()) @receiver(post_save, sender=get_user_model())
def create_user_profile(sender, instance, created, **kwargs): def create_user_profile(sender, instance, created, **kwargs):
if created: if created:
Profile.objects.create(user=instance) Profile.objects.create(user=instance)
@receiver(post_save, sender=get_user_model())
def save_user_profile(sender, instance, **kwargs):
try:
instance.profile.save()
except ObjectDoesNotExist:
Profile.objects.create(user=instance)
@receiver(user_activated) @receiver(user_activated)
def save_activation_date(sender, user, request, **kwargs): def save_activation_date(sender, user, request, **kwargs):
user.confirmed_at = datetime_now() user.confirmed_at = datetime_now()

Loading…
Cancel
Save