From d750a19d24308159e19db58645a09c07f036e0c3 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Thu, 25 Jul 2024 08:44:10 +0200 Subject: [PATCH 1/7] Add migration and admin field --- server/vbv_lernwelt/course/admin.py | 4 ++- ...essionuser_required_attendance_and_more.py | 32 +++++++++++++++++++ server/vbv_lernwelt/course/models.py | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 server/vbv_lernwelt/course/migrations/0009_coursesessionuser_required_attendance_and_more.py diff --git a/server/vbv_lernwelt/course/admin.py b/server/vbv_lernwelt/course/admin.py index 4a4741f3..8ec26bb9 100644 --- a/server/vbv_lernwelt/course/admin.py +++ b/server/vbv_lernwelt/course/admin.py @@ -64,6 +64,7 @@ class CourseSessionUserAdmin(admin.ModelAdmin): "course_session", "role", "circles", + "optional_attendance", # "created_at", # "updated_at", ] @@ -76,6 +77,7 @@ class CourseSessionUserAdmin(admin.ModelAdmin): list_filter = [ "role", "course_session", + "optional_attendance", ] raw_id_fields = [ "user", @@ -97,7 +99,7 @@ class CourseSessionUserAdmin(admin.ModelAdmin): return ", ".join([c.title for c in obj.expert.all()]) fieldsets = [ - (None, {"fields": ("user", "course_session", "role")}), + (None, {"fields": ("user", "course_session", "role", "optional_attendance")}), ( "Expert/Trainer", { diff --git a/server/vbv_lernwelt/course/migrations/0009_coursesessionuser_required_attendance_and_more.py b/server/vbv_lernwelt/course/migrations/0009_coursesessionuser_required_attendance_and_more.py new file mode 100644 index 00000000..3c7fe2f8 --- /dev/null +++ b/server/vbv_lernwelt/course/migrations/0009_coursesessionuser_required_attendance_and_more.py @@ -0,0 +1,32 @@ +# Generated by Django 4.2.13 on 2024-07-25 05:47 + +from django.db import migrations, models + +import vbv_lernwelt.course.models + + +class Migration(migrations.Migration): + dependencies = [ + ("course", "0008_auto_20240403_1132"), + ] + + operations = [ + migrations.AddField( + model_name="coursesessionuser", + name="optional_attendance", + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name="coursecompletion", + name="completion_status", + field=models.CharField( + choices=[ + ("SUCCESS", "Success"), + ("FAIL", "Fail"), + ("UNKNOWN", "Unknown"), + ], + default=vbv_lernwelt.course.models.CourseCompletionStatus["UNKNOWN"], + max_length=255, + ), + ), + ] diff --git a/server/vbv_lernwelt/course/models.py b/server/vbv_lernwelt/course/models.py index d8b6997a..d85c6a9a 100644 --- a/server/vbv_lernwelt/course/models.py +++ b/server/vbv_lernwelt/course/models.py @@ -283,6 +283,7 @@ class CourseSessionUser(models.Model): expert = models.ManyToManyField( "learnpath.Circle", related_name="expert", blank=True ) + optional_attendance = models.BooleanField(default=False) class Meta: constraints = [ From dec5691d8f7143e83784b44065dc7e39d3394f13 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Thu, 25 Jul 2024 09:52:15 +0200 Subject: [PATCH 2/7] Add info to attendance page --- client/src/components/ui/ItPersonRow.vue | 16 ++++++++++++---- client/src/gql/gql.ts | 4 ++-- client/src/gql/graphql.ts | 5 +++-- client/src/gql/schema.graphql | 1 + client/src/graphql/queries.ts | 1 + .../attendanceCheckPage/AttendanceCheckPage.vue | 3 +++ server/vbv_lernwelt/course/graphql/types.py | 2 ++ 7 files changed, 24 insertions(+), 8 deletions(-) diff --git a/client/src/components/ui/ItPersonRow.vue b/client/src/components/ui/ItPersonRow.vue index 98f2792b..addb6356 100644 --- a/client/src/components/ui/ItPersonRow.vue +++ b/client/src/components/ui/ItPersonRow.vue @@ -1,18 +1,26 @@