Skip to content
Snippets Groups Projects
0001_initial.py 26.4 KiB
Newer Older
Tom Teichler's avatar
Tom Teichler committed
# Generated by Django 3.0.5 on 2020-05-04 14:16
Nik | Klampfradler's avatar
Nik | Klampfradler committed

Hangzhi Yu's avatar
Hangzhi Yu committed
import aleksis.apps.chronos.managers
import calendarweek.calendarweek
import colorfield.fields
import django.contrib.postgres.fields.jsonb
import django.contrib.sites.managers
from django.db import migrations, models
Hangzhi Yu's avatar
Hangzhi Yu committed
import django.db.models.deletion
Nik | Klampfradler's avatar
Nik | Klampfradler committed


class Migration(migrations.Migration):

    initial = True

    dependencies = [
Hangzhi Yu's avatar
Hangzhi Yu committed
        ('core', '0001_initial'),
        ('sites', '0002_alter_domain_unique'),
Nik | Klampfradler's avatar
Nik | Klampfradler committed
    ]

    operations = [
        migrations.CreateModel(
Hangzhi Yu's avatar
Hangzhi Yu committed
            name='ChronosGlobalPermissions',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
            ],
            options={
                'permissions': (('view_all_timetables', 'Can view all timetables'), ('view_timetable_overview', 'Can view timetable overview'), ('view_lessons_day', 'Can view all lessons per day')),
                'managed': False,
            },
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
            name='Break',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('short_name', models.CharField(max_length=255, verbose_name='Short name')),
                ('name', models.CharField(max_length=255, verbose_name='Long name')),
            ],
            options={
                'verbose_name': 'Break',
                'verbose_name_plural': 'Breaks',
                'ordering': ['after_period'],
            },
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
            name='Lesson',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('date_start', models.DateField(null=True, verbose_name='Start date')),
                ('date_end', models.DateField(null=True, verbose_name='End date')),
                ('groups', models.ManyToManyField(related_name='lessons', to='core.Group', verbose_name='Groups')),
            ],
            options={
                'verbose_name': 'Lesson',
                'verbose_name_plural': 'Lessons',
                'ordering': ['date_start', 'subject'],
            },
            bases=(models.Model, aleksis.apps.chronos.managers.GroupPropertiesMixin, aleksis.apps.chronos.managers.TeacherPropertiesMixin),
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
            name='LessonPeriod',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('lesson', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lesson_periods', to='chronos.Lesson', verbose_name='Lesson')),
            ],
            options={
                'verbose_name': 'Lesson period',
                'verbose_name_plural': 'Lesson periods',
                'ordering': ['lesson__date_start', 'period__weekday', 'period__period', 'lesson__subject'],
            },
        ),
        migrations.CreateModel(
            name='Supervision',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
            ],
            options={
                'verbose_name': 'Supervision',
                'verbose_name_plural': 'Supervisions',
                'ordering': ['area', 'break_item'],
            },
        ),
        migrations.CreateModel(
            name='TimetableWidget',
            fields=[
            ],
            options={
                'verbose_name': 'Timetable widget',
                'verbose_name_plural': 'Timetable widgets',
                'proxy': True,
                'indexes': [],
                'constraints': [],
            },
            bases=('core.dashboardwidget',),
        ),
        migrations.CreateModel(
            name='TimePeriod',
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
Tom Teichler's avatar
Tom Teichler committed
                ('weekday', models.PositiveSmallIntegerField(choices=[(0, 'Monday'), (1, 'Tuesday'), (2, 'Wednesday'), (3, 'Thursday'), (4, 'Friday'), (5, 'Saturday'), (6, 'Sunday')], verbose_name='Week day')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('period', models.PositiveSmallIntegerField(verbose_name='Number of period')),
                ('time_start', models.TimeField(verbose_name='Start time')),
                ('time_end', models.TimeField(verbose_name='End time')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
            ],
            options={
                'verbose_name': 'Time period',
                'verbose_name_plural': 'Time periods',
                'ordering': ['weekday', 'period'],
            },
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
Nik | Klampfradler's avatar
Nik | Klampfradler committed
        migrations.CreateModel(
Hangzhi Yu's avatar
Hangzhi Yu committed
            name='SupervisionSubstitution',
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('date', models.DateField(verbose_name='Date')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
                ('supervision', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='substitutions', to='chronos.Supervision', verbose_name='Supervision')),
                ('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='substituted_supervisions', to='core.Person', verbose_name='Teacher')),
            options={
Hangzhi Yu's avatar
Hangzhi Yu committed
                'verbose_name': 'Supervision substitution',
                'verbose_name_plural': 'Supervision substitutions',
                'ordering': ['date', 'supervision'],
Hangzhi Yu's avatar
Hangzhi Yu committed
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
Nik | Klampfradler's avatar
Nik | Klampfradler committed
        migrations.CreateModel(
Hangzhi Yu's avatar
Hangzhi Yu committed
            name='SupervisionArea',
Nik | Klampfradler's avatar
Nik | Klampfradler committed
            fields=[
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('short_name', models.CharField(max_length=255, verbose_name='Short name')),
                ('name', models.CharField(max_length=255, verbose_name='Long name')),
                ('colour_fg', colorfield.fields.ColorField(default='#000000', max_length=18)),
                ('colour_bg', colorfield.fields.ColorField(default='#FFFFFF', max_length=18)),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
Nik | Klampfradler's avatar
Nik | Klampfradler committed
            ],
            options={
Hangzhi Yu's avatar
Hangzhi Yu committed
                'verbose_name': 'Supervision area',
                'verbose_name_plural': 'Supervision areas',
                'ordering': ['name'],
Hangzhi Yu's avatar
Hangzhi Yu committed
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.AddField(
            model_name='supervision',
            name='area',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='supervisions', to='chronos.SupervisionArea', verbose_name='Supervision area'),
        ),
        migrations.AddField(
            model_name='supervision',
            name='break_item',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='supervisions', to='chronos.Break', verbose_name='Break'),
        ),
        migrations.AddField(
            model_name='supervision',
            name='site',
            field=models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'),
        ),
        migrations.AddField(
            model_name='supervision',
            name='teacher',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='supervisions', to='core.Person', verbose_name='Teacher'),
Nik | Klampfradler's avatar
Nik | Klampfradler committed
        ),
Hangzhi Yu's avatar
Hangzhi Yu committed
            name='Subject',
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('short_name', models.CharField(max_length=255, unique=True, verbose_name='Short name')),
                ('name', models.CharField(max_length=255, unique=True, verbose_name='Long name')),
                ('colour_fg', colorfield.fields.ColorField(blank=True, default='#FFFFFF', max_length=18, verbose_name='Foreground colour')),
                ('colour_bg', colorfield.fields.ColorField(blank=True, default='#FFFFFF', max_length=18, verbose_name='Background colour')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
            options={
Hangzhi Yu's avatar
Hangzhi Yu committed
                'verbose_name': 'Subject',
                'verbose_name_plural': 'Subjects',
                'ordering': ['name', 'short_name'],
Hangzhi Yu's avatar
Hangzhi Yu committed
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
Hangzhi Yu's avatar
Hangzhi Yu committed
            name='Room',
            fields=[
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('short_name', models.CharField(max_length=255, unique=True, verbose_name='Short name')),
                ('name', models.CharField(max_length=255, verbose_name='Long name')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                'verbose_name': 'Room',
                'verbose_name_plural': 'Rooms',
                'ordering': ['name', 'short_name'],
Hangzhi Yu's avatar
Hangzhi Yu committed
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
Hangzhi Yu's avatar
Hangzhi Yu committed
            name='LessonSubstitution',
            fields=[
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('week', models.IntegerField(default=calendarweek.calendarweek.CalendarWeek.current_week, verbose_name='Week')),
                ('cancelled', models.BooleanField(default=False, verbose_name='Cancelled?')),
                ('cancelled_for_teachers', models.BooleanField(default=False, verbose_name='Cancelled for teachers?')),
Tom Teichler's avatar
Tom Teichler committed
                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('lesson_period', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='substitutions', to='chronos.LessonPeriod', verbose_name='Lesson period')),
                ('room', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='chronos.Room', verbose_name='Room')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
                ('subject', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lesson_substitutions', to='chronos.Subject', verbose_name='Subject')),
                ('teachers', models.ManyToManyField(blank=True, related_name='lesson_substitutions', to='core.Person', verbose_name='Teachers')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                'verbose_name': 'Lesson substitution',
                'verbose_name_plural': 'Lesson substitutions',
                'ordering': ['lesson_period__lesson__date_start', 'week', 'lesson_period__period__weekday', 'lesson_period__period__period'],
            },
        ),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='lessonperiod',
            name='period',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lesson_periods', to='chronos.TimePeriod', verbose_name='Time period'),
        ),
        migrations.AddField(
            model_name='lessonperiod',
            name='room',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lesson_periods', to='chronos.Room', verbose_name='Room'),
        ),
        migrations.AddField(
            model_name='lessonperiod',
            name='site',
            field=models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'),
        ),
        migrations.AddField(
            model_name='lesson',
            name='periods',
            field=models.ManyToManyField(related_name='lessons', through='chronos.LessonPeriod', to='chronos.TimePeriod', verbose_name='Periods'),
        ),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='lesson',
            name='site',
            field=models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'),
        ),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='lesson',
            name='subject',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lessons', to='chronos.Subject', verbose_name='Subject'),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='lesson',
            name='teachers',
            field=models.ManyToManyField(related_name='lessons_as_teacher', to='core.Person', verbose_name='Teachers'),
        ),
        migrations.CreateModel(
            name='Holiday',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('title', models.CharField(max_length=255, verbose_name='Title')),
                ('date_start', models.DateField(null=True, verbose_name='Start date')),
                ('date_end', models.DateField(null=True, verbose_name='End date')),
Tom Teichler's avatar
Tom Teichler committed
                ('comments', models.TextField(blank=True, null=True, verbose_name='Comments')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
            ],
            options={
                'verbose_name': 'Holiday',
                'verbose_name_plural': 'Holidays',
                'ordering': ['date_start'],
            },
        ),
        migrations.CreateModel(
            name='ExtraLesson',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('week', models.IntegerField(default=calendarweek.calendarweek.CalendarWeek.current_week, verbose_name='Week')),
Tom Teichler's avatar
Tom Teichler committed
                ('comment', models.CharField(blank=True, max_length=255, null=True, verbose_name='Comment')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('groups', models.ManyToManyField(related_name='extra_lessons', to='core.Group', verbose_name='Groups')),
                ('period', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='chronos.TimePeriod', verbose_name='Time period')),
                ('room', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='chronos.Room', verbose_name='Room')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
                ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='chronos.Subject', verbose_name='Subject')),
                ('teachers', models.ManyToManyField(related_name='extra_lessons_as_teacher', to='core.Person', verbose_name='Teachers')),
            ],
            options={
                'verbose_name': 'Extra lesson',
                'verbose_name_plural': 'Extra lessons',
            },
            bases=(models.Model, aleksis.apps.chronos.managers.GroupPropertiesMixin),
        ),
        migrations.CreateModel(
            name='Exam',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('date', models.DateField(null=True, verbose_name='Date of exam')),
                ('title', models.CharField(max_length=255, verbose_name='Title')),
Tom Teichler's avatar
Tom Teichler committed
                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('lesson', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='exams', to='chronos.Lesson', verbose_name='Lesson')),
                ('period_from', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='chronos.TimePeriod', verbose_name='Start period')),
                ('period_to', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='chronos.TimePeriod', verbose_name='End period')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
            ],
            options={
                'verbose_name': 'Exam',
                'verbose_name_plural': 'Exams',
                'ordering': ['date'],
            },
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
            name='Event',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
