From 5777fc526e737db0d2291ee5aa63f4a460c311e6 Mon Sep 17 00:00:00 2001 From: Stefan Galinski <stefan@sgalinski.de> Date: Wed, 17 May 2023 17:51:59 +0200 Subject: [PATCH] [BUGFIX] Fix the broken company filter implementation, Fix the sorting of the filter options --- Classes/Controller/JoblistController.php | 1 - .../Domain/Repository/CompanyRepository.php | 25 +++++++------------ Classes/Domain/Repository/JobRepository.php | 2 +- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/Classes/Controller/JoblistController.php b/Classes/Controller/JoblistController.php index 628f285f..ce57a9cc 100644 --- a/Classes/Controller/JoblistController.php +++ b/Classes/Controller/JoblistController.php @@ -214,7 +214,6 @@ class JoblistController extends ActionController { foreach ($filters as $name => &$filter) { if ($name === 'filterByLocation' || $name === 'filterByExperienceLevel' || $name === 'filterByDepartment') { $filter = $filter ? GeneralUtility::trimExplode(',', $filter) : NULL; - if (!$filter) { continue; } diff --git a/Classes/Domain/Repository/CompanyRepository.php b/Classes/Domain/Repository/CompanyRepository.php index a44f842c..5305ea5b 100644 --- a/Classes/Domain/Repository/CompanyRepository.php +++ b/Classes/Domain/Repository/CompanyRepository.php @@ -41,16 +41,6 @@ class CompanyRepository extends Repository { /** @var array */ protected $cache = []; - /** - * initializes the object - */ - public function initializeObject(): void { -// $querySettings = $this->createQuery()->getQuerySettings(); -// $querySettings->setRespectStoragePage(FALSE); -// $querySettings->setIgnoreEnableFields(TRUE); -// $this->setDefaultQuerySettings($querySettings); - } - /** * Returns all countries filtered by page id * @@ -68,11 +58,12 @@ class CompanyRepository extends Repository { $countryName = $company->getCountry(); if ($countryName !== '') { // The filtering needs this specific key for some reason. - $countryArray[$countryName] = $countryName; + $countryArray[$countryName] = $company->getUid(); } } - return $countryArray; + ksort($countryArray); + return array_flip($countryArray); } /** @@ -92,11 +83,12 @@ class CompanyRepository extends Repository { $cityName = $company->getCity(); if ($cityName !== '') { // The filtering needs this specific key for some reason. - $cityArray[$cityName] = $cityName; + $cityArray[$cityName] = $company->getUid(); } } - return $cityArray; + ksort($cityArray); + return array_flip($cityArray); } /** @@ -116,11 +108,12 @@ class CompanyRepository extends Repository { $companyName = $company->getName(); if ($companyName !== '') { // The filtering needs this specific key for some reason. - $companyArray[$companyName] = $companyName; + $companyArray[$companyName] = $company->getUid(); } } - return $companyArray; + ksort($companyArray); + return array_flip($companyArray); } /** diff --git a/Classes/Domain/Repository/JobRepository.php b/Classes/Domain/Repository/JobRepository.php index 95b6344a..d8247370 100644 --- a/Classes/Domain/Repository/JobRepository.php +++ b/Classes/Domain/Repository/JobRepository.php @@ -224,7 +224,7 @@ class JobRepository extends Repository { } if (isset($filters['filterLocation']) && $filters['filterLocation'] !== '0') { - $constraints[] = $query->equals('company.city', $filters['filterLocation']); + $constraints[] = $query->equals('company.uid', $filters['filterLocation']); } if (isset($filters['filterByLocation'])) { -- GitLab