move elevators to area model
This commit is contained in:
parent
5973ca3211
commit
74e9acd8b6
6 changed files with 61 additions and 51 deletions
31
src/c3nav/mapdata/migrations/0048_elevator_area.py
Normal file
31
src/c3nav/mapdata/migrations/0048_elevator_area.py
Normal file
|
@ -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),
|
||||
]
|
29
src/c3nav/mapdata/migrations/0049_auto_20170505_1125.py
Normal file
29
src/c3nav/mapdata/migrations/0049_auto_20170505_1125.py
Normal file
|
@ -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',
|
||||
),
|
||||
]
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue