feat: migration for url_expert
This commit is contained in:
parent
79d4246b88
commit
ac06dff5c3
|
|
@ -63,11 +63,8 @@ class CourseSessionAttendanceCourse(models.Model):
|
|||
)
|
||||
|
||||
if not self.due_date.manual_override_fields:
|
||||
course = self.learning_content.get_course()
|
||||
|
||||
self.due_date.url = self.learning_content.get_frontend_url()
|
||||
# TODO: @livioso move this to the learning content?
|
||||
self.due_date.url_expert = f"/course/{course.slug}/cockpit/attendance?id={self.learning_content_id}"
|
||||
self.due_date.url_expert = f"/course/{self.due_date.course_session.course.slug}/cockpit/attendance?id={self.learning_content_id}"
|
||||
self.due_date.title = self.learning_content.title
|
||||
self.due_date.page = self.learning_content.page_ptr
|
||||
self.due_date.assignment_type_translation_key = (
|
||||
|
|
@ -134,11 +131,7 @@ class CourseSessionAssignment(models.Model):
|
|||
AssignmentType.REFLECTION.value: "learningContentTypes.reflection",
|
||||
}
|
||||
|
||||
# TODO @livioso move this to the learning content?
|
||||
course = self.learning_content.get_course()
|
||||
url_expert = (
|
||||
f"/course/{course.slug}/cockpit/assignment/{self.learning_content_id}"
|
||||
)
|
||||
url_expert = f"/course/{self.course_session.course.slug}/cockpit/assignment/{self.learning_content_id}"
|
||||
|
||||
if assignment_type in (
|
||||
AssignmentType.CASEWORK.value,
|
||||
|
|
@ -151,7 +144,6 @@ class CourseSessionAssignment(models.Model):
|
|||
|
||||
if not self.submission_deadline.manual_override_fields:
|
||||
self.submission_deadline.url = url
|
||||
# TODO: @livioso check what's expected here
|
||||
self.submission_deadline.url_expert = url_expert
|
||||
self.submission_deadline.title = title
|
||||
self.submission_deadline.assignment_type_translation_key = (
|
||||
|
|
@ -172,7 +164,7 @@ class CourseSessionAssignment(models.Model):
|
|||
|
||||
if not self.evaluation_deadline.manual_override_fields:
|
||||
self.evaluation_deadline.url = url
|
||||
self.submission_deadline.url_expert = url_expert
|
||||
self.evaluation_deadline.url_expert = url_expert
|
||||
self.evaluation_deadline.title = title
|
||||
self.evaluation_deadline.assignment_type_translation_key = (
|
||||
assignment_type_translation_keys[assignment_type]
|
||||
|
|
@ -221,7 +213,9 @@ class CourseSessionEdoniqTest(models.Model):
|
|||
|
||||
if not self.deadline.manual_override_fields:
|
||||
self.deadline.url = self.learning_content.get_frontend_url()
|
||||
self.deadline.expert_url = self.learning_content.get_frontend_url()
|
||||
self.deadline.url_expert = (
|
||||
f"/course/{self.course_session.course.slug}/cockpit/"
|
||||
)
|
||||
self.deadline.title = self.learning_content.title
|
||||
self.deadline.page = self.learning_content.page_ptr
|
||||
self.deadline.assignment_type_translation_key = (
|
||||
|
|
|
|||
|
|
@ -3,6 +3,70 @@
|
|||
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"),
|
||||
|
|
@ -29,4 +93,5 @@ class Migration(migrations.Migration):
|
|||
max_length=1024,
|
||||
),
|
||||
),
|
||||
migrations.RunPython(set_url_expert_default, reverse_func),
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue