move Space.category into Location Groups

This commit is contained in:
Laura Klünder 2017-07-11 17:32:17 +02:00
parent c9ef56326c
commit 23ebd57a8a
2 changed files with 37 additions and 11 deletions

View 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',
),
]

View file

@ -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):
"""