diff --git a/client/src/pages/userProfile/UserProfilePage.vue b/client/src/pages/userProfile/UserProfilePage.vue
index 7bd87afe..d21cfd0f 100644
--- a/client/src/pages/userProfile/UserProfilePage.vue
+++ b/client/src/pages/userProfile/UserProfilePage.vue
@@ -53,7 +53,12 @@ onMounted(() => {
{{ user.first_name }} {{ user.last_name }}
{{ user.email }}
-
{{ $t("a.Teilnehmer") }}
+
+ {{ $t("a.Teilnehmer") }}
+
+ ({{ $t("a.Optionale Anwesenheit") }})
+
+
diff --git a/server/vbv_lernwelt/core/serializers.py b/server/vbv_lernwelt/core/serializers.py
index 31965017..d099c6ee 100644
--- a/server/vbv_lernwelt/core/serializers.py
+++ b/server/vbv_lernwelt/core/serializers.py
@@ -55,6 +55,7 @@ class UserSerializer(serializers.ModelSerializer):
course_session_experts = serializers.SerializerMethodField()
country = CountrySerializer()
organisation_country = CountrySerializer()
+ optional_attendance = serializers.SerializerMethodField()
class Meta:
model = User
@@ -83,6 +84,7 @@ class UserSerializer(serializers.ModelSerializer):
"organisation_postal_code",
"organisation_city",
"organisation_country",
+ "optional_attendance",
]
read_only_fields = [
"id",
@@ -108,6 +110,11 @@ class UserSerializer(serializers.ModelSerializer):
return [str(_id) for _id in (supervisor_in_session_ids | expert_in_session_ids)]
+ def get_optional_attendance(self, obj: User) -> bool:
+ return CourseSessionUser.objects.filter(
+ user=obj, optional_attendance=True
+ ).values_list("course_session__id", flat=True)
+
def update(self, instance, validated_data):
country_data = validated_data.pop("country", None)
organisation_country_data = validated_data.pop("organisation_country", None)