add „public“ field to Areas and Locations and prefill it according to PUBLIC_PACKAGES
This commit is contained in:
parent
abec08356e
commit
f0cec9b7bf
3 changed files with 53 additions and 0 deletions
49
src/c3nav/mapdata/migrations/0039_auto_20170501_1523.py
Normal file
49
src/c3nav/mapdata/migrations/0039_auto_20170501_1523.py
Normal 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),
|
||||
]
|
|
@ -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'
|
||||
|
||||
|
|
|
@ -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'))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue