Files
account_store/RoutesApp/js_views.py
SDE d90d2ef671 0.0.48
fix routes
2023-07-27 14:59:54 +03:00

121 lines
3.5 KiB
Python

from django.shortcuts import render
from uuid import uuid1
from .models import *
from django.contrib import auth
from django.http import HttpResponse, Http404, JsonResponse
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 django.template.loader import render_to_string
from django.urls import reverse
from .forms import *
def new_route_view_ajax(request):
if request.method != 'POST':
raise Http404
Dict = {
'form': CreateRouteForm()
}
html = render_to_string('blocks/profile/b_new_route.html', Dict, request=request)
return JsonResponse({'html': html}, status=200)
def get_routes_ajax(request):
from ReferenceDataApp.models import Airport, Country, City
if request.method != 'POST':
raise Http404
try:
routes = []
if request.user and request.user.is_authenticated:
routes = Route.objects.filter(owner=request.user)
for route in routes:
try:
if route.type_transport == 'avia':
route.from_airport = Airport.objects.get(id=route.from_address_point)
route.to_airport = Airport.objects.get(id=route.to_address_point)
route.from_city = route.from_airport.city
route.to_city = route.to_airport.city
else:
route.from_city = City.objects.get(id=route.from_address_point)
route.to_city = City.objects.get(id=route.to_address_point)
route.from_country = route.from_city.country
route.to_country = route.to_city.country
except Exception as e:
msg = f'get route points = {str(e)}'
print(msg)
Dict = {
'routes': routes
}
html = render_to_string('blocks/profile/b_my_routes.html', Dict, request=request)
res_Dict = {
'html': html
}
return JsonResponse(res_Dict)
except Exception as e:
errors_Dict = {
'errors': {
'all__': f'ошибка в запросе = {str(e)}'
}
}
return JsonResponse(errors_Dict, status=400)
def create_route_ajax(request):
if request.method != 'POST':
raise Http404
try:
data = request.POST
form = CreateRouteForm(data)
if not form.is_valid():
Dict = {'form': form}
html = render_to_string('blocks/profile/b_new_route.html', Dict, request=request)
return JsonResponse({'html': html}, status=400)
obj = form.save(commit=False)
obj.owner = request.user
obj.save()
routes = Route.objects.filter(owner=request.user)
Dict = {
'routes': routes
}
html = render_to_string('blocks/profile/b_my_routes.html', Dict, request=request)
res_Dict = {
'html': html
}
return JsonResponse(res_Dict)
except Exception as e:
errors_Dict = {
'errors': {
'all__': f'ошибка в запросе = {str(e)}'
}
}
Dict = {'form': errors_Dict}
html = render_to_string('blocks/profile/b_new_route.html', Dict, request=request)
return JsonResponse({'html': html}, status=400)