From 963250a8da8161d2bbd8ae5ab16098bfe060e903 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Fri, 2 Dec 2022 13:58:50 +0100 Subject: [PATCH] Add role to course session user --- client/tailwind.config.js | 14 ++--- server/config/urls.py | 8 +-- .../commands/create_default_courses.py | 53 ++++++++++--------- .../course/migrations/0006_course_slug.py | 14 +++-- .../migrations/0007_coursesessionuser_role.py | 26 +++++++++ server/vbv_lernwelt/course/models.py | 7 +++ 6 files changed, 83 insertions(+), 39 deletions(-) create mode 100644 server/vbv_lernwelt/course/migrations/0007_coursesessionuser_role.py diff --git a/client/tailwind.config.js b/client/tailwind.config.js index 3e86f01c..024734b7 100644 --- a/client/tailwind.config.js +++ b/client/tailwind.config.js @@ -12,10 +12,10 @@ module.exports = { sans: ["Buenos Aires", "sans-serif"], }, backgroundSize: { - 'auto': 'auto', - 'cover': 'cover', - 'contain': 'contain', - '60': '3.75rem', + auto: "auto", + cover: "cover", + contain: "contain", + 60: "3.75rem", }, extend: { spacing: { @@ -29,9 +29,9 @@ module.exports = { "handlungsfelder-overview": "url('/static/icons/icon-handlungsfelder-overview.svg')", "lernmedien-overview": "url('/static/icons/icon-lernmedien-overview.svg')", - "assignment": "url('/static/icons/icon-lc-assignment.svg')", - "feedback": "url('/static/icons/icon-feedback.svg')", - "test": "url('/static/icons/icon-lc-test.svg')", + assignment: "url('/static/icons/icon-lc-assignment.svg')", + feedback: "url('/static/icons/icon-feedback.svg')", + test: "url('/static/icons/icon-lc-test.svg')", }, borderColor: (theme) => ({ DEFAULT: theme("colors.gray.500"), diff --git a/server/config/urls.py b/server/config/urls.py index 2d5c3f74..95e99b31 100644 --- a/server/config/urls.py +++ b/server/config/urls.py @@ -7,9 +7,6 @@ from django.urls import include, path, re_path from django.views import defaults as default_views from grapple import urls as grapple_urls from ratelimit.exceptions import Ratelimited -from wagtail import urls as wagtail_urls -from wagtail.admin import urls as wagtailadmin_urls -from wagtail.documents import urls as wagtaildocs_urls from vbv_lernwelt.core.middleware.auth import django_view_authentication_exempt from vbv_lernwelt.core.views import ( @@ -25,11 +22,14 @@ from vbv_lernwelt.core.views import ( ) from vbv_lernwelt.course.views import ( course_page_api_view, + get_course_session_users, get_course_sessions, mark_course_completion, request_course_completion, - get_course_session_users, ) +from wagtail import urls as wagtail_urls +from wagtail.admin import urls as wagtailadmin_urls +from wagtail.documents import urls as wagtaildocs_urls def raise_example_error(request): diff --git a/server/vbv_lernwelt/course/management/commands/create_default_courses.py b/server/vbv_lernwelt/course/management/commands/create_default_courses.py index 2d0f6a0c..0d7a770d 100644 --- a/server/vbv_lernwelt/course/management/commands/create_default_courses.py +++ b/server/vbv_lernwelt/course/management/commands/create_default_courses.py @@ -75,6 +75,7 @@ def command(): csu = CourseSessionUser.objects.create( course_session=cs, user=User.objects.get(username="expert-vv.einstieg@eiger-versicherungen.ch"), + role=CourseSessionUser.Role.EXPERT, ) csu.expert.add( Circle.objects.get(slug="versicherungsvermittlerin-lp-circle-einstieg") @@ -82,6 +83,7 @@ def command(): csu = CourseSessionUser.objects.create( course_session=cs, user=User.objects.get(username="expert-vv.analyse@eiger-versicherungen.ch"), + role=CourseSessionUser.Role.EXPERT, ) csu.expert.add( Circle.objects.get(slug="versicherungsvermittlerin-lp-circle-analyse") @@ -92,30 +94,31 @@ def command(): course_id=COURSE_UK1, title="Überbetriebliche Kurse Lehrjahr 1 - Region Bern", ) - for user_data in default_users: - CourseSessionUser.objects.create( - course_session=cs, - user=User.objects.get(username=user_data["email"]), - ) - csu = CourseSessionUser.objects.create( - course_session=cs, - user=User.objects.get(username="trainer-uk1.einstieg@eiger-versicherungen.ch"), - ) - csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-einstieg")) - csu = CourseSessionUser.objects.create( - course_session=cs, - user=User.objects.get(username="trainer-uk1.analyse@eiger-versicherungen.ch"), - ) - csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-analyse")) - csu = CourseSessionUser.objects.create( - course_session=cs, - user=User.objects.get(username="student-uk1-bern@eiger-versicherungen.ch"), - ) + # for user_data in default_users: + # CourseSessionUser.objects.create( + # course_session=cs, + # user=User.objects.get(username=user_data["email"]), + # ) + # csu = CourseSessionUser.objects.create( + # course_session=cs, + # user=User.objects.get(username="trainer-uk1.einstieg@eiger-versicherungen.ch"), + # ) + # csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-einstieg")) + # csu = CourseSessionUser.objects.create( + # course_session=cs, + # user=User.objects.get(username="trainer-uk1.analyse@eiger-versicherungen.ch"), + # ) + # csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-analyse")) + # csu = CourseSessionUser.objects.create( + # course_session=cs, + # user=User.objects.get(username="student-uk1-bern@eiger-versicherungen.ch"), + # ) # figma demo users csu = CourseSessionUser.objects.create( course_session=cs, user=User.objects.get(username="patrizia.huggel@eiger-versicherung.ch"), + role=CourseSessionUser.Role.EXPERT, ) csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-einstieg")) csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-analyse")) @@ -138,19 +141,21 @@ def command(): course_id=COURSE_UK1, title="Überbetriebliche Kurse Lehrjahr 1 - Region Zürich", ) - for user_data in default_users: - CourseSessionUser.objects.create( - course_session=cs, - user=User.objects.get(username=user_data["email"]), - ) + # for user_data in default_users: + # CourseSessionUser.objects.create( + # course_session=cs, + # user=User.objects.get(username=user_data["email"]), + # ) csu = CourseSessionUser.objects.create( course_session=cs, user=User.objects.get(username="trainer-uk1.einstieg@eiger-versicherungen.ch"), + role=CourseSessionUser.Role.EXPERT, ) csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-einstieg")) csu = CourseSessionUser.objects.create( course_session=cs, user=User.objects.get(username="trainer-uk1.analyse@eiger-versicherungen.ch"), + role=CourseSessionUser.Role.EXPERT, ) csu.expert.add(Circle.objects.get(slug="überbetriebliche-kurse-lp-circle-analyse")) csu = CourseSessionUser.objects.create( diff --git a/server/vbv_lernwelt/course/migrations/0006_course_slug.py b/server/vbv_lernwelt/course/migrations/0006_course_slug.py index c5362f1a..d5356cfd 100644 --- a/server/vbv_lernwelt/course/migrations/0006_course_slug.py +++ b/server/vbv_lernwelt/course/migrations/0006_course_slug.py @@ -6,13 +6,19 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('course', '0005_alter_coursesessionuser_expert'), + ("course", "0005_alter_coursesessionuser_expert"), ] operations = [ migrations.AddField( - model_name='course', - name='slug', - field=models.SlugField(allow_unicode=True, blank=True, max_length=255, unique=True, verbose_name='Slug'), + model_name="course", + name="slug", + field=models.SlugField( + allow_unicode=True, + blank=True, + max_length=255, + unique=True, + verbose_name="Slug", + ), ), ] diff --git a/server/vbv_lernwelt/course/migrations/0007_coursesessionuser_role.py b/server/vbv_lernwelt/course/migrations/0007_coursesessionuser_role.py new file mode 100644 index 00000000..810359a5 --- /dev/null +++ b/server/vbv_lernwelt/course/migrations/0007_coursesessionuser_role.py @@ -0,0 +1,26 @@ +# Generated by Django 3.2.13 on 2022-12-02 12:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("course", "0006_course_slug"), + ] + + operations = [ + migrations.AddField( + model_name="coursesessionuser", + name="role", + field=models.CharField( + choices=[ + ("MEMBER", "Teilnehmer"), + ("EXPERT", "Experte/Trainer"), + ("TUTOR", "Lernbegleitung"), + ], + default="MEMBER", + max_length=255, + ), + ), + ] diff --git a/server/vbv_lernwelt/course/models.py b/server/vbv_lernwelt/course/models.py index b84fe36f..4da40431 100644 --- a/server/vbv_lernwelt/course/models.py +++ b/server/vbv_lernwelt/course/models.py @@ -200,6 +200,13 @@ class CourseSessionUser(models.Model): course_session = models.ForeignKey("course.CourseSession", on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) + class Role(models.TextChoices): + MEMBER = "MEMBER", _("Teilnehmer") + EXPERT = "EXPERT", _("Experte/Trainer") + TUTOR = "TUTOR", _("Lernbegleitung") + + role = models.CharField(choices=Role.choices, max_length=255, default=Role.MEMBER) + expert = models.ManyToManyField( "learnpath.Circle", related_name="expert", blank=True )