merge Room and Outside into Area

This commit is contained in:
Laura Klünder 2017-05-04 12:08:17 +02:00
parent 67be5d29a8
commit 857788bcf6
5 changed files with 199 additions and 25 deletions

View file

@ -212,8 +212,7 @@ editor = {
},
_geometry_colors: {
'building': '#333333',
'room': '#FFFFFF',
'outside': '#EEFFEE',
'area': '#FFFFFF',
'lineobstacle': '#999999',
'obstacle': '#999999',
'door': '#66FF00',

View file

@ -0,0 +1,118 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-05-04 09:53
from __future__ import unicode_literals
import c3nav.mapdata.fields
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0039_auto_20170501_1523'),
]
operations = [
migrations.CreateModel(
name='Area',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.SlugField(unique=True, verbose_name='Name')),
('geometry', c3nav.mapdata.fields.GeometryField()),
('public', models.BooleanField(verbose_name='public')),
('categories', models.CharField(choices=[('', 'normal'), ('stairs', 'stairs'), ('escalator', 'escalator'), ('elevator', 'elevator')], max_length=16, verbose_name='category')),
('layer', models.CharField(choices=[('', 'normal'), ('upper', 'upper'), ('lowerr', 'lower')], max_length=16, verbose_name='layer')),
],
options={
'default_related_name': 'areas',
'verbose_name_plural': 'Areas',
'verbose_name': 'Area',
},
),
migrations.RemoveField(
model_name='package',
name='depends',
),
migrations.RemoveField(
model_name='arealocation',
name='package',
),
migrations.RemoveField(
model_name='building',
name='package',
),
migrations.RemoveField(
model_name='door',
name='package',
),
migrations.RemoveField(
model_name='elevator',
name='package',
),
migrations.RemoveField(
model_name='elevatorlevel',
name='package',
),
migrations.RemoveField(
model_name='escalator',
name='package',
),
migrations.RemoveField(
model_name='hole',
name='package',
),
migrations.RemoveField(
model_name='level',
name='package',
),
migrations.RemoveField(
model_name='levelconnector',
name='package',
),
migrations.RemoveField(
model_name='lineobstacle',
name='package',
),
migrations.RemoveField(
model_name='locationgroup',
name='package',
),
migrations.RemoveField(
model_name='obstacle',
name='package',
),
migrations.RemoveField(
model_name='outside',
name='package',
),
migrations.RemoveField(
model_name='room',
name='package',
),
migrations.RemoveField(
model_name='source',
name='package',
),
migrations.RemoveField(
model_name='stair',
name='package',
),
migrations.RemoveField(
model_name='stuffedarea',
name='package',
),
migrations.AlterField(
model_name='arealocation',
name='routing_inclusion',
field=models.CharField(choices=[('default', 'Default, include it is unlocked'), ('allow_avoid', 'Included, but allow excluding'), ('allow_include', 'Avoided, but allow including'), ('needs_permission', 'Excluded, needs permission to include')], default='default', max_length=20, verbose_name='Routing Inclusion'),
),
migrations.DeleteModel(
name='Package',
),
migrations.AddField(
model_name='area',
name='level',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='areas', to='mapdata.Level', verbose_name='level'),
),
]

View file

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-05-04 09:55
from __future__ import unicode_literals
from django.db import migrations
def fill_area_model(apps, schema_editor):
Area = apps.get_model('mapdata', 'Area')
for model_name in ('Room', 'Outside'):
Model_ = apps.get_model('mapdata', model_name)
for obj in Model_.objects.all():
Area.objects.create(
name=obj.name,
geometry=obj.geometry,
level=obj.level,
public=obj.public,
categories='',
layer='',
)
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0040_auto_20170504_0953'),
]
operations = [
migrations.RunPython(fill_area_model),
]

View file

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-05-04 10:07
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0041_room_outside_area'),
]
operations = [
migrations.RemoveField(
model_name='outside',
name='level',
),
migrations.RemoveField(
model_name='room',
name='level',
),
migrations.DeleteModel(
name='Outside',
),
migrations.DeleteModel(
name='Room',
),
]

View file

@ -109,35 +109,32 @@ class Building(GeometryMapItemWithLevel):
default_related_name = 'buildings'
class Room(GeometryMapItemWithLevel):
class Area(GeometryMapItemWithLevel):
"""
An accessible area like a room. Can overlap.
An accessible area. Shouldn't overlap.
"""
geomtype = 'polygon'
CATEGORIES = (
('', _('normal')),
('stairs', _('stairs')),
('escalator', _('escalator')),
('elevator', _('elevator')),
)
LAYERS = (
('', _('normal')),
('upper', _('upper')),
('lowerr', _('lower')),
)
public = models.BooleanField(verbose_name=_('public'))
categories = models.CharField(verbose_name=_('category'), choices=CATEGORIES, max_length=16)
layer = models.CharField(verbose_name=_('layer'), choices=LAYERS, max_length=16)
class Meta:
verbose_name = _('Room')
verbose_name_plural = _('Rooms')
default_related_name = 'rooms'
def get_geojson_properties(self):
result = super().get_geojson_properties()
result['public'] = self.public
return result
class Outside(GeometryMapItemWithLevel):
"""
An accessible outdoor area like a court. Can overlap.
"""
geomtype = 'polygon'
public = models.BooleanField(verbose_name=_('public'))
class Meta:
verbose_name = _('Outside Area')
verbose_name_plural = _('Outside Areas')
default_related_name = 'outsides'
verbose_name = _('Area')
verbose_name_plural = _('Areas')
default_related_name = 'areas'
def get_geojson_properties(self):
result = super().get_geojson_properties()