From 4667cfe7c85c2e2ef575f12ba19365a4c9ecf08a Mon Sep 17 00:00:00 2001 From: Max Yakovenko Date: Sat, 21 Jul 2018 11:45:37 +0300 Subject: [PATCH] refactor accounts ext models --- accounts_ext/models.py | 48 ++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/accounts_ext/models.py b/accounts_ext/models.py index 321fbc4..d42af49 100644 --- a/accounts_ext/models.py +++ b/accounts_ext/models.py @@ -42,9 +42,10 @@ class UserManager(ActualOnlyManager, BaseUserManager): def get_queryset(self): return CaseInsensitiveQuerySet(self.model) -#@TODO: translate into english and use translation + +# @TODO: translate into english and use translation 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'), unique=True, @@ -89,7 +90,7 @@ class User(AbstractStatusModel, PermissionsMixin, AbstractBaseUser): verbose_name_plural = _('пользователи') -#@TODO: translate into english and use translation +# @TODO: translate into english and use translation class Group(GroupBase): class Meta: proxy = True @@ -97,8 +98,8 @@ class Group(GroupBase): verbose_name_plural = _('группы') -#@TODO: translate into english and use translation -class Profile(AbstractStatusModel): +# @TODO: translate into english and use translation +class Profile(models.Model): user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE) 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) @@ -127,19 +128,20 @@ class Profile(AbstractStatusModel): COMPANY_STATUS_LEGAL = 25 COMPANY_STATUS_INDIVIDUAL = 50 -COMPANY_STATUS_LIST = ( - (COMPANY_STATUS_INDIVIDUAL, _("Legal")), - (COMPANY_STATUS_INDIVIDUAL, _("Individual")) +COMPANY_STATUS_CHOICES = ( + (COMPANY_STATUS_LEGAL, _("Компания")), + (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): user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE) - 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) - status = models.SmallIntegerField(choices=COMPANY_STATUS_LIST, 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) + status = models.SmallIntegerField(_('Тип'), choices=COMPANY_STATUS_CHOICES, default=COMPANY_STATUS_DEFAULT_CHOICE, blank= True, null=True) @property def is_individual(self): @@ -150,14 +152,14 @@ class Company(AbstractStatusModel): return self.status == COMPANY_STATUS_LEGAL def __str__(self): - return self.company_name + return self.company_name or '' class Meta: verbose_name = _('компания') verbose_name_plural = _('компании') -class PickUpRequest(models.Model): +class UserPoints(models.Model): user = models.ForeignKey(User, 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='') @@ -166,23 +168,15 @@ class PickUpRequest(models.Model): return str(self.user.id) class Meta: - verbose_name = 'PickUpRequest' - verbose_name_plural = 'PickUpRequests' + verbose_name = _('Очки пользователя') + verbose_name_plural = _('Очки пользователя') + @receiver(post_save, sender=get_user_model()) def create_user_profile(sender, instance, created, **kwargs): if created: 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) def save_activation_date(sender, user, request, **kwargs): user.confirmed_at = datetime_now()