Tom Teichler's avatar
Tom Teichler committed
                ('title', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('date_start', models.DateField(null=True, verbose_name='Start date')),
                ('date_end', models.DateField(null=True, verbose_name='End date')),
                ('groups', models.ManyToManyField(related_name='events', to='core.Group', verbose_name='Groups')),
                ('period_from', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='chronos.TimePeriod', verbose_name='Start time period')),
                ('period_to', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='chronos.TimePeriod', verbose_name='End time period')),
                ('rooms', models.ManyToManyField(related_name='events', to='chronos.Room', verbose_name='Rooms')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
                ('teachers', models.ManyToManyField(related_name='events', to='core.Person', verbose_name='Teachers')),
            ],
            options={
                'verbose_name': 'Event',
                'verbose_name_plural': 'Events',
                'ordering': ['date_start'],
            },
            bases=(models.Model, aleksis.apps.chronos.managers.GroupPropertiesMixin, aleksis.apps.chronos.managers.TeacherPropertiesMixin),
        ),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='break',
            name='after_period',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='break_after', to='chronos.TimePeriod', verbose_name='Time period after break starts'),
        ),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='break',
            name='before_period',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='break_before', to='chronos.TimePeriod', verbose_name='Time period before break ends'),
        ),
        migrations.AddField(
Hangzhi Yu's avatar
Hangzhi Yu committed
            model_name='break',
            name='site',
            field=models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'),
        ),
        migrations.CreateModel(
            name='AbsenceReason',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('short_name', models.CharField(max_length=255, verbose_name='Short name')),
Tom Teichler's avatar
Tom Teichler committed
                ('name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Name')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
            ],
            options={
                'verbose_name': 'Absence reason',
                'verbose_name_plural': 'Absence reasons',
            },
            managers=[
                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
            ],
        ),
        migrations.CreateModel(
            name='Absence',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
                ('date_start', models.DateField(null=True, verbose_name='Start date')),
                ('date_end', models.DateField(null=True, verbose_name='End date')),
Tom Teichler's avatar
Tom Teichler committed
                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')),
Hangzhi Yu's avatar
Hangzhi Yu committed
                ('group', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='absences', to='core.Group', verbose_name='Group')),
                ('period_from', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='chronos.TimePeriod', verbose_name='Start period')),
                ('period_to', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='chronos.TimePeriod', verbose_name='End period')),
                ('reason', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='absences', to='chronos.AbsenceReason', verbose_name='Absence reason')),
                ('room', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='absences', to='chronos.Room', verbose_name='Room')),
                ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')),
                ('teacher', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='absences', to='core.Person', verbose_name='Teacher')),
            ],
            options={
                'verbose_name': 'Absence',
                'verbose_name_plural': 'Absences',
                'ordering': ['date_start'],
            },
        ),
        migrations.AddIndex(
            model_name='timeperiod',
            index=models.Index(fields=['time_start', 'time_end'], name='chronos_tim_time_st_491e4c_idx'),
        ),
        migrations.AlterUniqueTogether(
            name='timeperiod',
            unique_together={('weekday', 'period')},
        ),
        migrations.AddConstraint(
            model_name='lessonsubstitution',
            constraint=models.CheckConstraint(check=models.Q(('cancelled', True), ('subject__isnull', False), _negated=True), name='either_substituted_or_cancelled'),
        ),
        migrations.AlterUniqueTogether(
            name='lessonsubstitution',
            unique_together={('lesson_period', 'week')},
        ),
        migrations.AddIndex(
            model_name='lessonperiod',
            index=models.Index(fields=['lesson', 'period'], name='chronos_les_lesson__05250e_idx'),
        ),
        migrations.AddIndex(
            model_name='lesson',
            index=models.Index(fields=['date_start', 'date_end'], name='chronos_les_date_st_5ecc62_idx'),
        ),
        migrations.AddIndex(
            model_name='holiday',
            index=models.Index(fields=['date_start', 'date_end'], name='chronos_hol_date_st_a47004_idx'),
        ),
        migrations.AddIndex(
            model_name='exam',
            index=models.Index(fields=['date'], name='chronos_exa_date_5ba442_idx'),
        ),
        migrations.AddIndex(
            model_name='event',
            index=models.Index(fields=['period_from', 'period_to', 'date_start', 'date_end'], name='chronos_eve_period__c7ec33_idx'),
        ),
        migrations.AddIndex(
            model_name='break',
            index=models.Index(fields=['after_period', 'before_period'], name='chronos_bre_after_p_0f28d3_idx'),
        ),
        migrations.AddIndex(
            model_name='absence',
            index=models.Index(fields=['date_start', 'date_end'], name='chronos_abs_date_st_337ff5_idx'),
Nik | Klampfradler's avatar
Nik | Klampfradler committed
        ),
    ]