`get_recipients` should only fetch experts for the course session

This commit is contained in:
Daniel Egger 2023-11-02 16:52:02 +01:00
parent 052ddfba8d
commit c1e73f58e6
5 changed files with 23 additions and 4 deletions

View File

@ -19,6 +19,7 @@ DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER = [
# ids for cypress test data # ids for cypress test data
ADMIN_USER_ID = "872efd96-3bd7-4a1e-a239-2d72cad9f604" ADMIN_USER_ID = "872efd96-3bd7-4a1e-a239-2d72cad9f604"
TEST_TRAINER1_USER_ID = "b9e71f59-c44f-4290-b93a-9b3151e9a2fc" TEST_TRAINER1_USER_ID = "b9e71f59-c44f-4290-b93a-9b3151e9a2fc"
TEST_TRAINER2_USER_ID = "299941ae-1e4b-4f45-8180-876c3ad340b4"
TEST_STUDENT1_USER_ID = "65c73ad0-6d53-43a9-a4a4-64143f27b03a" TEST_STUDENT1_USER_ID = "65c73ad0-6d53-43a9-a4a4-64143f27b03a"
TEST_STUDENT2_USER_ID = "19c40d94-15cc-4198-aaad-ef707c4b0900" TEST_STUDENT2_USER_ID = "19c40d94-15cc-4198-aaad-ef707c4b0900"
TEST_STUDENT3_USER_ID = "bcf94dba-53bc-474b-a22d-e4af39aa042b" TEST_STUDENT3_USER_ID = "bcf94dba-53bc-474b-a22d-e4af39aa042b"

View File

@ -11,6 +11,7 @@ from vbv_lernwelt.core.constants import (
TEST_STUDENT2_USER_ID, TEST_STUDENT2_USER_ID,
TEST_STUDENT3_USER_ID, TEST_STUDENT3_USER_ID,
TEST_TRAINER1_USER_ID, TEST_TRAINER1_USER_ID,
TEST_TRAINER2_USER_ID,
) )
from vbv_lernwelt.core.models import User from vbv_lernwelt.core.models import User
@ -271,6 +272,13 @@ def create_default_users(user_model=User, group_model=Group, default_password=No
last_name="Trainer1", last_name="Trainer1",
avatar_url="/static/avatars/uk1.patrizia.huggel.jpg", avatar_url="/static/avatars/uk1.patrizia.huggel.jpg",
) )
_create_student_user(
id=TEST_TRAINER2_USER_ID,
email="test-trainer2@example.com",
first_name="Test",
last_name="Trainer2",
avatar_url="/static/avatars/uk1.christian.koller.jpg",
)
_create_student_user( _create_student_user(
id=TEST_STUDENT1_USER_ID, id=TEST_STUDENT1_USER_ID,
email="test-student1@example.com", email="test-student1@example.com",

View File

@ -199,6 +199,14 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
) )
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")) csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug"))
trainer2 = User.objects.get(email="test-trainer2@example.com")
csu = CourseSessionUser.objects.create(
course_session=cs_zurich,
user=trainer2,
role=CourseSessionUser.Role.EXPERT,
)
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug"))
student1 = User.objects.get(email="test-student1@example.com") student1 = User.objects.get(email="test-student1@example.com")
_csu = CourseSessionUser.objects.create( _csu = CourseSessionUser.objects.create(
course_session=cs_bern, course_session=cs_bern,

View File

@ -42,7 +42,7 @@ class EdoniqUserExportTestCase(TestCase):
users = fetch_course_session_users( users = fetch_course_session_users(
[COURSE_TEST_ID], role=CourseSessionUser.Role.EXPERT, excluded_domains=[] [COURSE_TEST_ID], role=CourseSessionUser.Role.EXPERT, excluded_domains=[]
) )
self.assertEqual(len(users), 1) self.assertEqual(len(users), 2)
def test_remove_eiger_versicherungen(self): def test_remove_eiger_versicherungen(self):
user1 = User.objects.get(email="test-student1@example.com") user1 = User.objects.get(email="test-student1@example.com")
@ -55,7 +55,7 @@ class EdoniqUserExportTestCase(TestCase):
def test_export_students_and_trainers(self): def test_export_students_and_trainers(self):
users = fetch_course_session_all_users([COURSE_TEST_ID], excluded_domains=[]) users = fetch_course_session_all_users([COURSE_TEST_ID], excluded_domains=[])
self.assertEqual(len(users), 4) self.assertEqual(len(users), 5)
def test_deduplicates_users(self): def test_deduplicates_users(self):
trainer1 = User.objects.get(email="test-trainer1@example.com") trainer1 = User.objects.get(email="test-trainer1@example.com")
@ -67,7 +67,7 @@ class EdoniqUserExportTestCase(TestCase):
user=trainer1, user=trainer1,
) )
users = fetch_course_session_all_users([COURSE_TEST_ID], excluded_domains=[]) users = fetch_course_session_all_users([COURSE_TEST_ID], excluded_domains=[])
self.assertEqual(len(users), 4) self.assertEqual(len(users), 5)
def test_response_csv(self): def test_response_csv(self):
users = fetch_course_session_users([COURSE_TEST_ID], excluded_domains=[]) users = fetch_course_session_users([COURSE_TEST_ID], excluded_domains=[])

View File

@ -62,8 +62,10 @@ def get_recipients(
cs_id = attendance_course.course_session.id cs_id = attendance_course.course_session.id
circle_page = attendance_course.learning_content.get_parent_circle() circle_page = attendance_course.learning_content.get_parent_circle()
circle = Circle.objects.get(page_ptr=circle_page.id) circle = Circle.objects.get(page_ptr=circle_page.id)
experts = circle.expert.all()
members = CourseSessionUser.objects.filter( members = CourseSessionUser.objects.filter(
course_session_id=cs_id, role=CourseSessionUser.Role.MEMBER course_session_id=cs_id, role=CourseSessionUser.Role.MEMBER
) )
experts = CourseSessionUser.objects.filter(
course_session_id=cs_id, role=CourseSessionUser.Role.EXPERT, expert=circle
)
return members | experts return members | experts