list calendar by period: date range and query acl aware

This commit is contained in:
2022-06-01 23:04:59 +02:00
parent 089c92d0ee
commit c804462f15
11 changed files with 233 additions and 43 deletions

View File

@@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\MainBundle\Form\Type\Listing;
use Chill\MainBundle\Form\Type\ChillDateType;
use Chill\MainBundle\Templating\Listing\FilterOrderHelper;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
@@ -70,10 +71,38 @@ final class FilterOrderType extends \Symfony\Component\Form\AbstractType
$builder->add($checkboxesBuilder);
}
if (0 < count($helper->getDateRanges())) {
$dateRangesBuilder = $builder->create('dateRanges', null, ['compound' => true]);
foreach ($helper->getDateRanges() as $name => $opts) {
$rangeBuilder = $dateRangesBuilder->create($name, null, [
'compound' => true,
'label' => $opts['label'] ?? $name,
]);
$rangeBuilder->add(
'from',
ChillDateType::class,
['input' => 'datetime_immutable', 'required' => false]
);
$rangeBuilder->add(
'to',
ChillDateType::class,
['input' => 'datetime_immutable', 'required' => false]
);
$dateRangesBuilder->add($rangeBuilder);
}
$builder->add($dateRangesBuilder);
}
foreach ($this->requestStack->getCurrentRequest()->query->getIterator() as $key => $value) {
switch ($key) {
case 'q':
case 'checkboxes' . $key:
case $key . '_from':
case $key . '_to':
break;
case 'page':