1.1.4 rising and select for routes by subscribe
This commit is contained in:
@@ -16,7 +16,6 @@ from datetime import datetime
|
|||||||
def user_name_str(self):
|
def user_name_str(self):
|
||||||
return f'{self.last_name} {self.first_name}'
|
return f'{self.last_name} {self.first_name}'
|
||||||
|
|
||||||
|
|
||||||
User.add_to_class("__str__", user_name_str)
|
User.add_to_class("__str__", user_name_str)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -134,6 +134,11 @@ def get_profile_my_routes_page_content_html(request):
|
|||||||
print(msg)
|
print(msg)
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
|
from SubscribesApp.funcs import get_cur_user_subscribe
|
||||||
|
user_subscribe = get_cur_user_subscribe(request.user)
|
||||||
|
if user_subscribe:
|
||||||
|
routes_Dict.update(user_subscribe.remains_route_adding_options())
|
||||||
|
|
||||||
html = render_to_string('blocks/profile/b_my_routes.html', routes_Dict, request=request)
|
html = render_to_string('blocks/profile/b_my_routes.html', routes_Dict, request=request)
|
||||||
return html
|
return html
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ class Admin_SubscribeOption(Admin_Trans_BaseModel):
|
|||||||
'enable'
|
'enable'
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
(None, {
|
||||||
|
'classes': ['wide'],
|
||||||
|
'fields': (
|
||||||
|
'allow_route_rising_count', 'allow_route_select_count'
|
||||||
|
)
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
list_display = [
|
list_display = [
|
||||||
@@ -76,6 +82,7 @@ class Admin_SubscribeForUser(Admin_Trans_BaseModel):
|
|||||||
list_display = [
|
list_display = [
|
||||||
'id', 'enable',
|
'id', 'enable',
|
||||||
'name', 'user', 'subscribe',
|
'name', 'user', 'subscribe',
|
||||||
|
'used_route_rising_count', 'used_route_select_count',
|
||||||
'last_paid_DT', 'paid_period_from_DT', 'paid_period_to_DT',
|
'last_paid_DT', 'paid_period_from_DT', 'paid_period_to_DT',
|
||||||
'auto_continue', 'receive_finish_subscribe_msg',
|
'auto_continue', 'receive_finish_subscribe_msg',
|
||||||
'order', 'modifiedDT', 'createDT'
|
'order', 'modifiedDT', 'createDT'
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
from django.db import models
|
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 BaseModels.base_models import BaseModel
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from colorfield.fields import ColorField
|
from colorfield.fields import ColorField
|
||||||
@@ -15,6 +17,9 @@ from datetime import datetime, timedelta
|
|||||||
|
|
||||||
class SubscribeOption(BaseModel):
|
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:
|
class Meta:
|
||||||
verbose_name = _('Опция подписки')
|
verbose_name = _('Опция подписки')
|
||||||
verbose_name_plural = _('Опции подписки')
|
verbose_name_plural = _('Опции подписки')
|
||||||
@@ -65,6 +70,9 @@ class SubscribeForUser(BaseModel):
|
|||||||
receive_finish_subscribe_msg = models.BooleanField(
|
receive_finish_subscribe_msg = models.BooleanField(
|
||||||
default=False, verbose_name=_('Получать сообщения о окончании периода'))
|
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:
|
class Meta:
|
||||||
verbose_name = _('Пользовательская подписка')
|
verbose_name = _('Пользовательская подписка')
|
||||||
verbose_name_plural = _('Пользовательские подписки')
|
verbose_name_plural = _('Пользовательские подписки')
|
||||||
@@ -80,6 +88,22 @@ class SubscribeForUser(BaseModel):
|
|||||||
res += f' {str(self.id)}'
|
res += f' {str(self.id)}'
|
||||||
return res
|
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):
|
def get_days_to_finish(self):
|
||||||
days = (self.paid_period_to_DT - datetime.now()).days
|
days = (self.paid_period_to_DT - datetime.now()).days
|
||||||
return days
|
return days
|
||||||
|
|||||||
Reference in New Issue
Block a user