From 74e9acd8b6291061911de7b5edec189c1a2a5e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 5 May 2017 13:26:25 +0200 Subject: [PATCH] move elevators to area model --- .../mapdata/migrations/0048_elevator_area.py | 31 +++++++++++++++++ .../migrations/0049_auto_20170505_1125.py | 29 ++++++++++++++++ src/c3nav/mapdata/models/__init__.py | 1 - src/c3nav/mapdata/models/collections.py | 16 --------- src/c3nav/mapdata/models/geometry.py | 33 ------------------- src/c3nav/routing/graph.py | 2 +- 6 files changed, 61 insertions(+), 51 deletions(-) create mode 100644 src/c3nav/mapdata/migrations/0048_elevator_area.py create mode 100644 src/c3nav/mapdata/migrations/0049_auto_20170505_1125.py delete mode 100644 src/c3nav/mapdata/models/collections.py diff --git a/src/c3nav/mapdata/migrations/0048_elevator_area.py b/src/c3nav/mapdata/migrations/0048_elevator_area.py new file mode 100644 index 00000000..d2cfb8de --- /dev/null +++ b/src/c3nav/mapdata/migrations/0048_elevator_area.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-05-05 11:14 +from __future__ import unicode_literals + +from django.db import migrations + + +def elevatorlevel_to_area(apps, schema_editor): + Area = apps.get_model('mapdata', 'Area') + + ElevatorLevel = apps.get_model('mapdata', 'ElevatorLevel') + for obj in ElevatorLevel.objects.all(): + Area.objects.create( + name=obj.name, + geometry=obj.geometry, + level=obj.level, + public=obj.public, + category='elevator', + layer='', + ) + + +class Migration(migrations.Migration): + + dependencies = [ + ('mapdata', '0047_auto_20170505_1002'), + ] + + operations = [ + migrations.RunPython(elevatorlevel_to_area), + ] diff --git a/src/c3nav/mapdata/migrations/0049_auto_20170505_1125.py b/src/c3nav/mapdata/migrations/0049_auto_20170505_1125.py new file mode 100644 index 00000000..ef13913a --- /dev/null +++ b/src/c3nav/mapdata/migrations/0049_auto_20170505_1125.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-05-05 11:25 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('mapdata', '0048_elevator_area'), + ] + + operations = [ + migrations.RemoveField( + model_name='elevatorlevel', + name='elevator', + ), + migrations.RemoveField( + model_name='elevatorlevel', + name='level', + ), + migrations.DeleteModel( + name='Elevator', + ), + migrations.DeleteModel( + name='ElevatorLevel', + ), + ] diff --git a/src/c3nav/mapdata/models/__init__.py b/src/c3nav/mapdata/models/__init__.py index c17ddeb6..1b986195 100644 --- a/src/c3nav/mapdata/models/__init__.py +++ b/src/c3nav/mapdata/models/__init__.py @@ -1,6 +1,5 @@ from .level import Level # noqa from .source import Source # noqa -from .collections import Elevator # noqa from .geometry import LevelFeature # noqa from c3nav.mapdata.models.base import GEOMETRY_FEATURE_TYPES from .locations import AreaLocation, LocationGroup # noqa diff --git a/src/c3nav/mapdata/models/collections.py b/src/c3nav/mapdata/models/collections.py deleted file mode 100644 index 52c768bb..00000000 --- a/src/c3nav/mapdata/models/collections.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ - -from c3nav.mapdata.models.base import Feature - - -class Elevator(Feature): - """ - An elevator. - """ - class Meta: - verbose_name = _('Elevator') - verbose_name_plural = _('Elevators') - default_related_name = 'elevators' - - def __str__(self): - return self.name diff --git a/src/c3nav/mapdata/models/geometry.py b/src/c3nav/mapdata/models/geometry.py index 0064a277..99fa6ca4 100644 --- a/src/c3nav/mapdata/models/geometry.py +++ b/src/c3nav/mapdata/models/geometry.py @@ -1,11 +1,9 @@ from collections import OrderedDict from django.db import models -from django.utils.functional import cached_property from django.utils.translation import ugettext_lazy as _ from shapely.geometry import CAP_STYLE, JOIN_STYLE from shapely.geometry.geo import mapping -from c3nav.mapdata.models import Elevator from c3nav.mapdata.models.base import GeometryFeature from c3nav.mapdata.utils.json import format_geojson @@ -227,34 +225,3 @@ class Hole(LevelFeature): verbose_name = _('Hole') verbose_name_plural = _('Holes') default_related_name = 'holes' - - -class ElevatorLevel(LevelFeature): - """ - An elevator Level - """ - elevator = models.ForeignKey(Elevator, on_delete=models.PROTECT) - button = models.SlugField(_('Button label'), max_length=10) - override_altitude = models.DecimalField(_('override level altitude'), - blank=True, null=True, max_digits=6, decimal_places=2) - public = models.BooleanField(verbose_name=_('public')) - - geomtype = 'polygon' - - class Meta: - verbose_name = _('Elevator Level') - verbose_name_plural = _('Elevator Levels') - default_related_name = 'elevatorlevels' - - def get_geojson_properties(self): - result = super().get_geojson_properties() - result['public'] = self.public - result['elevator'] = self.elevator.name - result['button'] = self.button - return result - - @cached_property - def altitude(self): - if self.override_altitude is not None: - return self.override_altitude - return self.level.altitude diff --git a/src/c3nav/routing/graph.py b/src/c3nav/routing/graph.py index 284b32f4..50e29d5d 100644 --- a/src/c3nav/routing/graph.py +++ b/src/c3nav/routing/graph.py @@ -8,7 +8,7 @@ from django.conf import settings from scipy.sparse.csgraph._shortest_path import shortest_path from scipy.sparse.csgraph._tools import csgraph_from_dense -from c3nav.mapdata.models import Elevator, Level +from c3nav.mapdata.models import Level from c3nav.mapdata.models.locations import AreaLocation, Location, LocationGroup, PointLocation from c3nav.routing.connection import GraphConnection from c3nav.routing.exceptions import AlreadyThere, NoRouteFound, NotYetRoutable