From 1111290cea4bc7d63290bdb772fd42d06420dacc Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Tue, 2 Apr 2024 14:02:03 +0200 Subject: [PATCH] chg: [individuals:filtering] Added dropdown for organisation filtering --- src/Controller/IndividualsController.php | 10 +++++++++- src/Model/Table/IndividualsTable.php | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Controller/IndividualsController.php b/src/Controller/IndividualsController.php index 47a9957..776f75f 100644 --- a/src/Controller/IndividualsController.php +++ b/src/Controller/IndividualsController.php @@ -14,7 +14,15 @@ use Cake\ORM\TableRegistry; class IndividualsController extends AppController { public $quickFilterFields = ['uuid', ['email' => true], ['first_name' => true], ['last_name' => true], 'position']; - public $filterFields = ['uuid', 'email', 'first_name', 'last_name', 'position', 'Organisations.id', 'Alignments.type']; + public $filterFields = [ + 'uuid', + 'email', + 'first_name', + 'last_name', + 'position', + 'Alignments.type', + ['name' => 'Organisations.id', 'multiple' => true, 'options' => 'getAllOrganisations', 'select2' => true], + ]; public $containFields = ['Alignments' => 'Organisations']; public $statisticsFields = ['position']; diff --git a/src/Model/Table/IndividualsTable.php b/src/Model/Table/IndividualsTable.php index e3ab184..6e85a3b 100644 --- a/src/Model/Table/IndividualsTable.php +++ b/src/Model/Table/IndividualsTable.php @@ -3,6 +3,7 @@ namespace App\Model\Table; use App\Model\Table\AppTable; +use Cake\Utility\Hash; use Cake\ORM\Table; use Cake\Validation\Validator; use Cake\ORM\Query; @@ -137,4 +138,11 @@ class IndividualsTable extends AppTable )->all()->extract('individual_id')->toArray(); return $validIndividualIds; } + + public function getAllOrganisations($currentUser): array + { + $this->Organisations = \Cake\ORM\TableRegistry::getTableLocator()->get('Organisations'); + $orgs = $this->Organisations->find()->select(['id', 'name'])->all()->toList(); + return Hash::combine($orgs, '{n}.id', '{n}.name'); + } }