From a72635e27b381891d4a7a9a8f30477a7eff101d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 8 Jul 2017 17:30:10 +0200 Subject: [PATCH] better other_spaces ordering in space geometry view --- src/c3nav/editor/api.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/c3nav/editor/api.py b/src/c3nav/editor/api.py index 18d123a0..a9574b86 100644 --- a/src/c3nav/editor/api.py +++ b/src/c3nav/editor/api.py @@ -107,6 +107,13 @@ class EditorViewSet(ViewSet): other_spaces = Space.objects.filter(level__pk__in=levels).prefetch_related('groups') other_spaces = [s for s in other_spaces if s.geometry.intersects(doors_space_geom) and s.pk != space.pk] + if level.on_top_of_id is None: + other_spaces_lower = [s for s in other_spaces if s.level_id in levels_under] + other_spaces_upper = [s for s in other_spaces if s.level_id in levels_on_top] + else: + other_spaces_lower = [s for s in other_spaces if s.level_id == level.on_top_of_id] + other_spaces_upper = [] + other_spaces = [s for s in other_spaces if s.level_id == level.pk] space.bounds = True @@ -122,7 +129,9 @@ class EditorViewSet(ViewSet): results = chain( buildings, + other_spaces_lower, doors, + other_spaces, [space], space.areas.all().prefetch_related('groups'), space.holes.all(), @@ -131,7 +140,7 @@ class EditorViewSet(ViewSet): space.lineobstacles.all(), space.columns.all(), space.pois.all().prefetch_related('groups'), - other_spaces, + other_spaces_upper, ) return Response(sum([self._get_geojsons(obj) for obj in results], ())) else: