From edef47575180668b0a844412862d2aaac6419e85 Mon Sep 17 00:00:00 2001 From: AlexP077 Date: Sat, 12 Aug 2023 23:22:42 +0300 Subject: [PATCH] dist_filter_fix --- service/views.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/service/views.py b/service/views.py index bb1a4b2..a00b2d8 100644 --- a/service/views.py +++ b/service/views.py @@ -131,7 +131,8 @@ class PlacementPointViewSet(ReadOnlyModelViewSet): delta_current = self.request.GET.get('delta_current[]') rayons = self.request.GET.get('area[]') aos = self.request.GET.get('district[]') - group_dists = self.request.GET.getlist('dist_to_group') + group_dists_lt = self.request.GET.getlist('dist_to_group__lt') + group_dists_gt = self.request.GET.getlist('dist_to_group__gt') if location_ids: location_ids = list(location_ids.split(',')) qs = qs.filter(pk__in=location_ids) @@ -181,14 +182,22 @@ class PlacementPointViewSet(ReadOnlyModelViewSet): inclded = list(included.split(',')) qs2 = models.PlacementPoint.objects.filter(pk__in=inclded).all() qs = (qs | qs2).distinct() - if group_dists: - g_d = [list(g.split(',')) for g in group_dists] + if group_dists_lt: + g_d = [list(g.split(',')) for g in group_dists_lt] for group in g_d: filtered_points = list( models.PlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), dist__lt=int(group[1])).values_list( 'placement_point__id', flat=True)) qs = qs.filter(id__in=filtered_points) + if group_dists_gt: + g_d = [list(g.split(',')) for g in group_dists_gt] + for group in g_d: + filtered_points = list( + models.PlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), + dist__gt=int(group[1])).values_list( + 'placement_point__id', flat=True)) + qs = qs.filter(id__in=filtered_points) return qs @action(methods=['get'], detail=False)