Fix utils
This commit is contained in:
parent
77dce844d3
commit
ed1375ba33
|
|
@ -254,6 +254,7 @@ function exportData() {
|
|||
course_session_id: csId,
|
||||
generation: "",
|
||||
circle_id: "",
|
||||
region: "",
|
||||
});
|
||||
}
|
||||
exportDataAsXls(items, exportPersons, userStore.language);
|
||||
|
|
|
|||
|
|
@ -139,9 +139,7 @@ class PersonsExportTestCase(ExportBaseTestCase):
|
|||
self.assertEqual(wb.sheetnames[0], "Test Zürich 2022 a")
|
||||
wb.active = wb["Test Zürich 2022 a"]
|
||||
|
||||
data = self._generate_expected_data([[None] * 6])
|
||||
|
||||
self._check_export(wb, data, 1, 6)
|
||||
self._check_export(wb, [[None] * 6], 1, 6)
|
||||
|
||||
def test_export_in_fr(self):
|
||||
activate("fr")
|
||||
|
|
|
|||
|
|
@ -99,90 +99,98 @@ def create_person_list_with_roles(
|
|||
user, course_session_ids=None, include_private_data=False
|
||||
):
|
||||
def create_user_dict(user_object):
|
||||
def create_user_dict(user_object):
|
||||
return {
|
||||
"user_id": user_object.id,
|
||||
"first_name": user_object.first_name,
|
||||
"last_name": user_object.last_name,
|
||||
"email": user_object.email,
|
||||
"avatar_url_small": user_object.avatar_url_small,
|
||||
"avatar_url": user_object.avatar_url,
|
||||
"course_sessions": [],
|
||||
}
|
||||
|
||||
course_sessions = get_course_sessions_with_roles_for_user(user)
|
||||
|
||||
result_persons = {}
|
||||
for cs in course_sessions:
|
||||
if has_cs_role(cs.roles) and cs.course.configuration.is_uk:
|
||||
course_session_users = CourseSessionUser.objects.filter(
|
||||
course_session=cs.id
|
||||
).select_related("user")
|
||||
my_role = user_role(cs.roles)
|
||||
for csu in course_session_users:
|
||||
person_data = result_persons.get(
|
||||
csu.user.id, create_user_dict(csu.user)
|
||||
)
|
||||
person_data["course_sessions"].append(
|
||||
create_course_session_dict(cs, my_role, csu.role)
|
||||
)
|
||||
result_persons[csu.user.id] = person_data
|
||||
|
||||
# add persons where request.user is mentor
|
||||
for cs in course_sessions:
|
||||
|
||||
def _add_agent_relation(my_role, user_role):
|
||||
course_session_entry = create_course_session_dict(
|
||||
cs, my_role, user_role
|
||||
)
|
||||
participant_user = relation.participant.user
|
||||
|
||||
if participant_user.id not in result_persons:
|
||||
person_data = create_user_dict(participant_user)
|
||||
person_data["course_sessions"] = [course_session_entry]
|
||||
result_persons[participant_user.id] = person_data
|
||||
else:
|
||||
# user is already in result_persons
|
||||
result_persons[participant_user.id]["course_sessions"].append(
|
||||
course_session_entry
|
||||
)
|
||||
|
||||
if "LEARNING_MENTOR" in cs.roles:
|
||||
for relation in AgentParticipantRelation.objects.filter(
|
||||
agent=user,
|
||||
participant__course_session_id=cs.id,
|
||||
role="LEARNING_MENTOR",
|
||||
):
|
||||
_add_agent_relation("LEARNING_MENTOR", "PARTICIPANT")
|
||||
|
||||
if "BERUFSBILDNER" in cs.roles:
|
||||
for relation in AgentParticipantRelation.objects.filter(
|
||||
agent=user,
|
||||
participant__course_session_id=cs.id,
|
||||
role="BERUFSBILDNER",
|
||||
):
|
||||
_add_agent_relation("BERUFSBILDNER", "PARTICIPANT")
|
||||
|
||||
# add persons where request.user is lerning mentee
|
||||
mentor_relation_qs = AgentParticipantRelation.objects.filter(
|
||||
participant__user=user,
|
||||
role=AgentParticipantRoleType.LEARNING_MENTOR.value,
|
||||
).prefetch_related("agent")
|
||||
for mentor_relation in mentor_relation_qs:
|
||||
cs = mentor_relation.participant.course_session
|
||||
course_session_entry = create_course_session_dict(
|
||||
cs,
|
||||
"PARTICIPANT",
|
||||
"LEARNING_MENTOR",
|
||||
user_data = {
|
||||
"user_id": user_object.id,
|
||||
"first_name": user_object.first_name,
|
||||
"last_name": user_object.last_name,
|
||||
"email": user_object.email,
|
||||
"avatar_url_small": user_object.avatar_url_small,
|
||||
"avatar_url": user_object.avatar_url,
|
||||
"course_sessions": [],
|
||||
}
|
||||
if include_private_data:
|
||||
user_data["phone_number"] = user_object.phone_number
|
||||
user_data["Lehrvertragsnummer"] = user_object.additional_json_data.get(
|
||||
"Lehrvertragsnummer", ""
|
||||
)
|
||||
|
||||
if mentor_relation.agent.id not in result_persons:
|
||||
person_data = create_user_dict(mentor_relation.agent)
|
||||
return user_data
|
||||
|
||||
course_sessions = get_course_sessions_with_roles_for_user(user)
|
||||
if course_session_ids:
|
||||
course_sessions = [
|
||||
csr for csr in course_sessions if csr._original.id in course_session_ids
|
||||
]
|
||||
|
||||
result_persons = {}
|
||||
for cs in course_sessions:
|
||||
if has_cs_role(cs.roles) and cs.course.configuration.is_uk:
|
||||
course_session_users = CourseSessionUser.objects.filter(
|
||||
course_session=cs.id
|
||||
).select_related("user")
|
||||
my_role = user_role(cs.roles)
|
||||
for csu in course_session_users:
|
||||
person_data = result_persons.get(
|
||||
csu.user.id, create_user_dict(csu.user)
|
||||
)
|
||||
person_data["course_sessions"].append(
|
||||
create_course_session_dict(cs, my_role, csu.role)
|
||||
)
|
||||
result_persons[csu.user.id] = person_data
|
||||
|
||||
# add persons where request.user is mentor
|
||||
for cs in course_sessions:
|
||||
|
||||
def _add_agent_relation(my_role, user_role):
|
||||
course_session_entry = create_course_session_dict(cs, my_role, user_role)
|
||||
participant_user = relation.participant.user
|
||||
|
||||
if participant_user.id not in result_persons:
|
||||
person_data = create_user_dict(participant_user)
|
||||
person_data["course_sessions"] = [course_session_entry]
|
||||
result_persons[mentor_relation.agent.id] = person_data
|
||||
result_persons[participant_user.id] = person_data
|
||||
else:
|
||||
# user is already in result_persons
|
||||
result_persons[mentor_relation.agent.id]["course_sessions"].append(
|
||||
result_persons[participant_user.id]["course_sessions"].append(
|
||||
course_session_entry
|
||||
)
|
||||
return result_persons.values()
|
||||
|
||||
if "LEARNING_MENTOR" in cs.roles:
|
||||
for relation in AgentParticipantRelation.objects.filter(
|
||||
agent=user,
|
||||
participant__course_session_id=cs.id,
|
||||
role="LEARNING_MENTOR",
|
||||
):
|
||||
_add_agent_relation("LEARNING_MENTOR", "PARTICIPANT")
|
||||
|
||||
if "BERUFSBILDNER" in cs.roles:
|
||||
for relation in AgentParticipantRelation.objects.filter(
|
||||
agent=user,
|
||||
participant__course_session_id=cs.id,
|
||||
role="BERUFSBILDNER",
|
||||
):
|
||||
_add_agent_relation("BERUFSBILDNER", "PARTICIPANT")
|
||||
|
||||
# add persons where request.user is lerning mentee
|
||||
mentor_relation_qs = AgentParticipantRelation.objects.filter(
|
||||
participant__user=user,
|
||||
role=AgentParticipantRoleType.LEARNING_MENTOR.value,
|
||||
).prefetch_related("agent")
|
||||
for mentor_relation in mentor_relation_qs:
|
||||
cs = mentor_relation.participant.course_session
|
||||
course_session_entry = create_course_session_dict(
|
||||
cs,
|
||||
"PARTICIPANT",
|
||||
"LEARNING_MENTOR",
|
||||
)
|
||||
|
||||
if mentor_relation.agent.id not in result_persons:
|
||||
person_data = create_user_dict(mentor_relation.agent)
|
||||
person_data["course_sessions"] = [course_session_entry]
|
||||
result_persons[mentor_relation.agent.id] = person_data
|
||||
else:
|
||||
# user is already in result_persons
|
||||
result_persons[mentor_relation.agent.id]["course_sessions"].append(
|
||||
course_session_entry
|
||||
)
|
||||
return result_persons.values()
|
||||
|
|
|
|||
Loading…
Reference in New Issue