|
|
|
|
@ -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() |
|
|
|
|
|