From e45f6458d412cb45cbbf03d22bbb29c3293a1275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 25 Feb 2026 19:07:14 +0100 Subject: [PATCH] feat: show upcoming assignments of teamers for administrative users closes #869b9vkp4 --- .../Teamer/UpcomingAssignmentsController.php | 46 ++++++++++++++ src/Menu/AdminMenuBuilder.php | 7 +++ src/Menu/ManagerMenuBuilder.php | 7 +++ .../teamer/upcoming_assignments.html.twig | 61 +++++++++++++++++++ 4 files changed, 121 insertions(+) create mode 100644 src/Controller/Administrative/Teamer/UpcomingAssignmentsController.php create mode 100644 templates/administrative/teamer/upcoming_assignments.html.twig diff --git a/src/Controller/Administrative/Teamer/UpcomingAssignmentsController.php b/src/Controller/Administrative/Teamer/UpcomingAssignmentsController.php new file mode 100644 index 0000000..26a99f7 --- /dev/null +++ b/src/Controller/Administrative/Teamer/UpcomingAssignmentsController.php @@ -0,0 +1,46 @@ +dispositionRepository + ->getUpcomingDispositionsByTeamerQuery($teamer) + ; + + $pagination = $this->paginator->paginate( + $query, + $request->query->getInt('page', 1), + 10, + [ + 'defaultSortFieldName' => 'destination.dateFrom', + 'defaultSortDirection' => 'asc', + ] + ); + + return $this->render('administrative/teamer/upcoming_assignments.html.twig', [ + 'teamer' => $teamer, + 'pagination' => $pagination, + ]); + } +} diff --git a/src/Menu/AdminMenuBuilder.php b/src/Menu/AdminMenuBuilder.php index 984ad15..7ba35cf 100644 --- a/src/Menu/AdminMenuBuilder.php +++ b/src/Menu/AdminMenuBuilder.php @@ -317,6 +317,13 @@ class AdminMenuBuilder extends AbstractMenuBuilder 'title' => 'Vergangene Einsätze', ], ]); + $menu->addChild('Bevorstehende Einsätze', [ + 'route' => 'app_administrative_teamer_upcoming_assignments', + 'routeParameters' => $this->getDefaultRouteParameters('uuid'), + 'linkAttributes' => [ + 'title' => 'Bevorstehende Einsätze', + ], + ]); $menu->addChild('Anmerkungen (intern)', [ 'route' => 'app_admin_teamer_remarks_internal', 'routeParameters' => $this->getDefaultRouteParameters('uuid'), diff --git a/src/Menu/ManagerMenuBuilder.php b/src/Menu/ManagerMenuBuilder.php index 8a23fb4..c15fc90 100644 --- a/src/Menu/ManagerMenuBuilder.php +++ b/src/Menu/ManagerMenuBuilder.php @@ -196,6 +196,13 @@ class ManagerMenuBuilder extends AbstractMenuBuilder 'title' => 'Vergangene Einsätze', ], ]); + $menu->addChild('Bevorstehende Einsätze', [ + 'route' => 'app_administrative_teamer_upcoming_assignments', + 'routeParameters' => $this->getDefaultRouteParameters('uuid'), + 'linkAttributes' => [ + 'title' => 'Bevorstehende Einsätze', + ], + ]); $this->addDivider($menu); diff --git a/templates/administrative/teamer/upcoming_assignments.html.twig b/templates/administrative/teamer/upcoming_assignments.html.twig new file mode 100644 index 0000000..7f9bb65 --- /dev/null +++ b/templates/administrative/teamer/upcoming_assignments.html.twig @@ -0,0 +1,61 @@ +{% extends 'administrative/layout.html.twig' %} + +{% block title %}Bevorstehende Einsätze {{ teamer }}{% endblock %} + +{% block content %} +
+
+ {% if is_granted('ROLE_MANAGER') %} + {{ knp_menu_render(knp_menu_get('manager_teamer')) }} + {% elseif is_granted('ROLE_ADMIN') %} + {{ knp_menu_render(knp_menu_get('admin_teamer')) }} + {% endif %} +
+
+

+ Bevorstehende Einsätze {{ teamer }} +

+
+
+ + + + + + + + + + {% for disposition in pagination %} + + + + + + {% else %} + + {% endfor %} + +
+ Zeitraum + + Einsatz + + Jobprofil +
+ {{ disposition.assignment.effectivePeriod.start|date('d.m.Y') }} - {{ disposition.assignment.effectivePeriod.end|date('d.m.Y') }} + + {{ disposition.assignment.destination.product }} +
+ {{ disposition.assignment.destination.hotel }} +
+ {{ disposition.assignment.jobProfile.name }} +
+ Keine Daten... +
+ {{ knp_pagination_render(pagination) }} +
+
+
+
+{% endblock %}