diff --git a/src/Form/TeamerFilterType.php b/src/Form/TeamerFilterType.php index 416d4bd..cffdb82 100644 --- a/src/Form/TeamerFilterType.php +++ b/src/Form/TeamerFilterType.php @@ -22,11 +22,8 @@ class TeamerFilterType extends AbstractType 'label' => 'Name', 'required' => false, ]) - ->add('dateFrom', DatepickerType::class, [ - 'label' => 'verfügbar ab', - ]) - ->add('dateTo', DatepickerType::class, [ - 'label' => 'verfügbar bis', + ->add('availableAt', DatepickerType::class, [ + 'label' => 'verfügbar am', ]) ->add('pickupId', BpnPickupType::class, [ 'label' => 'Buszustieg', diff --git a/src/Model/TeamerFilterDto.php b/src/Model/TeamerFilterDto.php index 19b80c8..9434850 100644 --- a/src/Model/TeamerFilterDto.php +++ b/src/Model/TeamerFilterDto.php @@ -2,13 +2,10 @@ namespace App\Model; -use App\Entity\JobProfile; - class TeamerFilterDto extends AbstractFilterDto { protected ?string $name = null; - protected ?\DateTimeImmutable $dateFrom = null; - protected ?\DateTimeImmutable $dateTo = null; + protected ?\DateTimeImmutable $availableAt = null; protected array $jobProfiles = []; protected string $pickupId = ''; protected bool $skiLicense = false; @@ -27,26 +24,14 @@ class TeamerFilterDto extends AbstractFilterDto return $this; } - public function getDateFrom(): ?\DateTimeImmutable + public function getAvailableAt(): ?\DateTimeImmutable { - return $this->dateFrom; + return $this->availableAt; } - public function setDateFrom(?\DateTimeImmutable $dateFrom): static + public function setAvailableAt(?\DateTimeImmutable $availableAt): static { - $this->dateFrom = $dateFrom; - - return $this; - } - - public function getDateTo(): ?\DateTimeImmutable - { - return $this->dateTo; - } - - public function setDateTo(?\DateTimeImmutable $dateTo): static - { - $this->dateTo = $dateTo; + $this->availableAt = $availableAt; return $this; } diff --git a/src/Repository/TeamerRepository.php b/src/Repository/TeamerRepository.php index f8e9127..2b9927f 100644 --- a/src/Repository/TeamerRepository.php +++ b/src/Repository/TeamerRepository.php @@ -52,17 +52,13 @@ class TeamerRepository extends ServiceEntityRepository ; } - if (null !== $filterDto->getDateFrom()) { + if (null !== $filterDto->getAvailableAt()) { $qb - ->andWhere($qb->expr()->gte('availability.dateFrom', ':dateFrom')) - ->setParameter('dateFrom', $filterDto->getDateFrom()) - ; - } - - if (null !== $filterDto->getDateTo()) { - $qb - ->andWhere($qb->expr()->lte('availability.dateTo', ':dateTo')) - ->setParameter('dateTo', $filterDto->getDateTo()) + ->andWhere($qb->expr()->andX( + $qb->expr()->lte('availability.dateFrom', ':availableAt'), + $qb->expr()->gte('availability.dateTo', ':availableAt') + )) + ->setParameter('availableAt', $filterDto->getAvailableAt()) ; } diff --git a/src/Service/Common/TeamerFilterHandler.php b/src/Service/Common/TeamerFilterHandler.php index b922bec..a6c0cd8 100644 --- a/src/Service/Common/TeamerFilterHandler.php +++ b/src/Service/Common/TeamerFilterHandler.php @@ -55,8 +55,7 @@ class TeamerFilterHandler $filterDto ->setName($data['name']) - ->setDateFrom($data['date_from']) - ->setDateTo($data['date_to']) + ->setAvailableAt($data['available_at']) ->setPickupId($data['pickup_id']) ->setSkiLicense($data['ski_license']) ->setSnowboardLicense($data['snowboard_license']) @@ -79,8 +78,7 @@ class TeamerFilterHandler { $this->getSession()->set($this->namespace, [ 'name' => $filterDto->getName(), - 'date_from' => $filterDto->getDateFrom(), - 'date_to' => $filterDto->getDateTo(), + 'available_at' => $filterDto->getAvailableAt(), 'pickup_id' => $filterDto->getPickupId(), 'ski_license' => $filterDto->hasSkiLicense(), 'snowboard_license' => $filterDto->hasSnowboardLicense(), diff --git a/templates/common/modal_teamer_filter.html.twig b/templates/common/modal_teamer_filter.html.twig index bf71d73..44b483a 100644 --- a/templates/common/modal_teamer_filter.html.twig +++ b/templates/common/modal_teamer_filter.html.twig @@ -6,8 +6,7 @@ {{ form_start(filterForm, { 'attr': { 'hx-post': app.request.uri, 'hx-target': '#htmx-modal', 'hx-swap': 'outerHTML'} }) }}