# Generated by Django 2.2.5 on 2019-09-03 18:30 import django.core.validators import django.db.models.deletion from django.db import migrations, models import aleksis.apps.chronos.util.date import aleksis.core.util.core_helpers class Migration(migrations.Migration): initial = True dependencies = [ ("core", "0001_initial"), ] operations = [ migrations.CreateModel( name="Lesson", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "date_start", models.DateField( null=True, verbose_name="Effective start date of lesson" ), ), ( "date_end", models.DateField( null=True, verbose_name="Effective end date of lesson" ), ), ( "groups", models.ManyToManyField(related_name="lessons", to="core.Group"), ), ], options={"ordering": ["date_start"],}, ), migrations.CreateModel( name="LessonPeriod", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "lesson", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="lesson_periods", to="chronos.Lesson", ), ), ], options={ "ordering": ["lesson__date_start", "period__weekday", "period__period"], }, ), migrations.CreateModel( name="TimePeriod", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "weekday", models.PositiveSmallIntegerField( choices=[ (0, "Sunday"), (1, "Monday"), (2, "Tuesday"), (3, "Wednesday"), (4, "Thursday"), (5, "Friday"), (6, "Saturday"), ], verbose_name="Week day", ), ), ( "period", models.PositiveSmallIntegerField(verbose_name="Number of period"), ), ("time_start", models.TimeField(verbose_name="Time the period starts")), ("time_end", models.TimeField(verbose_name="Time the period ends")), ( "school", models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to="core.School", ), ), ], options={ "ordering": ["weekday", "period"], "unique_together": {("school", "weekday", "period")}, }, ), migrations.CreateModel( name="Subject", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "abbrev", models.CharField( max_length=10, verbose_name="Abbreviation of subject in timetable", ), ), ( "name", models.CharField( max_length=30, verbose_name="Long name of subject" ), ), ( "colour_fg", models.CharField( blank=True, max_length=7, validators=[ django.core.validators.RegexValidator("#[0-9A-F]{6}") ], verbose_name="Foreground colour in timetable", ), ), ( "colour_bg", models.CharField( blank=True, max_length=7, validators=[ django.core.validators.RegexValidator("#[0-9A-F]{6}") ], verbose_name="Background colour in timetable", ), ), ( "school", models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to="core.School", ), ), ], options={ "ordering": ["name", "abbrev"], "unique_together": {("school", "abbrev"), ("school", "name")}, }, ), migrations.CreateModel( name="Room", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "short_name", models.CharField( max_length=10, verbose_name="Short name, e.g. room number" ), ), ("name", models.CharField(max_length=30, verbose_name="Long name")), ( "school", models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to="core.School", ), ), ], options={ "ordering": ["name", "short_name"], "unique_together": {("school", "name"), ("school", "short_name")}, }, ), migrations.CreateModel( name="LessonSubstitution", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "week", models.IntegerField( default=aleksis.apps.chronos.util.date.CalendarWeek.current_week, verbose_name="Week", ), ), ( "lesson_period", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="substitutions", to="chronos.LessonPeriod", ), ), ( "room", models.ForeignKey( null=True, blank=True, on_delete=django.db.models.deletion.CASCADE, to="chronos.Room", verbose_name="Room", ), ), ( "school", models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to="core.School", ), ), ( "subject", models.ForeignKey( null=True, blank=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", ), ), ], options={ "ordering": [ "lesson_period__lesson__date_start", "week", "lesson_period__period__weekday", "lesson_period__period__period", ], }, ), migrations.AddField( model_name="lessonperiod", name="period", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="lesson_periods", to="chronos.TimePeriod", ), ), 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", ), ), migrations.AddField( model_name="lessonperiod", name="school", field=models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to="core.School" ), ), migrations.AddField( model_name="lesson", name="periods", field=models.ManyToManyField( related_name="lessons", through="chronos.LessonPeriod", to="chronos.TimePeriod", ), ), migrations.AddField( model_name="lesson", name="school", field=models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to="core.School" ), ), migrations.AddField( model_name="lesson", name="subject", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="lessons", to="chronos.Subject", ), ), migrations.AddField( model_name="lesson", name="teachers", field=models.ManyToManyField(related_name="lessons", to="core.Person"), ), ]