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)