import json from django.http import HttpResponse, Http404, FileResponse from django.template import loader, RequestContext from django.contrib.auth.decorators import login_required from .models import * from django.conf import settings from .funcs import get_inter_http_response from django.http.response import JsonResponse, HttpResponse from django.views.decorators.http import require_GET, require_POST from django.shortcuts import get_object_or_404 from django.contrib.auth.models import User from django.views.decorators.csrf import csrf_exempt from webpush import send_user_notification import json from datetime import datetime, timedelta def generate_routes(request, routes_count): if (not request.user or not request.user.is_active or not request.user.is_authenticated or not request.user.is_staff ): raise Http404 from RoutesApp.funcs import get_city_by_type_transport_and_address_point from RoutesApp.models import Route from ReferenceDataApp.models import Airport, City res = None from_air = Airport.objects.get(iata_code='MSQ') to_air = Airport.objects.get(iata_code='SVO') routes = [ Route( type_transport='road', departure_DT=datetime.now() + timedelta(days=7), arrival_DT=datetime.now() + timedelta(days=8), from_address_point=to_air.city.id, to_address_point=from_air.city.id, from_city=to_air.city, to_city=from_air.city, weight=item, phone='0987654321', owner=request.user ) for item in range(routes_count) ] Route.objects.bulk_create(routes) if res: if type(res) == str: return HttpResponse(res) else: return res return HttpResponse('finished') def test_code(request): if (not request.user or not request.user.is_active or not request.user.is_authenticated or not request.user.is_staff ): raise Http404 res = '' from RoutesApp.search_matches import search_matches from RoutesApp.models import Route search_matches(Route.objects.filter(from_city__id=57062)) # from RoutesApp.funcs import get_city_by_type_transport_and_address_point # from RoutesApp.models import Route # from ReferenceDataApp.models import Airport, City # # res = None # # from_air = Airport.objects.get(iata_code='MSQ') # to_air = Airport.objects.get(iata_code='SVO') # # routes = [ # Route( # type_transport='road', # departure_DT=datetime.now() + timedelta(days=7), # arrival_DT=datetime.now() + timedelta(days=8), # from_address_point=to_air.city.id, # to_address_point=from_air.city.id, # from_city=to_air.city, # to_city=from_air.city, # weight=item, # phone='0987654321', # owner=request.user # ) for item in range(100) # ] # routes = [ # Route( # type_transport='avia', # departure_DT=datetime(year=2024, month=9, day=1), # arrival_DT=datetime(year=2024, month=9, day=3), # from_address_point = from_air.id, # to_address_point = to_air.id, # from_city = from_air.city, # to_city = to_air.city, # weight = item, # phone = '1234567890', # owner = request.user # ) for item in range(1000) # ] # # Route.objects.bulk_create(routes) # from RoutesApp.search_matches import search_matches # routes = Route.objects.filter()[:10] # msg = search_matches(routes) # 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() if res: if type(res) == str: return HttpResponse(res) else: return res return HttpResponse('finished') def Page404(request, exeption=None): Dict = {} t = loader.get_template('404.html') try: res = get_inter_http_response(t, Dict, request) return HttpResponse(res, status=404) except Exception as e: return HttpResponse(str(e)) def LandingMoverPage(request): from .init_options import init_options init_options() print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}') page, is_created = StaticPage.objects.get_or_create(url='landing_mover') Dict = { 'page': page, } breadcrumbs_Dict = { } Dict.update({'breadcrumbs': breadcrumbs_Dict}) t = loader.get_template('pages/p_mover_landing_page.html') return get_inter_http_response(t, Dict, request) def MainPage(request): from RoutesApp.forms import RouteForm from .init_options import init_options init_options() print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}') page = StaticPage.objects.get(url='main') from ArticlesApp.models import ArticleModel arts = ArticleModel.objects.filter(enable=True).order_by('-createDT')[:3] Dict = { 'page': page, 'FAQ': page.FAQ_items.filter(enable=True), 'route_form': RouteForm(), 'articles': arts, 'owner_type': 'mover' } breadcrumbs_Dict = { } Dict.update({'breadcrumbs': breadcrumbs_Dict}) t = loader.get_template('pages/p_main.html') return get_inter_http_response(t, Dict, request) # return HttpResponse(t.render(Dict, request)) def StaticPageView(request, url): from RoutesApp.forms import RouteForm from SubscribesApp.funcs import get_subscribes_w_options Dict = {} if url == '': return MainPage(request) elif url == 'for_movers': Dict.update({ 'route_form': RouteForm(), 'owner_type': 'customer', }) elif url == 'for_customers': Dict.update({ 'route_form': RouteForm(), 'owner_type': 'mover' }) # elif url == 'works': # return WorksPage(request) elif url in ['main']: raise Http404 if url in ['for_movers', 'for_customers']: subscribes, all_options = get_subscribes_w_options() Dict.update({ 'subscribes': subscribes, }) try: page = StaticPage.objects.get(url=url) except StaticPage.DoesNotExist: raise Http404 Dict.update({ 'page': page, }) # from PushMessages.views import send_push # send_push(user=request.user, title='title', text='text') t = loader.get_template('pages/p_static_page.html') return get_inter_http_response(t, Dict, request) # return HttpResponse(t.render(Dict, request))