move Space.category into Location Groups
This commit is contained in:
parent
c9ef56326c
commit
23ebd57a8a
2 changed files with 37 additions and 11 deletions
37
src/c3nav/mapdata/migrations/0022_remove_space_category.py
Normal file
37
src/c3nav/mapdata/migrations/0022_remove_space_category.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.2 on 2017-07-11 15:10
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def convert_space_category_to_location_group(apps, schema_editor):
|
||||
Space = apps.get_model('mapdata', 'Space')
|
||||
LocationGroupCategory = apps.get_model('mapdata', 'LocationGroupCategory')
|
||||
category = LocationGroupCategory.objects.create(name='spacecategory', titles={
|
||||
'en': 'Space Category',
|
||||
'de': 'Raumkategorie',
|
||||
}, single=True, allow_levels=False, allow_spaces=True, allow_areas=False, allow_pois=False, priority=-1)
|
||||
space_categories = (
|
||||
('stairs', {'en': 'Stairs', 'de': 'Treppe'}, '#dddddd'),
|
||||
('escalator', {'en': 'Escalator', 'de': 'Rolltreppe'}, '#bbbbbb'),
|
||||
('elevator', {'en': 'Elevator', 'de': 'Aufzug'}, '#00ffff')
|
||||
)
|
||||
for i, (name, titles, color) in enumerate(space_categories):
|
||||
group = category.groups.create(titles=titles, can_search=False, can_describe=False, color=color, priority=i+1)
|
||||
group.spaces.set(Space.objects.filter(category=name))
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mapdata', '0021_auto_20170710_1916'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(convert_space_category_to_location_group),
|
||||
migrations.RemoveField(
|
||||
model_name='space',
|
||||
name='category',
|
||||
),
|
||||
]
|
|
@ -55,7 +55,6 @@ class Space(SpecificLocation, LevelGeometryMixin, models.Model):
|
|||
('elevator', _('elevator')),
|
||||
)
|
||||
geometry = GeometryField('polygon')
|
||||
category = models.CharField(verbose_name=_('category'), choices=CATEGORIES, default='normal', max_length=16)
|
||||
outside = models.BooleanField(default=False, verbose_name=_('only outside of building'))
|
||||
|
||||
class Meta:
|
||||
|
@ -70,16 +69,6 @@ class Space(SpecificLocation, LevelGeometryMixin, models.Model):
|
|||
result['public'] = self.public
|
||||
return result
|
||||
|
||||
def get_color(self, *args, **kwargs):
|
||||
color = super().get_color(*args, **kwargs)
|
||||
if not color:
|
||||
color = {
|
||||
'stairs': '#dddddd',
|
||||
'escalator': '#bbbbbb',
|
||||
'elevator': '#00ffff',
|
||||
}.get(self.category)
|
||||
return color
|
||||
|
||||
|
||||
class Door(LevelGeometryMixin, models.Model):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue