From 8cdd3138f605c34292b5ac981b5ead2e35f15f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sun, 22 Dec 2019 21:21:53 +0100 Subject: [PATCH] sort obstacles properly --- src/c3nav/mapdata/models/geometry/space.py | 2 ++ src/c3nav/mapdata/render/geometry/level.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/c3nav/mapdata/models/geometry/space.py b/src/c3nav/mapdata/models/geometry/space.py index 6ffc2bd1..8eb5cd0b 100644 --- a/src/c3nav/mapdata/models/geometry/space.py +++ b/src/c3nav/mapdata/models/geometry/space.py @@ -178,6 +178,7 @@ class Obstacle(SpaceGeometryMixin, models.Model): verbose_name = _('Obstacle') verbose_name_plural = _('Obstacles') default_related_name = 'obstacles' + ordering = ('altitude', 'height') def get_geojson_properties(self, *args, instance=None, **kwargs) -> dict: result = super().get_geojson_properties(*args, **kwargs) @@ -209,6 +210,7 @@ class LineObstacle(SpaceGeometryMixin, models.Model): verbose_name = _('Line Obstacle') verbose_name_plural = _('Line Obstacles') default_related_name = 'lineobstacles' + ordering = ('altitude', 'height') def get_geojson_properties(self, *args, instance=None, **kwargs) -> dict: result = super().get_geojson_properties(*args, **kwargs) diff --git a/src/c3nav/mapdata/render/geometry/level.py b/src/c3nav/mapdata/render/geometry/level.py index 6a705e10..a5b7c25d 100644 --- a/src/c3nav/mapdata/render/geometry/level.py +++ b/src/c3nav/mapdata/render/geometry/level.py @@ -148,7 +148,7 @@ class LevelGeometries: restricted_spaces_outdoors.setdefault(access_restriction, []).append(buffered_column) access_restriction_affected.setdefault(access_restriction, []).append(column.geometry) - for obstacle in space.obstacles.all(): + for obstacle in sorted(space.obstacles.all(), key=lambda o: o.height+o.altitude): if not obstacle.height: continue obstacles.setdefault(