From e07ed1c86ffd83682ebcccaf6b26ae2b9811a7ce Mon Sep 17 00:00:00 2001 From: Moritz Strohm <strohm@data-quest.de> Date: Mon, 20 Sep 2021 07:59:21 +0000 Subject: [PATCH] TIC #93 --- app/controllers/resources/room_request.php | 32 +++++++++++++++-- app/views/resources/room_request/overview.php | 34 +++++++++++++++---- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php index b6568a4f4ea..c54b6683dc8 100644 --- a/app/controllers/resources/room_request.php +++ b/app/controllers/resources/room_request.php @@ -53,7 +53,8 @@ class Resources_RoomRequestController extends AuthenticatedController if (Request::get('reset_filter')) { $this->filter = [ 'marked' => -1, - 'own_requests' => 1 + 'own_requests' => 1, + 'request_status' => 'open' ]; } else { if (Request::option('institut_id')) { @@ -62,6 +63,9 @@ class Resources_RoomRequestController extends AuthenticatedController if (Request::option('semester_id')) { $GLOBALS['user']->cfg->store('MY_COURSES_SELECTED_CYCLE', Request::option('semester_id')); } + if (Request::option('request_status')) { + $this->filter['request_status'] = Request::get('request_status'); + } if (!Semester::find($GLOBALS['user']->cfg->MY_COURSES_SELECTED_CYCLE)) { $GLOBALS['user']->cfg->MY_COURSES_SELECTED_CYCLE = Semester::findCurrent()->id; } @@ -183,7 +187,15 @@ class Resources_RoomRequestController extends AuthenticatedController */ protected function getFilteredRoomRequests() { - $sql = "resource_requests.closed < '1' AND (resource_id IN ( :room_ids) "; + $sql = ''; + if ($this->filter['request_status'] == 'closed') { + $sql .= "resource_requests.closed IN ('1', '2') "; + } elseif ($this->filter['request_status'] == 'denied') { + $sql .= "resource_requests.closed = '3' "; + } else { + $sql .= "resource_requests.closed < '1' "; + } + $sql .= "AND (resource_id IN ( :room_ids) "; $sql_params = [ 'room_ids' => $this->selected_room_ids ]; @@ -408,6 +420,20 @@ class Resources_RoomRequestController extends AuthenticatedController $semester_selector->setSelection($this->filter['semester']); $sidebar->addWidget($semester_selector); + $request_status_selector = new SelectWidget( + _('Status der Anfrage'), + $this->overviewURL(), + 'request_status' + ); + $request_status_selector->setOptions( + [ + 'open' => _('offen'), + 'closed' => _('bearbeitet'), + 'denied' => _('abgelehnt') + ] + ); + $sidebar->addWidget($request_status_selector); + $list = new SelectWidget( _('Veranstaltungstypfilter'), $this->overviewURL(), @@ -608,6 +634,8 @@ class Resources_RoomRequestController extends AuthenticatedController $this->entries_per_page ); $this->requests = $requests; + + $this->request_status = $this->filter['request_status']; } public function index_action($request_id = null) diff --git a/app/views/resources/room_request/overview.php b/app/views/resources/room_request/overview.php index 4a92208d0a5..7e089af3373 100644 --- a/app/views/resources/room_request/overview.php +++ b/app/views/resources/room_request/overview.php @@ -3,14 +3,34 @@ action="<?= $controller->link_for('room_request/assign') ?>"> <table class="default sortable-table request-list" data-sortlist="[[8, 0]]"> <caption> - <?= sprintf( - ngettext( - 'Anfragenliste (%d Anfrage)', - 'Anfragenliste (%d Anfragen)', + <? if ($request_status == 'closed') : ?> + <?= sprintf( + ngettext( + 'Anfragenliste (%d bearbeitete Anfrage)', + 'Anfragenliste (%d bearbeitete Anfragen)', + $count_requests + ), $count_requests - ), - $count_requests - ) ?> + ) ?> + <? elseif ($request_status == 'denied') : ?> + <?= sprintf( + ngettext( + 'Anfragenliste (%d abgelehnte Anfrage)', + 'Anfragenliste (%d abgelehnte Anfragen)', + $count_requests + ), + $count_requests + ) ?> + <? else : ?> + <?= sprintf( + ngettext( + 'Anfragenliste (%d Anfrage)', + 'Anfragenliste (%d Anfragen)', + $count_requests + ), + $count_requests + ) ?> + <? endif ?> </caption> <thead> <tr> -- GitLab