1.1.4 rising and select for routes by subscribe
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
from django.db import models
|
||||
from django.db.models import Count, Sum, F
|
||||
from django.db.models.functions import Coalesce
|
||||
from BaseModels.base_models import BaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from colorfield.fields import ColorField
|
||||
@@ -15,6 +17,9 @@ from datetime import datetime, timedelta
|
||||
|
||||
class SubscribeOption(BaseModel):
|
||||
|
||||
allow_route_rising_count = models.IntegerField(verbose_name=_('Количество поднятий объявлений') ,default=0)
|
||||
allow_route_select_count = models.IntegerField(verbose_name=_('Количество выделений объявлений'), default=0)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Опция подписки')
|
||||
verbose_name_plural = _('Опции подписки')
|
||||
@@ -65,6 +70,9 @@ class SubscribeForUser(BaseModel):
|
||||
receive_finish_subscribe_msg = models.BooleanField(
|
||||
default=False, verbose_name=_('Получать сообщения о окончании периода'))
|
||||
|
||||
used_route_rising_count = models.IntegerField(verbose_name=_('Использовано поднятий объявлений'), default=0)
|
||||
used_route_select_count = models.IntegerField(verbose_name=_('Использовано выделений объявлений'), default=0)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Пользовательская подписка')
|
||||
verbose_name_plural = _('Пользовательские подписки')
|
||||
@@ -80,6 +88,22 @@ class SubscribeForUser(BaseModel):
|
||||
res += f' {str(self.id)}'
|
||||
return res
|
||||
|
||||
|
||||
def remains_route_adding_options(self):
|
||||
total_data = SubscribeOption.objects.filter(
|
||||
enable=True, rel_subscribes_for_option=self.subscribe
|
||||
).aggregate(
|
||||
total_route_rising_count = Coalesce(Sum('allow_route_rising_count'), 0),
|
||||
total_route_select_count = Coalesce(Sum('allow_route_select_count'), 0),
|
||||
)
|
||||
total_data.update({
|
||||
'used_route_rising_count': self.used_route_rising_count,
|
||||
'used_route_select_count': self.used_route_select_count,
|
||||
'remains_route_rising_count': total_data['total_route_rising_count'] - self.used_route_rising_count,
|
||||
'remains_route_select_count': total_data['total_route_select_count'] - self.used_route_select_count,
|
||||
})
|
||||
return total_data
|
||||
|
||||
def get_days_to_finish(self):
|
||||
days = (self.paid_period_to_DT - datetime.now()).days
|
||||
return days
|
||||
|
||||
Reference in New Issue
Block a user