Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/modules/program-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
| пустой путь | GET | Основное, даты, режим программы, `updated_at`, материалы |
| `participants/` | GET | DRF `count/next/previous/results`, ФИО, почта, город, регистрация именно в программе |
| `projects/` | GET | Связи Project × Program, руководитель, сдача, оценивание, кейс и презентация |
| `projects/:link_id/team/` | GET | Руководитель и действующие Collaborator, без приглашений и изменений команды |
| `projects/:link_id/team/` | GET | Руководитель и действующие Collaborator: id, имя, роль, почта и nullable avatar; без приглашений и изменений команды |
| `projects/:link_id/evaluation/` | GET | Оценки критериев этой программы, реальные назначения и `can_rate` |
| `settings/basic/` | PATCH | Только поля содержания и изображений из макета |
| `settings/dates/` | PATCH | Только пять календарных полей из макета |
Expand Down
4 changes: 4 additions & 0 deletions partner_programs/services/management.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,13 +153,17 @@ def team_data(link):
"id": project.leader_id,
"name": person_name(project.leader),
"role": "Руководитель",
"email": project.leader.email or None,
"avatar": project.leader.avatar or None,
}
]
people.extend(
{
"id": member.user_id,
"name": person_name(member.user),
"role": member.role or "Участник команды",
"email": member.user.email or None,
"avatar": member.user.avatar or None,
}
for member in project.collaborator_set.select_related("user")
.exclude(user_id=project.leader_id)
Expand Down
8 changes: 7 additions & 1 deletion partner_programs/tests/test_management_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def test_projects_use_link_submission_and_current_program_scores(self):
)

def test_team_is_read_only_and_scoped_to_link(self):
member = create_user()
member = create_user(avatar="https://example.com/member-avatar.png")
Collaborator.objects.bulk_create(
[Collaborator(project=self.project, user=member, role="Разработчик")]
)
Expand All @@ -168,6 +168,12 @@ def test_team_is_read_only_and_scoped_to_link(self):
[m["id"] for m in response.data["members"]],
[self.project.leader_id, member.pk],
)
leader, teammate = response.data["members"]
self.assertEqual(leader["email"], self.project.leader.email)
self.assertEqual(leader["avatar"], self.project.leader.avatar or None)
self.assertEqual(teammate["email"], member.email)
self.assertEqual(teammate["avatar"], member.avatar)
self.assertEqual(teammate["role"], "Разработчик")
self.assertEqual(
self.client.get(
self.url("management-team", link_id=self.foreign_link.pk)
Expand Down
Loading