From ed1383622f49a19c90d5e6cc1096a4bd0b753663 Mon Sep 17 00:00:00 2001 From: SBD Date: Wed, 8 Jan 2025 18:56:36 +0300 Subject: [PATCH] 1 --- GeneralApp/views.py | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/GeneralApp/views.py b/GeneralApp/views.py index ddad45d..a508a8f 100644 --- a/GeneralApp/views.py +++ b/GeneralApp/views.py @@ -4,6 +4,7 @@ from django.http import HttpResponse, Http404, FileResponse from django.template import loader, RequestContext from django.contrib.auth.decorators import login_required +from ReferenceDataApp.models import Country, City, Airport from .models import * from django.conf import settings from .funcs import get_inter_http_response @@ -14,7 +15,8 @@ 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 +from datetime import datetime, timedelta, date + def generate_routes(request, routes_count): if (not request.user @@ -59,6 +61,39 @@ def generate_routes(request, routes_count): return HttpResponse('finished') +def export_cities(): + + def fix_fields_for_json(items_list): + rec_list = [] + for rec in list(recs): + rec_Dict = {} + for key, val in rec.items(): + if type(val) in [datetime, date]: + val = str(val) + rec_Dict[key] = val + rec_list.append(rec_Dict) + return rec_list + + fields = [item.name for item in Country.objects.model._meta.fields if item.name not in ['name_plural']] + recs = Country.objects.all().values(*fields) + rec_list = fix_fields_for_json(recs) + with open('countries.json', 'w', encoding='utf-8') as f: + f.write(json.dumps(rec_list, ensure_ascii=False, indent=4)) + + fields = [item.name for item in City.objects.model._meta.fields if item.name not in ['name_plural']] + recs = City.objects.all().values(*fields) + rec_list = fix_fields_for_json(recs) + with open('cities.json', 'w', encoding='utf-8') as f: + f.write(json.dumps(rec_list, ensure_ascii=False, indent=4)) + + fields = [item.name for item in Airport.objects.model._meta.fields if item.name not in ['name_plural']] + recs = Airport.objects.all().values() + rec_list = fix_fields_for_json(recs) + with open('airports.json', 'w', encoding='utf-8') as f: + f.write(json.dumps(rec_list, ensure_ascii=False, indent=4)) + + return True + def test_code(request): @@ -71,9 +106,11 @@ def test_code(request): res = '' - from RoutesApp.search_matches import search_matches - from RoutesApp.models import Route - search_matches(Route.objects.filter(id=16)) + export_cities() + + # from RoutesApp.search_matches import search_matches + # from RoutesApp.models import Route + # search_matches(Route.objects.filter(id=16)) # from RoutesApp.funcs import get_city_by_type_transport_and_address_point # from RoutesApp.models import Route