From e4d48139090c47c92eda3c46367df8ea6eb28175 Mon Sep 17 00:00:00 2001 From: SDE Date: Tue, 1 Aug 2023 16:23:45 +0300 Subject: [PATCH] 0.1.9 edit route fix --- RoutesApp/js_views.py | 8 +++++++- RoutesApp/models.py | 42 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/RoutesApp/js_views.py b/RoutesApp/js_views.py index 417363c..d0583f3 100644 --- a/RoutesApp/js_views.py +++ b/RoutesApp/js_views.py @@ -33,7 +33,13 @@ def edit_route_ajax(request): route = Route.objects.get(id=data['route_id']) - form = CreateRouteForm(instance=route) + form = RouteForm(instance=route) + route_address_points_Dict = route.get_address_points() + form.initial.update({ + 'from_address_point_txt': route_address_points_Dict['from_address_point_txt'], + 'to_address_point_txt': route_address_points_Dict['to_address_point_txt'], + }) + Dict = { 'form': form diff --git a/RoutesApp/models.py b/RoutesApp/models.py index 3985ce3..35f1973 100644 --- a/RoutesApp/models.py +++ b/RoutesApp/models.py @@ -65,4 +65,44 @@ class Route(BaseModel): class Meta: verbose_name = _(u'Маршрут') verbose_name_plural = _(u'Маршруты') - ordering = ('name',) \ No newline at end of file + ordering = ('name',) + + def get_address_points(self): + from ReferenceDataApp.models import Airport, City + + try: + if self.type_transport == 'avia': + from_address_point_objs = Airport.objects.filter(id=self.from_address_point) + from_address_point_Dict = from_address_point_objs.values( + 'id', 'name', 'iata_code', 'city__name', 'city__country__name')[0] + to_address_point_objs = Airport.objects.filter(id=self.to_address_point) + to_address_point_Dict = to_address_point_objs.values( + 'id', 'name', 'iata_code', 'city__name', 'city__country__name')[0] + + from_address_point_txt = f'{from_address_point_Dict["iata_code"]} - {from_address_point_Dict["name"]}' + to_address_point_txt = f'{to_address_point_Dict["iata_code"]} - {to_address_point_Dict["name"]}' + else: + from_address_point_objs = City.objects.filter(id=self.from_address_point) + from_address_point_Dict = from_address_point_objs.values( + 'id', 'name', 'country__name')[0] + to_address_point_objs = City.objects.filter(id=self.to_address_point) + to_address_point_Dict = to_address_point_objs.values( + 'id', 'name', 'country__name')[0] + + from_address_point_txt = f'{from_address_point_Dict["country__name"]} / {from_address_point_Dict["name"]}' + to_address_point_txt = f'{to_address_point_Dict["country__name"]} / {to_address_point_Dict["name"]}' + + return { + 'from_address_point_obj': from_address_point_objs[0], + 'from_address_point_Dict': from_address_point_Dict, + 'from_address_point_txt': from_address_point_txt, + + 'to_address_point_obj': to_address_point_objs[0], + 'to_address_point_Dict': to_address_point_Dict, + 'to_address_point_txt': to_address_point_txt, + } + + + except Exception as e: + print(f'get_address_points Error = {str(e)}') + return None \ No newline at end of file