From 40a2412b9b8b250b07524396dbd95a6b077089af Mon Sep 17 00:00:00 2001 From: ArtemB Date: Tue, 13 Aug 2024 12:49:08 +0300 Subject: [PATCH 1/4] 1.2.2 add url check for my_route dynamic_loading_routes.js --- static/js/dynamic_loading_routes.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/static/js/dynamic_loading_routes.js b/static/js/dynamic_loading_routes.js index 460f945..718fb8b 100644 --- a/static/js/dynamic_loading_routes.js +++ b/static/js/dynamic_loading_routes.js @@ -9,6 +9,7 @@ function load_routes (el,news=null,incrase,owner_type) { if (!news){ local_page_iterator = page_iterator } + let check_url = (window.location.href.indexOf("my_routes") > -1) let number_last_route = el.id // let incrase = 2 // if (!news){ @@ -20,13 +21,20 @@ function load_routes (el,news=null,incrase,owner_type) { } let get_url = "" let url_ajax = "get_articles_block/" - if (!news){ + if (!news && !check_url ){ let list = forloop_func_form(data_d,"get",get_url) data_d = list[0] get_url = list[1] url_ajax = "routes/find_routes/" + + } else if (check_url) { + let list = forloop_func_form(data_d,"get",get_url) + data_d = list[0] + get_url = list[1] + url_ajax = "routes/get_routes/" } + let loader = document.querySelector(".loader_f_loading_routes") loader.classList.toggle("show") el.classList.toggle("hide") @@ -185,6 +193,8 @@ function load_routes (el,news=null,incrase,owner_type) { } insert_place.innerHTML = data.html document.querySelector(".loader_f_loading_routes.show").classList.remove("show") + + if (data.last_block === true){ el.classList.add("hide") } else if (data.last_block === false){ From a99ffcc9d2deaa8814c8e5b5e0c91e6fea20f172 Mon Sep 17 00:00:00 2001 From: SDE Date: Tue, 13 Aug 2024 12:58:41 +0300 Subject: [PATCH 2/4] 1.6.11 fix next package for my_routes --- GeneralApp/views.py | 4 ++-- RoutesApp/funcs.py | 41 +++++++++++++++++++++++++++-------------- RoutesApp/js_views.py | 6 +++++- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/GeneralApp/views.py b/GeneralApp/views.py index 831e2e6..7c0ea14 100644 --- a/GeneralApp/views.py +++ b/GeneralApp/views.py @@ -22,8 +22,8 @@ def test_code(request): res = None - from ReferenceDataApp.funcs import parse_data - parse_data() + # from ReferenceDataApp.funcs import parse_data + # parse_data() # from SubscribesApp.reports import send_mail_for_user_subscribes_that_is_going_to_finish # send_mail_for_user_subscribes_that_is_going_to_finish() diff --git a/RoutesApp/funcs.py b/RoutesApp/funcs.py index 50e7070..4138d0b 100644 --- a/RoutesApp/funcs.py +++ b/RoutesApp/funcs.py @@ -118,15 +118,25 @@ def get_city_by_type_transport_and_address_point(type_transport, address_point): from ReferenceDataApp.models import Airport, City try: - if type_transport == 'avia': - return Airport.objects.get(id=address_point).city - else: - return City.objects.get(id=address_point) + # if type_transport == 'avia': + # return Airport.objects.get(id=address_point).city + # else: + return City.objects.get(id=address_point) except Exception as e: msg = f'get_city_by_type_transport_and_address_point Error = {str(e)}, type_transport = {type_transport}, address_point = {address_point}' print(msg) return None +def get_city_by_address_point(address_point): + from ReferenceDataApp.models import Airport, City + + try: + return City.objects.get(id=address_point) + except Exception as e: + msg = f'get_city_by_address_point Error = {str(e)}, address_point = {address_point}' + print(msg) + return None + def get_profile_my_routes_page_content_html(request): routes_Dict = get_routes_Dict(request.user) @@ -210,15 +220,18 @@ def get_routes_Dict(user=None, data=None): kwargs.update({key: val}) if key == 'from_address_point': - city = get_city_by_type_transport_and_address_point(type_transport, val) + # city = get_city_by_type_transport_and_address_point(type_transport, val) + city = get_city_by_address_point(val) kwargs.update({f'from_city': city}) + res_Dict.update({ 'from_address_point_txt': city.get_country_n_city_str() }) if key == 'to_address_point': - city = get_city_by_type_transport_and_address_point(type_transport, val) + # city = get_city_by_type_transport_and_address_point(type_transport, val) + city = get_city_by_address_point(val) kwargs.update({f'to_city': city}) res_Dict.update({ 'to_address_point_txt': city.get_country_n_city_str() @@ -236,14 +249,14 @@ def get_routes_Dict(user=None, data=None): # ).order_by( # '-rising_DT', '-departure_DT', '-arrival_DT', '-modifiedDT' # ) - routes = Route.objects.exclude( - rising_DT=None - ).filter( - departure_DT__lt=datetime.now() - ) - routes.update( - rising_DT=None - ) + # routes = Route.objects.exclude( + # rising_DT=None + # ).filter( + # departure_DT__lt=datetime.now() + # ) + # routes.update( + # rising_DT=None + # ) routes = Route.objects.filter( **kwargs diff --git a/RoutesApp/js_views.py b/RoutesApp/js_views.py index 60125e4..9125c1e 100644 --- a/RoutesApp/js_views.py +++ b/RoutesApp/js_views.py @@ -293,8 +293,12 @@ def get_my_routes_ajax(request): lang = get_and_set_lang(request) + data = request.POST.dict() + if not data and request.body: + data = json.loads(request.body) + try: - routes_Dict = get_routes_Dict(request.user) + routes_Dict = get_routes_Dict(request.user, data) if 'errors' in routes_Dict: return JsonResponse(routes_Dict, status=400) From 42c2843cab8f2f2e66ac537fdc141c27fd3de6f9 Mon Sep 17 00:00:00 2001 From: SDE Date: Tue, 13 Aug 2024 14:41:11 +0300 Subject: [PATCH 3/4] 1.6.12 fix next package for my_routes --- RoutesApp/admin.py | 1 + RoutesApp/funcs.py | 8 ++++---- RoutesApp/js_views.py | 12 +++++++++--- .../migrations/0008_route_highlight_end_dt.py | 18 ++++++++++++++++++ RoutesApp/models.py | 4 ++++ SubscribesApp/admin.py | 5 ++++- ...07_subscribeoption_route_highlight_hours.py | 18 ++++++++++++++++++ SubscribesApp/models.py | 16 ++++++++++++++-- 8 files changed, 72 insertions(+), 10 deletions(-) create mode 100644 RoutesApp/migrations/0008_route_highlight_end_dt.py create mode 100644 SubscribesApp/migrations/0007_subscribeoption_route_highlight_hours.py diff --git a/RoutesApp/admin.py b/RoutesApp/admin.py index ba2b3dc..9b82b64 100644 --- a/RoutesApp/admin.py +++ b/RoutesApp/admin.py @@ -3,6 +3,7 @@ from .models import * from django.contrib import admin class Admin_Route(Admin_Trans_BaseModel): + readonly_fields = ['highlight_end_DT', 'rising_DT'] list_display = [ 'id', 'owner_type', 'receive_msg_by_email', 'type_transport', 'cargo_type', 'departure_DT', 'from_city', 'from_place', diff --git a/RoutesApp/funcs.py b/RoutesApp/funcs.py index 4138d0b..4d450b9 100644 --- a/RoutesApp/funcs.py +++ b/RoutesApp/funcs.py @@ -118,10 +118,10 @@ def get_city_by_type_transport_and_address_point(type_transport, address_point): from ReferenceDataApp.models import Airport, City try: - # if type_transport == 'avia': - # return Airport.objects.get(id=address_point).city - # else: - return City.objects.get(id=address_point) + if type_transport == 'avia': + return Airport.objects.get(id=address_point).city + else: + return City.objects.get(id=address_point) except Exception as e: msg = f'get_city_by_type_transport_and_address_point Error = {str(e)}, type_transport = {type_transport}, address_point = {address_point}' print(msg) diff --git a/RoutesApp/js_views.py b/RoutesApp/js_views.py index 9125c1e..dc81849 100644 --- a/RoutesApp/js_views.py +++ b/RoutesApp/js_views.py @@ -10,7 +10,7 @@ from django.template import loader, RequestContext from django.contrib.auth.decorators import login_required from BaseModels.mailSender import techSendMail from django.utils.translation import gettext as _ -from datetime import datetime +from datetime import datetime, timedelta from django.template.loader import render_to_string from django.urls import reverse from .forms import * @@ -41,14 +41,20 @@ def highlight_route_ajax(request): msg = _('Нет доступа к выделению') return JsonResponse({'errors': msg}) - route.highlight_color = '#FF0000' - route.save(update_fields=['highlight_color']) from SubscribesApp.funcs import get_cur_user_subscribe user_subscribe = get_cur_user_subscribe(request.user) user_subscribe.used_route_highlight_count += 1 user_subscribe.save(update_fields=['used_route_highlight_count']) + + route.highlight_color = '#FF0000' + highlight_hours = user_subscribe.get_highlight_hours() + route.highlight_end_DT = datetime.now() + timedelta(hours=highlight_hours) + route.save(update_fields=['highlight_color', 'highlight_end_DT']) + + + Dict = { 'route': route, } diff --git a/RoutesApp/migrations/0008_route_highlight_end_dt.py b/RoutesApp/migrations/0008_route_highlight_end_dt.py new file mode 100644 index 0000000..2a28d62 --- /dev/null +++ b/RoutesApp/migrations/0008_route_highlight_end_dt.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.2 on 2024-08-13 13:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('RoutesApp', '0007_rename_select_color_route_highlight_color'), + ] + + operations = [ + migrations.AddField( + model_name='route', + name='highlight_end_DT', + field=models.DateTimeField(blank=True, null=True, verbose_name='Дата и время окончания выделения'), + ), + ] diff --git a/RoutesApp/models.py b/RoutesApp/models.py index 9b4d3ac..f9d2051 100644 --- a/RoutesApp/models.py +++ b/RoutesApp/models.py @@ -71,6 +71,10 @@ class Route(BaseModel): verbose_name=_('Цвет выделения'), blank=True, null=True ) + highlight_end_DT = models.DateTimeField( + verbose_name=_('Дата и время окончания выделения'), + blank=True, null=True + ) def __str__(self): if self.name: diff --git a/SubscribesApp/admin.py b/SubscribesApp/admin.py index 5414d28..f078343 100644 --- a/SubscribesApp/admin.py +++ b/SubscribesApp/admin.py @@ -45,7 +45,8 @@ class Admin_SubscribeOption(Admin_Trans_BaseModel): (None, { 'classes': ['wide'], 'fields': ( - 'allow_route_rising_count', 'allow_route_highlight_count' + ('allow_route_rising_count',), + ('allow_route_highlight_count', 'route_highlight_hours'), ) }), ) @@ -53,6 +54,8 @@ class Admin_SubscribeOption(Admin_Trans_BaseModel): list_display = [ 'id', 'enable', 'name', + 'allow_route_rising_count', + 'allow_route_highlight_count', 'route_highlight_hours', 'order', 'modifiedDT', 'createDT' ] list_editable = ['enable'] diff --git a/SubscribesApp/migrations/0007_subscribeoption_route_highlight_hours.py b/SubscribesApp/migrations/0007_subscribeoption_route_highlight_hours.py new file mode 100644 index 0000000..c934d86 --- /dev/null +++ b/SubscribesApp/migrations/0007_subscribeoption_route_highlight_hours.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.2 on 2024-08-13 13:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('SubscribesApp', '0006_rename_allow_route_select_count_subscribeoption_allow_route_highlight_count'), + ] + + operations = [ + migrations.AddField( + model_name='subscribeoption', + name='route_highlight_hours', + field=models.IntegerField(default=24, verbose_name='Количество часов выделения цветом объявлений'), + ), + ] diff --git a/SubscribesApp/models.py b/SubscribesApp/models.py index 36c945e..476310b 100644 --- a/SubscribesApp/models.py +++ b/SubscribesApp/models.py @@ -17,8 +17,12 @@ from datetime import datetime, timedelta class SubscribeOption(BaseModel): - allow_route_rising_count = models.IntegerField(verbose_name=_('Количество поднятий объявлений') ,default=0) - allow_route_highlight_count = models.IntegerField(verbose_name=_('Количество выделений объявлений'), default=0) + allow_route_rising_count = models.IntegerField( + verbose_name=_('Количество поднятий объявлений') ,default=0) + allow_route_highlight_count = models.IntegerField( + verbose_name=_('Количество выделений объявлений'), default=0) + route_highlight_hours = models.IntegerField( + verbose_name=_('Количество часов выделения цветом объявлений'), default=24) class Meta: verbose_name = _('Опция подписки') @@ -88,6 +92,14 @@ class SubscribeForUser(BaseModel): res += f' {str(self.id)}' return res + def get_highlight_hours(self): + options = self.subscribe.options.filter( + allow_route_highlight_count__gt=0, + ) + if options: + return options[0].route_highlight_hours + return 0 + def remains_route_adding_options(self): total_data = SubscribeOption.objects.filter( From 526f035659e70a254fb323d7b108834766199f3f Mon Sep 17 00:00:00 2001 From: SDE Date: Tue, 13 Aug 2024 15:03:20 +0300 Subject: [PATCH 4/4] 1.6.13 fix next package for my_routes --- RoutesApp/funcs.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/RoutesApp/funcs.py b/RoutesApp/funcs.py index 4d450b9..3f1bc3f 100644 --- a/RoutesApp/funcs.py +++ b/RoutesApp/funcs.py @@ -109,9 +109,9 @@ def get_profile_new_route_page_html(request, data): return html -def get_country_n_city_str_by_type_transport_and_address_point(type_transport, address_point): - city = get_city_by_type_transport_and_address_point(type_transport, address_point) - return city.get_country_n_city_str() +# def get_country_n_city_str_by_type_transport_and_address_point(type_transport, address_point): +# city = get_city_by_type_transport_and_address_point(type_transport, address_point) +# return city.get_country_n_city_str() def get_city_by_type_transport_and_address_point(type_transport, address_point): @@ -219,7 +219,7 @@ def get_routes_Dict(user=None, data=None): ): kwargs.update({key: val}) - if key == 'from_address_point': + if key == 'from_address_point': # в from_address_point всегда город # city = get_city_by_type_transport_and_address_point(type_transport, val) city = get_city_by_address_point(val) kwargs.update({f'from_city': city}) @@ -229,7 +229,7 @@ def get_routes_Dict(user=None, data=None): 'from_address_point_txt': city.get_country_n_city_str() }) - if key == 'to_address_point': + if key == 'to_address_point': # в to_address_point всегда город # city = get_city_by_type_transport_and_address_point(type_transport, val) city = get_city_by_address_point(val) kwargs.update({f'to_city': city})