0.5.5
find route limit slice
This commit is contained in:
@@ -154,7 +154,11 @@ def find_routes_ajax(request):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
|
|
||||||
data = request.POST.dict()
|
data = request.POST.dict()
|
||||||
|
if not data and request.body:
|
||||||
|
data = json.loads(request.body)
|
||||||
|
|
||||||
data['owner_type'] = 'mover'
|
data['owner_type'] = 'mover'
|
||||||
routes_Dict = get_routes_Dict(data=data)
|
routes_Dict = get_routes_Dict(data=data)
|
||||||
if 'errors' in routes_Dict:
|
if 'errors' in routes_Dict:
|
||||||
|
|||||||
0
SubscribesApp/__init__.py
Normal file
0
SubscribesApp/__init__.py
Normal file
3
SubscribesApp/admin.py
Normal file
3
SubscribesApp/admin.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
6
SubscribesApp/apps.py
Normal file
6
SubscribesApp/apps.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class SubscribesappConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'SubscribesApp'
|
||||||
89
SubscribesApp/migrations/0001_initial.py
Normal file
89
SubscribesApp/migrations/0001_initial.py
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
# Generated by Django 4.2.2 on 2023-08-29 16:04
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Subscribe',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||||
|
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||||
|
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||||
|
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||||
|
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||||
|
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||||
|
('price', models.FloatField(default=0, verbose_name='Стоимость')),
|
||||||
|
('period_name', models.CharField(max_length=250, verbose_name='Название периода')),
|
||||||
|
('period_name_ru', models.CharField(max_length=250, null=True, verbose_name='Название периода')),
|
||||||
|
('period_name_en', models.CharField(max_length=250, null=True, verbose_name='Название периода')),
|
||||||
|
('period', models.IntegerField(default=0, verbose_name='Длительность подписки в часах')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Подписка',
|
||||||
|
'verbose_name_plural': 'Подписки',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SubscribeOption',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||||
|
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||||
|
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||||
|
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||||
|
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||||
|
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Опция подписки',
|
||||||
|
'verbose_name_plural': 'Опции подписки',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SubscribeForUser',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||||
|
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||||
|
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||||
|
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||||
|
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||||
|
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||||
|
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||||
|
('last_paid_DT', models.DateTimeField(blank=True, null=True, verbose_name='Последняя дата оплаты')),
|
||||||
|
('paid_period_from_DT', models.DateTimeField(blank=True, null=True, verbose_name='Оплаченный период с')),
|
||||||
|
('paid_period_to_DT', models.DateTimeField(blank=True, null=True, verbose_name='Оплаченный период до')),
|
||||||
|
('auto_continue', models.BooleanField(default=False, verbose_name='Автопродление')),
|
||||||
|
('receive_finish_subscribe_msg', models.BooleanField(default=False, verbose_name='Получать сообщения о окончании периода')),
|
||||||
|
('subscribe', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_userSubscribes_for_subscribe', to='SubscribesApp.subscribe', verbose_name='Подписка')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rel_userSubscribes_for_user', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Пользовательская подписка',
|
||||||
|
'verbose_name_plural': 'Пользовательские подписки',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='subscribe',
|
||||||
|
name='options',
|
||||||
|
field=models.ManyToManyField(blank=True, related_name='rel_subscribes_for_option', to='SubscribesApp.subscribeoption', verbose_name='Подключенные опции'),
|
||||||
|
),
|
||||||
|
]
|
||||||
0
SubscribesApp/migrations/__init__.py
Normal file
0
SubscribesApp/migrations/__init__.py
Normal file
47
SubscribesApp/models.py
Normal file
47
SubscribesApp/models.py
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
from django.db import models
|
||||||
|
from BaseModels.base_models import BaseModel
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
class SubscribeOption(BaseModel):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _('Опция подписки')
|
||||||
|
verbose_name_plural = _('Опции подписки')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Subscribe(BaseModel):
|
||||||
|
|
||||||
|
price = models.FloatField(verbose_name='Стоимость', default=0)
|
||||||
|
options = models.ManyToManyField(
|
||||||
|
SubscribeOption, verbose_name=_('Подключенные опции'), blank=True, related_name='rel_subscribes_for_option'
|
||||||
|
)
|
||||||
|
period_name = models.CharField(max_length=250, verbose_name=_('Название периода'))
|
||||||
|
period = models.IntegerField(default=0, verbose_name=_('Длительность подписки в часах'))
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _('Подписка')
|
||||||
|
verbose_name_plural = _('Подписки')
|
||||||
|
|
||||||
|
|
||||||
|
class SubscribeForUser(BaseModel):
|
||||||
|
from AuthApp.models import User
|
||||||
|
|
||||||
|
user = models.ForeignKey(
|
||||||
|
User, verbose_name=_('Пользователь'), related_name='rel_userSubscribes_for_user', on_delete=models.CASCADE)
|
||||||
|
subscribe = models.ForeignKey(
|
||||||
|
Subscribe, verbose_name=_('Подписка'), null=True, blank=True, related_name='rel_userSubscribes_for_subscribe',
|
||||||
|
on_delete=models.SET_NULL
|
||||||
|
)
|
||||||
|
last_paid_DT = models.DateTimeField(verbose_name=_('Последняя дата оплаты'), blank=True, null=True)
|
||||||
|
paid_period_from_DT = models.DateTimeField(verbose_name=_('Оплаченный период с'), blank=True, null=True)
|
||||||
|
paid_period_to_DT = models.DateTimeField(verbose_name=_('Оплаченный период до'), blank=True, null=True)
|
||||||
|
|
||||||
|
auto_continue = models.BooleanField(default=False, verbose_name=_('Автопродление'))
|
||||||
|
|
||||||
|
receive_finish_subscribe_msg = models.BooleanField(
|
||||||
|
default=False, verbose_name=_('Получать сообщения о окончании периода'))
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _('Пользовательская подписка')
|
||||||
|
verbose_name_plural = _('Пользовательские подписки')
|
||||||
3
SubscribesApp/tests.py
Normal file
3
SubscribesApp/tests.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
21
SubscribesApp/translation.py
Normal file
21
SubscribesApp/translation.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
from modeltranslation.translator import translator, TranslationOptions
|
||||||
|
from .models import *
|
||||||
|
|
||||||
|
|
||||||
|
class Subscribe_TranslationOptions(TranslationOptions):
|
||||||
|
fields = (
|
||||||
|
'name', 'period_name'
|
||||||
|
)
|
||||||
|
translator.register(Subscribe, Subscribe_TranslationOptions)
|
||||||
|
|
||||||
|
class SubscribeOption_TranslationOptions(TranslationOptions):
|
||||||
|
fields = (
|
||||||
|
'name',
|
||||||
|
)
|
||||||
|
translator.register(SubscribeOption, SubscribeOption_TranslationOptions)
|
||||||
|
|
||||||
|
|
||||||
|
class SubscribeForUser_TranslationOptions(TranslationOptions):
|
||||||
|
fields = (
|
||||||
|
)
|
||||||
|
translator.register(SubscribeForUser, SubscribeForUser_TranslationOptions)
|
||||||
3
SubscribesApp/views.py
Normal file
3
SubscribesApp/views.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
@@ -54,7 +54,7 @@ INSTALLED_APPS = [
|
|||||||
'RoutesApp',
|
'RoutesApp',
|
||||||
'ReferenceDataApp',
|
'ReferenceDataApp',
|
||||||
'ArticlesApp',
|
'ArticlesApp',
|
||||||
|
'SubscribesApp',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|||||||
Reference in New Issue
Block a user