From 1654ab990355b7a7a60ce7a0e48d3683c7e6548f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 10 Jan 2024 18:29:59 +0100 Subject: [PATCH] fix: don't filter application list by rejected status in repository --- src/Controller/Admin/Assignment/EditController.php | 1 - src/Entity/Assignment.php | 7 +++++++ src/Repository/AssignmentRepository.php | 3 +-- templates/admin/assignment/index.html.twig | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Controller/Admin/Assignment/EditController.php b/src/Controller/Admin/Assignment/EditController.php index 48e270a..47ef5db 100644 --- a/src/Controller/Admin/Assignment/EditController.php +++ b/src/Controller/Admin/Assignment/EditController.php @@ -21,7 +21,6 @@ class EditController extends AbstractController } #[Route('/admin/assignment/edit/{uuid}', name: 'app_admin_assignment_edit')] - #[IsGranted('ROLE_ADMINISTRATIVE')] #[IsGranted('EDIT', subject: 'assignment')] public function index(Assignment $assignment, Request $request): Response { diff --git a/src/Entity/Assignment.php b/src/Entity/Assignment.php index 7c61689..4b5b6ce 100644 --- a/src/Entity/Assignment.php +++ b/src/Entity/Assignment.php @@ -337,6 +337,13 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa return $this->applications; } + public function getValidApplications(): Collection + { + return $this->applications->filter(function (Application $application) { + return Application::STATUS_REJECTED !== $application->getStatus(); + }); + } + public function addApplication(Application $application): static { if (!$this->applications->contains($application)) { diff --git a/src/Repository/AssignmentRepository.php b/src/Repository/AssignmentRepository.php index 845ecf9..661bbf2 100644 --- a/src/Repository/AssignmentRepository.php +++ b/src/Repository/AssignmentRepository.php @@ -37,9 +37,8 @@ class AssignmentRepository extends ServiceEntityRepository ->innerJoin('assignment.destination', 'destination') ->innerJoin('assignment.jobProfile', 'job_profile') ->where($qb->expr()->isNull('assignment.deletedAt')) - ->leftJoin('assignment.applications', 'application', Join::WITH, $qb->expr()->neq('application.status', ':status')) + ->leftJoin('assignment.applications', 'application') ->leftJoin('assignment.dispositions', 'disposition') - ->setParameter('status', Application::STATUS_REJECTED) ; $this->applyFilterSettings($filterDto, $qb); diff --git a/templates/admin/assignment/index.html.twig b/templates/admin/assignment/index.html.twig index 8709e64..984d889 100644 --- a/templates/admin/assignment/index.html.twig +++ b/templates/admin/assignment/index.html.twig @@ -90,7 +90,7 @@ - {{ assignment.applications|length }}/{{ assignment.availableDispositions - assignment.dispositions|length }} + {{ assignment.validApplications|length }}/{{ assignment.availableDispositions - assignment.dispositions|length }} {% if assignment.status == 'closed' %} {{ icon('locked', 'w-4 h-4 text-red-500') }} {% else %}