Skip to content
Snippets Groups Projects

Resolve "Link substitutions and other week-related stuff not only to weeks, but also to years"

9 files
+ 146
45
Compare changes
  • Side-by-side
  • Inline
Files
9
# Generated by Django 3.0.9 on 2020-08-13 14:06
from django.db import migrations, models
import aleksis.apps.chronos.util.date
def migrate_data(apps, schema_editor):
LessonSubstitution = apps.get_model("chronos", "LessonSubstitution")
ExtraLesson = apps.get_model("chronos", "ExtraLesson")
db_alias = schema_editor.connection.alias
for sub in LessonSubstitution.objects.using(db_alias).all():
year = sub.lesson_period.lesson.validity.date_start.year
if sub.week < int(sub.lesson_period.lesson.validity.date_start.strftime("%V")):
year += 1
sub.year = year
sub.save()
for extra_lesson in ExtraLesson.objects.using(db_alias).all():
year = aleksis.apps.chronos.util.date.get_current_year()
extra_lesson.year = year
extra_lesson.save()
class Migration(migrations.Migration):
dependencies = [
("core", "0003_drop_image_cropping"),
("chronos", "0003_school_term_validity_fixes"),
]
operations = [
migrations.AddField(
model_name="extralesson",
name="year",
field=models.IntegerField(
default=aleksis.apps.chronos.util.date.get_current_year,
verbose_name="Year",
),
),
migrations.AddField(
model_name="lessonsubstitution",
name="year",
field=models.IntegerField(
default=aleksis.apps.chronos.util.date.get_current_year,
verbose_name="Year",
),
),
migrations.RunPython(migrate_data),
]
Loading