From 3f115990a72d8b55f4cefd7dae270c9125175a20 Mon Sep 17 00:00:00 2001 From: Olav Kihle Date: Tue, 3 Sep 2024 20:18:05 +0200 Subject: [PATCH] Include grade for users in waiting list --- lego/apps/events/serializers/events.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/lego/apps/events/serializers/events.py b/lego/apps/events/serializers/events.py index 8e11dc299..1c7bcab5f 100644 --- a/lego/apps/events/serializers/events.py +++ b/lego/apps/events/serializers/events.py @@ -544,15 +544,24 @@ def populate_event_registration_users_with_grade(event_dict): :param event_dict: :return: """ + + def get_grade(r): + user = r.get("user", {}) + abakus_groups = user.get("abakus_groups", []) + user["grade"] = None + for id in abakus_groups: + grade = grade_dict.get(id, None) + if grade: + user["grade"] = grade + grades = AbakusGroup.objects.filter(type=GROUP_GRADE).values("id", "name") grade_dict = {item["id"]: item for item in grades} + for pool in event_dict.get("pools", []): for registration in pool.get("registrations", []): - user = registration.get("user", {}) - abakus_groups = user.get("abakus_groups", []) - user["grade"] = None - for id in abakus_groups: - grade = grade_dict.get(id, None) - if grade: - user["grade"] = grade + get_grade(registration) + + for reg in event_dict.get("waiting_registrations", []): + get_grade(reg) + return event_dict