Add `BERUFSBILDNER`-role

This commit is contained in:
Daniel Egger 2024-07-21 21:20:13 +02:00
parent 57384fcf5d
commit b6590c0b86
1 changed files with 13 additions and 15 deletions

View File

@ -66,6 +66,7 @@ class RoleKeyType(Enum):
MENTOR_UK = "MentorUK"
SUPERVISOR = "Supervisor"
TRAINER = "Trainer"
BERUFSBILDNER = "Berufsbildner"
@dataclass(frozen=True)
@ -89,7 +90,6 @@ class CourseConfig:
role_key: str
is_uk: bool
is_vv: bool
is_mentor: bool
widgets: List[str]
has_preview: bool
session_to_continue_id: str | None
@ -121,15 +121,15 @@ def get_course_sessions_with_roles_for_user(user: User) -> List[CourseSessionWit
result_course_sessions[cs.id] = cs
# enrich with mentor course sessions
lm_qs = AgentParticipantRelation.objects.filter(agent=user).prefetch_related(
agent_qs = AgentParticipantRelation.objects.filter(agent=user).prefetch_related(
"participant__course_session", "participant__course_session__course"
)
for lm in lm_qs:
cs = lm.participant.course_session
for agent_relation in agent_qs:
cs = agent_relation.participant.course_session
cs.roles = set()
cs = result_course_sessions.get(cs.id, cs)
cs.roles.add(lm.role)
cs.roles.add(agent_relation.role)
result_course_sessions[cs.id] = cs
return [
@ -358,7 +358,7 @@ def get_dashboard_due_dates(request):
def get_widgets_for_course(
role_key: RoleKeyType, is_uk: bool, is_vv: bool, is_mentor: bool
role_key: RoleKeyType, is_uk: bool, is_vv: bool
) -> List[str]:
widgets = []
@ -371,7 +371,7 @@ def get_widgets_for_course(
if role_key in [RoleKeyType.SUPERVISOR, RoleKeyType.TRAINER] and is_uk:
widgets.append(WidgetType.UK_STATISTICS_WIDGET.value)
if is_mentor:
if role_key in [RoleKeyType.MENTOR_UK, RoleKeyType.MENTOR_VV]:
widgets.append(WidgetType.MENTOR_PERSON_WIDGET.value)
if is_uk:
widgets.append(WidgetType.MENTOR_COMPETENCE_WIDGET.value)
@ -400,9 +400,10 @@ def get_role_key_and_mentor(
role = RoleKeyType.MENTOR_UK
elif is_vv:
role = RoleKeyType.MENTOR_VV
elif "BERUFSBILDNER" in roles:
role = RoleKeyType.BERUFSBILDNER
is_mentor = "LEARNING_MENTOR" in roles
return role, is_mentor
return role
def collect_course_sessions_by_course(
@ -444,7 +445,7 @@ def get_course_config(
for _id, cs_in_course in cs_by_course.items():
is_uk = cs_in_course[0].course.configuration.is_uk
is_vv = cs_in_course[0].course.configuration.is_vv
role_key, is_mentor = get_role_key_and_mentor(cs_in_course, is_uk, is_vv)
role_key = get_role_key_and_mentor(cs_in_course, is_uk, is_vv)
session_to_continue = get_newest_cs(cs_in_course)
course_configs.append(
CourseConfig(
@ -454,8 +455,7 @@ def get_course_config(
role_key=role_key.value,
is_uk=is_uk,
is_vv=is_vv,
is_mentor=is_mentor,
widgets=get_widgets_for_course(role_key, is_uk, is_vv, is_mentor),
widgets=get_widgets_for_course(role_key, is_uk, is_vv),
has_preview=has_preview(role_key),
session_to_continue_id=(
str(session_to_continue.id) if session_to_continue else None
@ -511,9 +511,7 @@ def get_mentor_open_tasks_count(request, course_id: str):
return Response(
status=200,
data={
"open_task_count": _get_mentor_open_tasks_count(
course_id, request.user
) # noqa
"open_task_count": _get_mentor_open_tasks_count(course_id, request.user) # noqa
},
)
except PermissionDenied as e: