wip: expose url for expert in duedate model

This commit is contained in:
Livio Bieri 2023-09-25 17:13:27 +02:00
parent 7c6d448268
commit 97edbbd751
5 changed files with 49 additions and 1 deletions

View File

@ -63,7 +63,11 @@ 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.title = self.learning_content.title
self.due_date.page = self.learning_content.page_ptr
self.due_date.assignment_type_translation_key = (
@ -130,6 +134,12 @@ 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}"
)
if assignment_type in (
AssignmentType.CASEWORK.value,
AssignmentType.PREP_ASSIGNMENT.value,
@ -141,6 +151,8 @@ 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 = (
assignment_type_translation_keys[assignment_type]
@ -160,6 +172,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.title = title
self.evaluation_deadline.assignment_type_translation_key = (
assignment_type_translation_keys[assignment_type]
@ -208,6 +221,7 @@ 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_expert_url()
self.deadline.title = self.learning_content.title
self.deadline.page = self.learning_content.page_ptr
self.deadline.assignment_type_translation_key = (

View File

@ -38,6 +38,7 @@ class DueDateAdmin(admin.ModelAdmin):
"assignment_type_translation_key",
"date_type_translation_key",
"url",
"url_expert",
]
return default_readonly

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.20 on 2023-09-25 14:48
from django.db import migrations, models
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),
),
]

View File

@ -45,7 +45,13 @@ class DueDate(models.Model):
default="",
blank=True,
max_length=1024,
help_text="URL wird vom LearningContent übernommen",
help_text="URL wird vom LearningContent übernommen (sichtbar für Member/Teilnehmer)",
)
url_expert = models.CharField(
default="",
blank=True,
max_length=1024,
help_text="URL wird aus dem LearningContent generiert (sichtbar für den Experten/Trainer)",
)
course_session = models.ForeignKey(
"course.CourseSession",

View File

@ -17,6 +17,7 @@ class DueDateSerializer(serializers.ModelSerializer):
"date_type_translation_key",
"subtitle",
"url",
"url_expert",
"course_session",
"page",
"circle",
@ -24,6 +25,9 @@ class DueDateSerializer(serializers.ModelSerializer):
def get_circle(self, obj):
circle = obj.get_circle()
page = obj.page
if circle:
return {
"id": circle.id,