-
{{ $t("a.Selbst- und Fremdeinschätzungen") }}
+ {{ headerTitle }}
For the user who requests feedback
path(
- "requester//feedbacks/summaries",
+ "requester//feedbacks/summaries",
get_self_evaluation_feedbacks_as_requester,
name="get_self_evaluation_feedbacks_as_requester",
),
diff --git a/server/vbv_lernwelt/self_evaluation_feedback/utils.py b/server/vbv_lernwelt/self_evaluation_feedback/utils.py
index 5d2563b0..5a0b2672 100644
--- a/server/vbv_lernwelt/self_evaluation_feedback/utils.py
+++ b/server/vbv_lernwelt/self_evaluation_feedback/utils.py
@@ -17,6 +17,10 @@ class AssessmentCounts(NamedTuple):
fail_count: int
unknown_count: int
+ @property
+ def total_count(self):
+ return self.pass_count + self.fail_count + self.unknown_count
+
def get_self_evaluation_feedback_counts(
feedback: SelfEvaluationFeedback,
diff --git a/server/vbv_lernwelt/self_evaluation_feedback/views.py b/server/vbv_lernwelt/self_evaluation_feedback/views.py
index 945e71e8..c5be33f5 100644
--- a/server/vbv_lernwelt/self_evaluation_feedback/views.py
+++ b/server/vbv_lernwelt/self_evaluation_feedback/views.py
@@ -23,9 +23,9 @@ from vbv_lernwelt.self_evaluation_feedback.serializers import (
SelfEvaluationFeedbackSerializer,
)
from vbv_lernwelt.self_evaluation_feedback.utils import (
- calculate_aggregate,
get_self_assessment_counts,
get_self_evaluation_feedback_counts,
+ AssessmentCounts,
)
logger = structlog.get_logger(__name__)
@@ -105,7 +105,6 @@ def get_self_evaluation_feedbacks_as_requester(request, course_session_id: int):
all_feedback_assessment_counts = []
for learning_unit in LearningUnit.objects.filter(
- feedback_user=LearningUnitPerformanceFeedbackType.MENTOR_FEEDBACK.value,
course_category__course=course_session.course,
):
# this is not a problem in real life, but in the test environment
@@ -161,12 +160,34 @@ def get_self_evaluation_feedbacks_as_requester(request, course_session_id: int):
}
)
- self_assessment_counts_aggregate = calculate_aggregate(
- counts=all_self_assessment_counts
+ self_assessment_counts_aggregate = AssessmentCounts(
+ pass_count=sum(x.pass_count for x in all_self_assessment_counts),
+ fail_count=sum(x.fail_count for x in all_self_assessment_counts),
+ unknown_count=sum(x.unknown_count for x in all_self_assessment_counts),
+ )
+ received_feedback_counts_aggregate = AssessmentCounts(
+ pass_count=sum(x.pass_count for x in all_feedback_assessment_counts),
+ fail_count=sum(x.fail_count for x in all_feedback_assessment_counts),
+ unknown_count=sum(x.unknown_count for x in all_feedback_assessment_counts),
)
- feedback_assessment_counts_aggregate = calculate_aggregate(
- counts=all_feedback_assessment_counts
+ # pad the feedback counts with unknowns for the
+ # learning units where we have no feedback yet
+ feedback_assessment_counts_aggregate = AssessmentCounts(
+ pass_count=received_feedback_counts_aggregate.pass_count,
+ fail_count=received_feedback_counts_aggregate.fail_count,
+ unknown_count=self_assessment_counts_aggregate.total_count
+ - received_feedback_counts_aggregate.total_count
+ + received_feedback_counts_aggregate.unknown_count,
+ )
+
+ # check if there are any learning units with mentor feedback
+ feedback_assessment_visible = (
+ LearningUnit.objects.filter(
+ feedback_user=LearningUnitPerformanceFeedbackType.MENTOR_FEEDBACK.value,
+ course_category__course=course_session.course,
+ ).count()
+ > 0
)
return Response(
@@ -176,6 +197,7 @@ def get_self_evaluation_feedbacks_as_requester(request, course_session_id: int):
Circle.objects.filter(id__in=circle_ids).values("id", "title")
),
"aggregates": {
+ "feedback_assessment_visible": feedback_assessment_visible,
"feedback_assessment": {
"pass": feedback_assessment_counts_aggregate.pass_count,
"fail": feedback_assessment_counts_aggregate.fail_count,