From e278ef0a79fbd9ef33b9fa5af1ac7e3e6145c8eb Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Mon, 6 May 2024 11:44:58 +0000 Subject: [PATCH] fixes #3672 Closes #3672 Merge request studip/studip!2649 --- app/controllers/course/statusgroups.php | 16 ++++++++++++ app/views/course/dates/_date_row.php | 17 ++++++++++++- app/views/course/statusgroups/details.php | 30 +++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 app/views/course/statusgroups/details.php diff --git a/app/controllers/course/statusgroups.php b/app/controllers/course/statusgroups.php index c15733dfc46..48939bdea8d 100644 --- a/app/controllers/course/statusgroups.php +++ b/app/controllers/course/statusgroups.php @@ -1487,4 +1487,20 @@ class Course_StatusgroupsController extends AuthenticatedController return $members->orderBy($order); } + + public function details_action(Statusgruppen $group): void + { + $course = Course::findCurrent(); + + if ($course->id !== $group->range_id) { + throw new AccessDeniedException(); + } + + PageLayout::setTitle(sprintf( + _('Personen der Gruppe %s'), + $group->name + )); + + $this->group = $group; + } } diff --git a/app/views/course/dates/_date_row.php b/app/views/course/dates/_date_row.php index 0246455cf82..8aea8b36505 100644 --- a/app/views/course/dates/_date_row.php +++ b/app/views/course/dates/_date_row.php @@ -1,4 +1,15 @@ <?php +/** + * @var bool $show_raumzeit + * @var bool $has_access + * @var bool $is_next_date + * @var bool $cancelled_dates_locked + * @var Course_DatesController $controller + * @var CourseDate $date + * @var Course $course + */ +?> +<?php $icon = 'date'; $dialog_url = $show_raumzeit ? $controller->url_for('course/dates/details/' . $date->id) @@ -30,7 +41,11 @@ $dialog_url = $show_raumzeit <? if (count($date->statusgruppen) > 0) : ?> <ul class="clean"> <? foreach ($date->statusgruppen as $statusgruppe) : ?> - <li><?= htmlReady($statusgruppe->name) ?></li> + <li> + <a href="<?= $controller->link_for('course/statusgroups/details', $statusgruppe) ?>" data-dialog="size=default"> + <?= htmlReady($statusgruppe->name) ?> + </a> + </li> <? endforeach ?> </ul> <? else : ?> diff --git a/app/views/course/statusgroups/details.php b/app/views/course/statusgroups/details.php new file mode 100644 index 00000000000..db807777b55 --- /dev/null +++ b/app/views/course/statusgroups/details.php @@ -0,0 +1,30 @@ +<?php +/** + * @var Statusgruppen $group + */ +?> +<table class="default"> + <caption class="hide-in-dialog"> + <?= sprintf(_('Gruppe %s'), htmlReady($group->name)) ?> + </caption> + <colgroup> + <col style="width: 32px"> + <col> + </colgroup> + <tbody> + <? foreach ($group->members as $member): ?> + <tr> + <td> + <a href="<?= URLHelper::getLink('dispatch.php/profile', ['username' => $member->user->username], true) ?>"> + <?= $member->avatar() ?> + </a> + </td> + <td> + <a href="<?= URLHelper::getLink('dispatch.php/profile', ['username' => $member->user->username], true) ?>"> + <?= htmlReady($member->user->getFullname()) ?> + </a> + </td> + </tr> + <? endforeach; ?> + </tbody> +</table> -- GitLab