diff --git a/accounts_ext/models.py b/accounts_ext/models.py index 84c7289..919ef29 100644 --- a/accounts_ext/models.py +++ b/accounts_ext/models.py @@ -11,22 +11,13 @@ from django.utils.timezone import now as datetime_now from registration.signals import user_activated -from core.models import AbstractStatusModel, ActualOnlyManager, STATUS_ACTIVE +from core.models import ( + AbstractStatusModel, ActualOnlyManager, STATUS_ACTIVE, CaseInsensitiveQuerySet +) # Create your models here. -class CaseInsensitiveQuerySet(models.QuerySet): - CASE_INSENSITIVE_FIELDS = ('email',) - - def _filter_or_exclude(self, negate, *args, **kwargs): - for field in self.CASE_INSENSITIVE_FIELDS: - if field in kwargs: - kwargs[field + '__iexact'] = kwargs[field] - del kwargs[field] - return super()._filter_or_exclude(negate, *args, **kwargs) - - class UserManager(ActualOnlyManager, BaseUserManager): def create_superuser(self, email, password): user = self.model( @@ -39,7 +30,9 @@ class UserManager(ActualOnlyManager, BaseUserManager): return user def get_queryset(self): - return CaseInsensitiveQuerySet(self.model) + bqs = super().get_queryset() + qs = CaseInsensitiveQuerySet(self.model,bqs.query) + return qs # @TODO: translate into english and use translation @@ -61,7 +54,7 @@ class User(AbstractStatusModel, PermissionsMixin, AbstractBaseUser): referral_user = models.ForeignKey('self', verbose_name=_('Реферальный пользователь'), on_delete=models.SET_NULL, - blank=True,null=True + blank=True, null=True ) confirmed_at = models.DateTimeField(_('подвтержден в'), blank=True, null=True) @@ -108,7 +101,7 @@ class Profile(AbstractStatusModel): 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): @@ -164,24 +157,12 @@ class Company(AbstractStatusModel): verbose_name_plural = _('компании') -class UserPoints(models.Model): - 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='') - - def __str__(self): - return str(self.user.id) - - class Meta: - 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).save() + @receiver(user_activated) def save_activation_date(sender, user, request, **kwargs): user.confirmed_at = datetime_now()