From 544af5900903879e8367d20062f6c5adde610b69 Mon Sep 17 00:00:00 2001 From: Julie Lenaerts Date: Wed, 22 Sep 2021 15:10:09 +0200 Subject: [PATCH] configuration of duration parametres for aside activity --- .../ChillAsideActivityExtension.php | 6 + .../src/DependencyInjection/Configuration.php | 138 ++++++++++++++++++ .../src/Form/AsideActivityFormType.php | 11 +- .../src/translations/messages.fr.yml | 95 ++++++++++++ 4 files changed, 241 insertions(+), 9 deletions(-) create mode 100644 src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/Configuration.php diff --git a/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php b/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php index 712649653..fa1353c71 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php +++ b/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php @@ -24,6 +24,12 @@ final class ChillAsideActivityExtension extends Extension implements PrependExte */ public function load(array $configs, ContainerBuilder $container): void { + + $configuration = $this->getConfiguration($configs, $container); + $config = $this->processConfiguration($configuration, $configs); + + $container->setParameter('chill_aside_activity.form.time_duration', $config['form']['time_duration']); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../config')); $loader->load('services.yaml'); $loader->load('services/form.yaml'); diff --git a/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/Configuration.php b/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/Configuration.php new file mode 100644 index 000000000..7268b92ae --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/Configuration.php @@ -0,0 +1,138 @@ +getRootNode('chill_aside_activity') + ->children() + ->arrayNode('form') + ->canBeEnabled() + ->children() + ->arrayNode('time_duration') + ->isRequired() + ->defaultValue( + [ + [ 'label' => '5 minutes', 'seconds' => 300], + [ 'label' => '10 minutes', 'seconds' => 600], + [ 'label' => '15 minutes', 'seconds' => 900], + [ 'label' => '20 minutes', 'seconds' => 1200], + [ 'label' => '25 minutes', 'seconds' => 1500], + [ 'label' => '30 minutes', 'seconds' => 1800], + [ 'label' => '45 minutes', 'seconds' => 2700], + [ 'label' => '1 hour', 'seconds' => 3600], + [ 'label' => '1 hour 15', 'seconds' => 4500], + [ 'label' => '1 hour 30', 'seconds' => 5400], + [ 'label' => '1 hour 45', 'seconds' => 6300], + [ 'label' => '2 hours', 'seconds' => 7200], + [ 'label' => '2 hours 30', 'seconds' => 9000], + [ 'label' => '3 hours', 'seconds' => 10800], + [ 'label' => '3 hours 30', 'seconds' => 12600], + [ 'label' => '4 hours', 'seconds' => 14400], + [ 'label' => '4 hours 30', 'seconds' => 16200], + [ 'label' => '5 hours', 'seconds' => 18000], + [ 'label' => '5 hours 30', 'seconds' => 19800], + [ 'label' => '6 hours', 'seconds' => 21600], + [ 'label' => '6 hours 30', 'seconds' => 23400], + [ 'label' => '7 hours', 'seconds' => 25200], + [ 'label' => '7 hours 30', 'seconds' => 27000], + [ 'label' => '8 hours', 'seconds' => 28800], + [ 'label' => '8 hours 30', 'seconds' => 30600], + [ 'label' => '9 hours', 'seconds' => 32400], + [ 'label' => '9 hours 30', 'seconds' => 34200], + [ 'label' => '10 hours', 'seconds' => 36000], + [ 'label' => '1/2 day', 'seconds' => 14040], + [ 'label' => '1 day', 'seconds' => 28080], + [ 'label' => '1 1/2 days', 'seconds' => 42120], + [ 'label' => '2 days', 'seconds' => 56160], + [ 'label' => '2 1/2 days', 'seconds' => 70200], + [ 'label' => '3 days', 'seconds' => 84240], + [ 'label' => '3 1/2 days', 'seconds' => 98280], + [ 'label' => '4 days', 'seconds' => 112320], + [ 'label' => '4 1/2 days', 'seconds' => 126360], + [ 'label' => '5 days', 'seconds' => 140400], + [ 'label' => '5 1/2 days', 'seconds' => 154440], + [ 'label' => '6 days', 'seconds' => 168480], + [ 'label' => '6 1/2 days', 'seconds' => 182520], + [ 'label' => '7 days', 'seconds' => 196560], + [ 'label' => '7 1/2 days', 'seconds' => 210600], + [ 'label' => '8 days', 'seconds' => 224640], + [ 'label' => '8 1/2 days', 'seconds' => 238680], + [ 'label' => '9 days', 'seconds' => 252720], + [ 'label' => '9 1/2 days', 'seconds' => 266760], + [ 'label' => '10 days', 'seconds' => 280800], + [ 'label' => '10 1/2days', 'seconds' => 294840], + [ 'label' => '11 days', 'seconds' => 308880], + [ 'label' => '11 1/2 days', 'seconds' => 322920], + [ 'label' => '12 days', 'seconds' => 336960], + [ 'label' => '12 1/2 days', 'seconds' => 351000], + [ 'label' => '13 days', 'seconds' => 365040], + [ 'label' => '13 1/2 days', 'seconds' => 379080], + [ 'label' => '14 days', 'seconds' => 393120], + [ 'label' => '14 1/2 days', 'seconds' => 407160], + [ 'label' => '15 days', 'seconds' => 421200], + [ 'label' => '15 1/2 days', 'seconds' => 435240], + [ 'label' => '16 days', 'seconds' => 449280], + [ 'label' => '16 1/2 days', 'seconds' => 463320], + [ 'label' => '17 days', 'seconds' => 477360], + [ 'label' => '17 1/2 days', 'seconds' => 491400], + [ 'label' => '18 days', 'seconds' => 505440], + [ 'label' => '18 1/2 days', 'seconds' => 519480], + [ 'label' => '19 days', 'seconds' => 533520], + [ 'label' => '19 1/2 days', 'seconds' => 547560], + [ 'label' => '20 days', 'seconds' => 561600], + [ 'label' => '20 1/2 days', 'seconds' => 575640], + [ 'label' => '21 days', 'seconds' => 580680], + [ 'label' => '21 1/2 days', 'seconds' => 603720], + [ 'label' => '22 days', 'seconds' => 617760], + [ 'label' => '22 1/2 days', 'seconds' => 631800], + [ 'label' => '23 days', 'seconds' => 645840], + [ 'label' => '23 1/2 days', 'seconds' => 659880], + [ 'label' => '24 days', 'seconds' => 673920], + [ 'label' => '24 1/2 days', 'seconds' => 687960], + [ 'label' => '25 days', 'seconds' => 702000], + [ 'label' => '25 1/2 days', 'seconds' => 716040], + [ 'label' => '26 days', 'seconds' => 730080], + [ 'label' => '26 1/2 days', 'seconds' => 744120], + [ 'label' => '27 days', 'seconds' => 758160], + [ 'label' => '27 1/2 days', 'seconds' => 772200], + [ 'label' => '28 days', 'seconds' => 786240], + [ 'label' => '28 1/2 days', 'seconds' => 800280], + [ 'label' => '29 days', 'seconds' => 814320], + [ 'label' => '29 1/2 days', 'seconds' => 828360], + [ 'label' => '30 days', 'seconds' => 842400], + ] + ) + ->info('The intervals of time to show in activity form') + + ->prototype('array') + ->children() + ->scalarNode('seconds') + ->info("The number of seconds of this duration. Must be an integer.") + ->cannotBeEmpty() + ->validate() + ->ifTrue(function($data) { + return !is_int($data); + })->thenInvalid("The value %s is not a valid integer") + ->end() + ->end() + ->scalarNode('label') + ->cannotBeEmpty() + ->info("The label to show into fields") + ->end() + ->end() + ->end() + ->end() + ->end() + ->end(); + + return $treeBuilder; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php b/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php index 4bf5bbfdc..d7e5a7700 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php @@ -16,11 +16,10 @@ use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTra use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; -use Symfony\Component\Security\Core\Security; + final class AsideActivityFormType extends AbstractType { @@ -33,7 +32,7 @@ final class AsideActivityFormType extends AbstractType ParameterBagInterface $parameterBag, TokenStorageInterface $storage ){ - $this->timeChoices = $parameterBag->get('chill_activity.form.time_duration'); + $this->timeChoices = $parameterBag->get('chill_aside_activity.form.time_duration'); $this->translatableStringHelper = $translatableStringHelper; $this->storage = $storage; } @@ -70,11 +69,6 @@ final class AsideActivityFormType extends AbstractType [ 'label' => 'date', 'data' => new \DateTime(), - //SETTING RANGE ONLY POSSIBLE WITH WIDGET 'CHOICE' AND NOT 'SINGLE_TEXT'? - // 'widget' => 'choice', - // 'years' => range(2020, date('Y')), - // 'months' => range(1, date('m')), - // 'days' => range(1, date('d')), 'required' => true ]) ->add('type', EntityType::class, @@ -83,7 +77,6 @@ final class AsideActivityFormType extends AbstractType 'required' => true, 'class' => AsideActivityCategory::class, 'placeholder' => 'Choose the activity category', - // 'choice_label' => 'title[""]' 'choice_label' => function (AsideActivityCategory $asideActivityCategory) { return $this->translatableStringHelper->localize($asideActivityCategory->getTitle()); }, diff --git a/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml b/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml index 14cd8047b..945db8655 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml +++ b/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml @@ -59,6 +59,101 @@ date: Date Duration: Durée Note: Note +#Duration +minutes: minutes +hour: heure +hours: heures +day: jour +days: jours +5 minutes: 5 minutes +10 minutes: 10 minutes +15 minutes: 15 minutes +20 minutes: 20 minutes +25 minutes: 25 minutes +30 minutes: 30 minutes +45 minutes: 45 minutes +1 hour: 1 heure +1 hour 15: 1 heure 15 +1 hour 30: 1 heure 30 +1 hour 45: 1 heure 45 +2 hours: 2 heures +2 hours 30: 2 heure 30 +3 hours: 3 heures +3 hours 30: 3 heure 30 +4 hours: 4 heures +4 hours 30: 4 heure 30 +5 hours: 5 heures +5 hours 30: 5 heure 30 +6 hours: 6 heures +6 hours 30: 6 heure 30 +7 hours: 7 heures +7 hours 30: 7 heure 30 +8 hours: 8 heures +8 hours 30: 8 heure 30 +9 hours: 9 heures +9 hours 30: 9 heure 30 +10 hours: 10 heures +1/2 day: 1/2 jour +1 day: 1 jour +1 1/2 days: 1 1/2 jours +2 days: 2 jours +2 1/2 days: 2 1/2 jours +3 days: 3 jours +3 1/2 days: 3 1/2 jours +4 days: 4 jours +4 1/2 days: 4 1/2 jours +5 days: 5 jours +5 1/2 days: 5 1/2 jours +6 days: 6 jours +6 1/2 days: 6 1/2 jours +7 days: 7 jours +7 1/2 days: 7 1/2 jours +8 days: 8 jours +8 1/2 days: 8 1/2 jours +9 days: 9 jours +9 1/2 days: 9 1/2 jours +10 days: 10 jours +10 1/2 days: 10 1/2 jours +11 days: 11 jours +11 1/2 days: 11 1/2 jours +12 days: 12 jours +12 1/2 days: 12 1/2 jours +13 days: 13 jours +13 1/2 days: 13 1/2 jours +14 days: 14 jours +14 1/2 days: 14 1/2 jours +15 days: 15 jours +15 1/2 days: 15 1/2 jours +16 days: 16 jours +16 1/2 days: 16 1/2 jours +17 days: 17 jours +17 1/2 days: 17 1/2 jours +18 days: 18 jours +18 1/2 days: 18 1/2 jours +19 days: 19 jours +19 1/2 days: 19 1/2 jours +20 days: 20 jours +20 1/2 days: 20 1/2 jours +21 days: 21 jours +21 1/2 days: 21 1/2 jours +22 days: 22 jours +22 1/2 days: 22 1/2 jours +23 days: 23 jours +23 1/2 days: 23 1/2 jours +24 days: 24 jours +24 1/2 days: 24 1/2 jours +25 days: 25 jours +25 1/2 days: 25 1/2 jours +26 days: 26 jours +26 1/2 days: 26 1/2 jours +27 days: 27 jours +27 1/2 days: 27 1/2 jours +28 days: 28 jours +28 1/2 days: 28 1/2 jours +29 days: 29 jours +29 1/2 days: 29 1/2 jours +30 days: 30 jours + #list My aside activities: Mes activités annexes Date: Date