Add circle title to dropdown text

This commit is contained in:
Daniel Egger 2023-09-06 16:58:49 +02:00
parent abe923b2e4
commit 6175ca75ed
5 changed files with 26 additions and 9 deletions

View File

@ -29,9 +29,9 @@ const presenceCoursesDropdownOptions = computed(() => {
(attendanceCourse) =>
({
id: attendanceCourse.id,
name: `${t("Präsenzkurs")} ${dayjs(attendanceCourse.start).format(
"DD.MM.YYYY"
)}`,
name: `${t("Präsenzkurs")} ${attendanceCourse.circle_title} ${dayjs(
attendanceCourse.start
).format("DD.MM.YYYY")}`,
} as DropdownSelectable)
);
});

View File

@ -425,6 +425,7 @@ export interface CourseSessionAttendanceCourse {
location: string;
trainer: string;
due_date_id: number;
circle_title: string;
}
export interface CourseSessionAssignment {

View File

@ -24,6 +24,7 @@ class CourseSessionAttendanceCourseAdmin(admin.ModelAdmin):
"start_date",
"end_date",
"trainer",
"location",
]
list_filter = ["course_session__course", "course_session"]
@ -38,12 +39,10 @@ class CourseSessionAttendanceCourseAdmin(admin.ModelAdmin):
end_date.admin_order_field = "due_date__end"
def circle(self, obj):
try:
return obj.learning_content.get_ancestors().exact_type(Circle).first().title
except Exception:
# noop
pass
return None
circle = obj.get_circle()
if circle:
return circle.title
return ""
# Create a method that serves as a form field
def circle_display(self, obj=None):

View File

@ -3,6 +3,7 @@ from django_jsonform.models.fields import JSONField as JSONSchemaField
from vbv_lernwelt.assignment.models import AssignmentType
from vbv_lernwelt.duedate.models import DueDate
from vbv_lernwelt.learnpath.models import Circle
class CourseSessionAttendanceCourse(models.Model):
@ -73,6 +74,14 @@ class CourseSessionAttendanceCourse(models.Model):
super().save(*args, **kwargs)
def get_circle(self):
try:
return self.learning_content.get_ancestors().exact_type(Circle).first()
except Exception:
# noop
pass
return None
def __str__(self):
return f"{self.course_session} - {self.learning_content}"

View File

@ -9,6 +9,7 @@ from vbv_lernwelt.course_session.models import (
class CourseSessionAttendanceCourseSerializer(serializers.ModelSerializer):
start = serializers.SerializerMethodField()
end = serializers.SerializerMethodField()
circle_title = serializers.SerializerMethodField()
class Meta:
model = CourseSessionAttendanceCourse
@ -21,6 +22,7 @@ class CourseSessionAttendanceCourseSerializer(serializers.ModelSerializer):
"trainer",
"start",
"end",
"circle_title",
]
def get_start(self, obj):
@ -29,6 +31,12 @@ class CourseSessionAttendanceCourseSerializer(serializers.ModelSerializer):
def get_end(self, obj):
return obj.due_date.end
def get_circle_title(self, obj):
circle = obj.get_circle()
if circle:
return circle.title
return ""
class CourseSessionAssignmentSerializer(serializers.ModelSerializer):
submission_deadline_start = serializers.SerializerMethodField()