OpenSlides/openslides/core/migrations/0001_initial.py
2015-06-29 15:15:33 +02:00

89 lines
3.3 KiB
Python

import jsonfield.fields
from django.db import migrations, models
import openslides.utils.models
def add_default_projector(apps, schema_editor):
"""
Adds default projector, welcome slide and activates clock and welcome
slide.
"""
# We get the model from the versioned app registry;
# if we directly import it, it will be the wrong version.
CustomSlide = apps.get_model('core', 'CustomSlide')
custom_slide = CustomSlide.objects.create(
title='Welcome to OpenSlides',
weight=-500)
Projector = apps.get_model('core', 'Projector')
projector_config = [
{'name': 'core/clock', 'stable': True},
{'name': 'core/customslide', 'id': custom_slide.id}]
Projector.objects.create(config=projector_config)
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='CustomSlide',
fields=[
('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)),
('title', models.CharField(max_length=256, verbose_name='Title')),
('text', models.TextField(blank=True, verbose_name='Text')),
('weight', models.IntegerField(verbose_name='Weight', default=0)),
],
options={
'ordering': ('weight', 'title'),
},
bases=(openslides.utils.models.RESTModelMixin, models.Model),
),
migrations.CreateModel(
name='Projector',
fields=[
('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)),
('config', jsonfield.fields.JSONField()),
],
options={
'permissions': (
('can_see_projector', 'Can see the projector'),
('can_manage_projector', 'Can manage the projector'),
('can_see_dashboard', 'Can see the dashboard'),
('can_use_chat', 'Can use the chat')),
},
bases=(openslides.utils.models.RESTModelMixin, models.Model),
),
migrations.CreateModel(
name='Tag',
fields=[
('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)),
('name', models.CharField(max_length=255, verbose_name='Tag', unique=True)),
],
options={
'ordering': ('name',),
'permissions': (('can_manage_tags', 'Can manage tags'),),
},
bases=(openslides.utils.models.RESTModelMixin, models.Model),
),
migrations.CreateModel(
name='ConfigStore',
fields=[
('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)),
('key', models.CharField(max_length=255, db_index=True, unique=True)),
('value', jsonfield.fields.JSONField()),
],
options={
'permissions': (('can_manage_config', 'Can manage configuration'),),
},
bases=(models.Model,),
),
migrations.RunPython(
code=add_default_projector,
reverse_code=None,
atomic=True,
),
]