From 08fe62eb54d57653bfc13f985b8ac77f284a3958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sun, 4 Dec 2016 20:01:37 +0100 Subject: [PATCH] reorder geometry map items --- src/c3nav/mapdata/models/geometry.py | 72 ++++++++++++++-------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/c3nav/mapdata/models/geometry.py b/src/c3nav/mapdata/models/geometry.py index 6eefc285..72ce8098 100644 --- a/src/c3nav/mapdata/models/geometry.py +++ b/src/c3nav/mapdata/models/geometry.py @@ -141,6 +141,42 @@ class Outside(GeometryMapItemWithLevel): default_related_name = 'outsides' +class Obstacle(GeometryMapItemWithLevel): + """ + An obstacle + """ + crop_to_level = models.ForeignKey('mapdata.Level', on_delete=models.CASCADE, null=True, blank=True, + verbose_name=_('crop to other level'), related_name='crops_obstacles') + + geomtype = 'polygon' + + class Meta: + verbose_name = _('Obstacle') + verbose_name_plural = _('Obstacles') + default_related_name = 'obstacles' + + @classmethod + def fromfile(cls, data, file_path): + kwargs = super().fromfile(data, file_path) + + if 'crop_to_level' in data: + kwargs['crop_to_level'] = data['crop_to_level'] + + return kwargs + + def get_geojson_properties(self): + result = super().get_geojson_properties() + if self.crop_to_level is not None: + result['crop_to_level'] = self.crop_to_level.name + return result + + def tofile(self): + result = super().tofile() + if self.crop_to_level is not None: + result['crop_to_level'] = self.crop_to_level.name + return result + + class LevelConnector(GeometryMapItem): """ A connector connecting levels @@ -180,42 +216,6 @@ class LevelConnector(GeometryMapItem): return result -class Obstacle(GeometryMapItemWithLevel): - """ - An obstacle - """ - crop_to_level = models.ForeignKey('mapdata.Level', on_delete=models.CASCADE, null=True, blank=True, - verbose_name=_('crop to other level'), related_name='crops_obstacles') - - geomtype = 'polygon' - - class Meta: - verbose_name = _('Obstacle') - verbose_name_plural = _('Obstacles') - default_related_name = 'obstacles' - - @classmethod - def fromfile(cls, data, file_path): - kwargs = super().fromfile(data, file_path) - - if 'crop_to_level' in data: - kwargs['crop_to_level'] = data['crop_to_level'] - - return kwargs - - def get_geojson_properties(self): - result = super().get_geojson_properties() - if self.crop_to_level is not None: - result['crop_to_level'] = self.crop_to_level.name - return result - - def tofile(self): - result = super().tofile() - if self.crop_to_level is not None: - result['crop_to_level'] = self.crop_to_level.name - return result - - class Door(GeometryMapItemWithLevel): """ A connection between two rooms