98 lines
3.1 KiB
Python
98 lines
3.1 KiB
Python
# 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),
|
|
]
|