Merge branch 'fix_import_distances' into 'dev'

fix distances

See merge request spatial/postamates!130
dev
Timofey Malinin 2 years ago
commit 739d207343

@ -19,7 +19,7 @@ spec:
containers: containers:
- name: django - name: django
image: DEPLOY_IMAGE_TAG image: DEPLOY_IMAGE_TAG
command: ["sh", "-c", "python manage.py migrate && python manage.py runserver 0.0.0.0:${DJANGO_PORT}"] command: ["sh", "-c", "python manage.py migrate && python manage.py runserver 0.0.0.0:${DJANGO_PORT} --nothreading"]
ports: ports:
- containerPort: 8000 - containerPort: 8000
name: django-port name: django-port

@ -115,6 +115,7 @@ class PlacementPointViewSet(ReadOnlyModelViewSet):
return fieldset return fieldset
def get_queryset(self): def get_queryset(self):
basename = self.request.parser_context['view'].basename
qs = self.queryset.all().order_by('id') qs = self.queryset.all().order_by('id')
location_ids = self.request.GET.get('location_ids[]') location_ids = self.request.GET.get('location_ids[]')
prediction_first = self.request.GET.get('prediction_first[]') prediction_first = self.request.GET.get('prediction_first[]')
@ -186,18 +187,30 @@ class PlacementPointViewSet(ReadOnlyModelViewSet):
if group_dists_lt: if group_dists_lt:
g_d = [list(g.split(',')) for g in group_dists_lt] g_d = [list(g.split(',')) for g in group_dists_lt]
for group in g_d: for group in g_d:
filtered_points = list( if basename=='preplacementpoint':
models.PlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), filtered_points = list(
dist__lt=int(group[1])).values_list( models.PrePlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]),
'placement_point__id', flat=True)) dist__lt=int(group[1])).values_list(
'placement_point__id', flat=True))
else:
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) qs = qs.filter(id__in=filtered_points)
if group_dists_gt: if group_dists_gt:
g_d = [list(g.split(',')) for g in group_dists_gt] g_d = [list(g.split(',')) for g in group_dists_gt]
for group in g_d: for group in g_d:
filtered_points = list( if basename=='preplacementpoint':
models.PlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), filtered_points = list(
dist__gt=int(group[1])).values_list( models.PrePlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]),
'placement_point__id', flat=True)) dist__gt=int(group[1])).values_list(
'placement_point__id', flat=True))
else:
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) qs = qs.filter(id__in=filtered_points)
return qs return qs

Loading…
Cancel
Save