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 .level import Level # noqa
|
||||||
from .source import Source # noqa
|
from .source import Source # noqa
|
||||||
from .collections import Elevator # noqa
|
|
||||||
from .geometry import LevelFeature # noqa
|
from .geometry import LevelFeature # noqa
|
||||||
from c3nav.mapdata.models.base import GEOMETRY_FEATURE_TYPES
|
from c3nav.mapdata.models.base import GEOMETRY_FEATURE_TYPES
|
||||||
from .locations import AreaLocation, LocationGroup # noqa
|
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 collections import OrderedDict
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.functional import cached_property
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from shapely.geometry import CAP_STYLE, JOIN_STYLE
|
from shapely.geometry import CAP_STYLE, JOIN_STYLE
|
||||||
from shapely.geometry.geo import mapping
|
from shapely.geometry.geo import mapping
|
||||||
|
|
||||||
from c3nav.mapdata.models import Elevator
|
|
||||||
from c3nav.mapdata.models.base import GeometryFeature
|
from c3nav.mapdata.models.base import GeometryFeature
|
||||||
from c3nav.mapdata.utils.json import format_geojson
|
from c3nav.mapdata.utils.json import format_geojson
|
||||||
|
|
||||||
|
@ -227,34 +225,3 @@ class Hole(LevelFeature):
|
||||||
verbose_name = _('Hole')
|
verbose_name = _('Hole')
|
||||||
verbose_name_plural = _('Holes')
|
verbose_name_plural = _('Holes')
|
||||||
default_related_name = '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._shortest_path import shortest_path
|
||||||
from scipy.sparse.csgraph._tools import csgraph_from_dense
|
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.mapdata.models.locations import AreaLocation, Location, LocationGroup, PointLocation
|
||||||
from c3nav.routing.connection import GraphConnection
|
from c3nav.routing.connection import GraphConnection
|
||||||
from c3nav.routing.exceptions import AlreadyThere, NoRouteFound, NotYetRoutable
|
from c3nav.routing.exceptions import AlreadyThere, NoRouteFound, NotYetRoutable
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue