# Generated by Django 3.2.20 on 2023-09-25 14:48 from django.db import migrations, models def set_url_expert_course_session_assignments(apps): Course = apps.get_model("course", "Course") # noqa CourseSessionAssignment = apps.get_model( # noqa "course_session", "CourseSessionAssignment" ) for assignment in CourseSessionAssignment.objects.all(): for due_date in [ assignment.submission_deadline, assignment.evaluation_deadline, ]: if due_date and due_date.page: course_slug = due_date.course_session.course.slug content_id = due_date.page.id due_date.url_expert = ( f"/course/{course_slug}/cockpit/assignment/{content_id}" ) due_date.save() def set_url_expert_course_session_edoniq_test(apps): CourseSessionEdoniqTest = apps.get_model( # noqa "course_session", "CourseSessionEdoniqTest" ) for edoniq_test in CourseSessionEdoniqTest.objects.all(): due_date = edoniq_test.deadline if due_date: course_slug = due_date.course_session.course.slug due_date.url_expert = f"/course/{course_slug}/cockpit/" due_date.save() def set_url_expert_course_session_attendances(apps): Course = apps.get_model("course", "Course") # noqa CourseSessionAttendanceCourse = apps.get_model( # noqa "course_session", "CourseSessionAttendanceCourse" ) for attendance in CourseSessionAttendanceCourse.objects.all(): due_date = attendance.due_date if due_date and due_date.page: course_slug = due_date.course_session.course.slug content_id = due_date.page.id due_date.url_expert = ( f"/course/{course_slug}/cockpit/attendance?id={content_id}" ) due_date.save() def set_url_expert_default(apps, schema_editor): set_url_expert_course_session_assignments(apps) set_url_expert_course_session_attendances(apps) set_url_expert_course_session_edoniq_test(apps) def reverse_func(apps, schema_editor): # so we can reverse this migration, but noop pass class Migration(migrations.Migration): dependencies = [ ("duedate", "0004_alter_duedate_start"), ] operations = [ migrations.AddField( model_name="duedate", name="url_expert", field=models.CharField( blank=True, default="", help_text="URL wird aus dem LearningContent generiert (sichtbar für den Experten/Trainer)", max_length=1024, ), ), migrations.AlterField( model_name="duedate", name="url", field=models.CharField( blank=True, default="", help_text="URL wird vom LearningContent übernommen (sichtbar für Member/Teilnehmer)", max_length=1024, ), ), migrations.RunPython(set_url_expert_default, reverse_func), ]