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