add „public“ field to Areas and Locations and prefill it according to PUBLIC_PACKAGES

This commit is contained in:
Laura Klünder 2017-05-01 17:35:41 +02:00
parent abec08356e
commit f0cec9b7bf
3 changed files with 53 additions and 0 deletions

View file

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2017-05-01 15:23
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
def set_public_by_package(apps, schema_editor):
from c3nav.settings import config
public_packages = [n for n in config.get('c3nav', 'public_packages', fallback='').split(',') if n]
for model_name in ('AreaLocation', 'ElevatorLevel', 'Outside', 'Room'):
Model_ = apps.get_model('mapdata', model_name)
Model_.objects.filter(package__name__in=public_packages).update(public=True)
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0038_source_image'),
]
operations = [
migrations.AddField(
model_name='arealocation',
name='public',
field=models.BooleanField(default=False, verbose_name='public'),
preserve_default=False,
),
migrations.AddField(
model_name='elevatorlevel',
name='public',
field=models.BooleanField(default=False, verbose_name='public'),
preserve_default=False,
),
migrations.AddField(
model_name='outside',
name='public',
field=models.BooleanField(default=False, verbose_name='public'),
preserve_default=False,
),
migrations.AddField(
model_name='room',
name='public',
field=models.BooleanField(default=False, verbose_name='public'),
preserve_default=False,
),
migrations.RunPython(set_public_by_package),
]

View file

@ -115,6 +115,7 @@ class Room(GeometryMapItemWithLevel):
An accessible area like a room. Can overlap.
"""
geomtype = 'polygon'
public = models.BooleanField(verbose_name=_('public'))
class Meta:
verbose_name = _('Room')
@ -127,6 +128,7 @@ 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')
@ -277,6 +279,7 @@ class ElevatorLevel(GeometryMapItemWithLevel):
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'

View file

@ -118,6 +118,7 @@ class AreaLocation(LocationModelMixin, GeometryMapItemWithLevel):
location_type = models.CharField(max_length=20, choices=LOCATION_TYPES, verbose_name=_('Location Type'))
titles = JSONField()
groups = models.ManyToManyField(LocationGroup, verbose_name=_('Location Groups'), blank=True)
public = models.BooleanField(verbose_name=_('public'))
can_search = models.BooleanField(default=True, verbose_name=_('can be searched'))
can_describe = models.BooleanField(default=True, verbose_name=_('can be used to describe a position'))