mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch '234-fix-date-validation-aside-activity-filter-by-date' into 'master'
Fix "filter aside activity by date" Closes #234 See merge request Chill-Projet/chill-bundles!631
This commit is contained in:
commit
68e00dc42f
6
.changes/unreleased/Fixed-20231204-171716.yaml
Normal file
6
.changes/unreleased/Fixed-20231204-171716.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
kind: Fixed
|
||||||
|
body: |
|
||||||
|
Fix "filter aside activity by date"
|
||||||
|
time: 2023-12-04T17:17:16.553597209+01:00
|
||||||
|
custom:
|
||||||
|
Issue: "234"
|
@ -13,15 +13,11 @@ namespace Chill\AsideActivityBundle\Export\Filter;
|
|||||||
|
|
||||||
use Chill\AsideActivityBundle\Export\Declarations;
|
use Chill\AsideActivityBundle\Export\Declarations;
|
||||||
use Chill\MainBundle\Export\FilterInterface;
|
use Chill\MainBundle\Export\FilterInterface;
|
||||||
use Chill\MainBundle\Form\Type\Export\FilterType;
|
|
||||||
use Chill\MainBundle\Form\Type\PickRollingDateType;
|
use Chill\MainBundle\Form\Type\PickRollingDateType;
|
||||||
use Chill\MainBundle\Service\RollingDate\RollingDate;
|
use Chill\MainBundle\Service\RollingDate\RollingDate;
|
||||||
use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface;
|
use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface;
|
||||||
use Doctrine\ORM\QueryBuilder;
|
use Doctrine\ORM\QueryBuilder;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Form\FormError;
|
|
||||||
use Symfony\Component\Form\FormEvent;
|
|
||||||
use Symfony\Component\Form\FormEvents;
|
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
class ByDateFilter implements FilterInterface
|
class ByDateFilter implements FilterInterface
|
||||||
@ -66,51 +62,14 @@ class ByDateFilter implements FilterInterface
|
|||||||
->add('date_to', PickRollingDateType::class, [
|
->add('date_to', PickRollingDateType::class, [
|
||||||
'label' => 'export.filter.Aside activities before this date',
|
'label' => 'export.filter.Aside activities before this date',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
|
|
||||||
/** @var \Symfony\Component\Form\FormInterface $filterForm */
|
|
||||||
$filterForm = $event->getForm()->getParent();
|
|
||||||
$enabled = $filterForm->get(FilterType::ENABLED_FIELD)->getData();
|
|
||||||
|
|
||||||
if (true === $enabled) {
|
|
||||||
// if the filter is enabled, add some validation
|
|
||||||
$form = $event->getForm();
|
|
||||||
$date_from = $form->get('date_from')->getData();
|
|
||||||
$date_to = $form->get('date_to')->getData();
|
|
||||||
|
|
||||||
// check that fields are not empty
|
|
||||||
if (null === $date_from) {
|
|
||||||
$form->get('date_from')->addError(new FormError(
|
|
||||||
$this->translator->trans('This field '
|
|
||||||
.'should not be empty')
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null === $date_to) {
|
|
||||||
$form->get('date_to')->addError(new FormError(
|
|
||||||
$this->translator->trans('This field '
|
|
||||||
.'should not be empty')
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
// check that date_from is before date_to
|
|
||||||
if (
|
|
||||||
(null !== $date_from && null !== $date_to)
|
|
||||||
&& $date_from >= $date_to
|
|
||||||
) {
|
|
||||||
$form->get('date_to')->addError(new FormError(
|
|
||||||
$this->translator->trans('export.filter.This date should be after '
|
|
||||||
.'the date given in "Implied in an aside activity after '
|
|
||||||
.'this date" field')
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFormDefaultData(): array
|
public function getFormDefaultData(): array
|
||||||
{
|
{
|
||||||
return ['date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START), 'date_to' => new RollingDate(RollingDate::T_TODAY)];
|
return [
|
||||||
|
'date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START),
|
||||||
|
'date_to' => new RollingDate(RollingDate::T_TODAY),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function describeAction($data, $format = 'string'): array
|
public function describeAction($data, $format = 'string'): array
|
||||||
|
Loading…
x
Reference in New Issue
Block a user