From 18c21e00e79a1d9dbd6ee9e983a45e8ce36753ea Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Wed, 28 Jun 2023 10:40:15 +0200 Subject: [PATCH] Update participants, add staff group --- .../vbv_lernwelt/core/create_default_users.py | 53 +++++++++++++++++- .../tests/Schulungen_Teilnehmende.xlsx | Bin 16442 -> 16486 bytes .../importer/tests/test_import_students.py | 2 +- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/server/vbv_lernwelt/core/create_default_users.py b/server/vbv_lernwelt/core/create_default_users.py index 45215a00..0366bcf7 100644 --- a/server/vbv_lernwelt/core/create_default_users.py +++ b/server/vbv_lernwelt/core/create_default_users.py @@ -1,5 +1,5 @@ from django.contrib.auth.hashers import make_password -from django.contrib.auth.models import Group +from django.contrib.auth.models import Group, Permission from environs import Env env = Env() @@ -13,6 +13,8 @@ from vbv_lernwelt.core.constants import ( ) from vbv_lernwelt.core.models import User +VBV_STAFF_GROUP = "VBV Staff" + default_users = [ { "email": "student", @@ -109,6 +111,18 @@ def create_default_users(user_model=User, group_model=Group, default_password=No admin_user.groups.add(admin_group) admin_user.save() + def _create_staff_user( + email, first_name, last_name, id=None, password=default_password + ): + staff_user, created = _get_or_create_user( + user_model=user_model, username=email, password=password, id=id + ) + staff_user.is_staff = True + staff_user.first_name = first_name + staff_user.last_name = last_name + staff_user.groups.add(_get_or_create_vbv_staff_group()) + staff_user.save() + _create_admin_user( email="info@iterativ.ch", first_name="Info", @@ -270,6 +284,11 @@ def create_default_users(user_model=User, group_model=Group, default_password=No last_name="Student2", avatar_url="/static/avatars/uk1.lina.egger.jpg", ) + _create_staff_user( + email="matthias.wirth@vbv-afa.ch", + first_name="Matthias", + last_name="Wirth", + ) def _get_or_create_user(user_model, *args, **kwargs): @@ -291,3 +310,35 @@ def _get_or_create_user(user_model, *args, **kwargs): ) created = True return user, created + + +def _get_or_create_vbv_staff_group(): + group, created = Group.objects.get_or_create(name=VBV_STAFF_GROUP) + if not created: + return group + + permission_codenames = [ + "add_user", + "change_user", + "delete_user", + "view_user", + "add_coursesession", + "change_coursesession", + "delete_coursesession", + "view_coursesession", + "add_coursesessionuser", + "change_coursesessionuser", + "delete_coursesessionuser", + "view_coursesessionuser", + ] + + for codename in permission_codenames: + try: + permission = Permission.objects.get(codename=codename) + except Permission.DoesNotExist: + print(f"Permission with codename '{codename}' does not exist.") + continue + + group.permissions.add(permission) + + return group diff --git a/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx b/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx index f96d533be034514f3533c9b8959779158d05664b..8c27b85ac945c0d68821fe1e458f2c466eeab76a 100644 GIT binary patch delta 7514 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 delta 7517 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 A9{>OV diff --git a/server/vbv_lernwelt/importer/tests/test_import_students.py b/server/vbv_lernwelt/importer/tests/test_import_students.py index 98de80b2..a3ad9f5e 100644 --- a/server/vbv_lernwelt/importer/tests/test_import_students.py +++ b/server/vbv_lernwelt/importer/tests/test_import_students.py @@ -31,7 +31,7 @@ class ImportStudentsTestCase(TestCase): print(row) create_or_update_student(dict(row)) - self.assertEqual(CourseSessionUser.objects.count(), 14) + self.assertEqual(CourseSessionUser.objects.count(), 15) class CreateOrUpdateStudentTestCase(TestCase):