Commit 2dd997de authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Modification du libellé depuis une instance de calendrier

parent fb621e9e
Loading
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ return [
                    'controller' => CalendrierController::class,
                    'action' => [
                        'modifier',
                        'modifier-libelle',
                        'ajouter-date',
                    ],
                    'privileges' => [
@@ -166,6 +167,16 @@ return [
                                    ],
                                ],
                            ],
                            'modifier-libelle' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/modifier-libelle/:calendrier',
                                    'defaults' => [
                                        /** @see CalendrierController::modifierLibelleAction() */
                                        'action' => 'modifier-libelle',
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
+14 −1
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@

use Doctrine\ORM\Mapping\Driver\XmlDriver;
use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
use UnicaenCalendrier\Form\ModifierLibelle\ModifierLibelleForm;
use UnicaenCalendrier\Form\ModifierLibelle\ModifierLibelleFormFactory;
use UnicaenCalendrier\Form\ModifierLibelle\ModifierLibelleHydrator;
use UnicaenCalendrier\Form\ModifierLibelle\ModifierLibelleHydratorFactory;

return [
    'doctrine' => [
@@ -33,7 +37,16 @@ return [
            __DIR__ . '/../view',
        ],
    ],

    'form_elements' => [
        'factories' => [
            ModifierLibelleForm::class => ModifierLibelleFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            ModifierLibelleHydrator::class => ModifierLibelleHydratorFactory::class,
        ],
    ],
    'view_helpers' => [
        'aliases' => [
        ],
+28 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ use UnicaenCalendrier\Entity\Db\Date;
use UnicaenCalendrier\Entity\Db\DateType;
use UnicaenCalendrier\Form\Calendrier\CalendrierFormAwareTrait;
use UnicaenCalendrier\Form\Date\DateFormAwareTrait;
use UnicaenCalendrier\Form\ModifierLibelle\ModifierLibelleFormAwareTrait;
use UnicaenCalendrier\Service\Calendrier\CalendrierServiceAwareTrait;
use UnicaenCalendrier\Service\Date\DateServiceAwareTrait;

@@ -19,6 +20,7 @@ class CalendrierController extends AbstractActionController
    use DateServiceAwareTrait;
    use CalendrierFormAwareTrait;
    use DateFormAwareTrait;
    use ModifierLibelleFormAwareTrait;


    /** CRUD **********************************************************************************************************/
@@ -26,7 +28,6 @@ class CalendrierController extends AbstractActionController
    public function indexAction(): ViewModel
    {
        $calendriers = $this->getCalendrierService()->getCalendriers('libelle', 'ASC', true);
        true;
        return new ViewModel([
            'calendriers' => $calendriers
        ]);
@@ -136,6 +137,32 @@ class CalendrierController extends AbstractActionController
        return $vm;
    }

    public function modifierLibelleAction(): ViewModel
    {
        $calendrier = $this->getCalendrierService()->getRequestedCalendrier($this);

        $form = $this->getModifierLibelleForm();
        $form->setAttribute('action', $this->url()->fromRoute('unicaen-calendrier/calendrier/modifier-libelle', ['calendrier' => $calendrier->getId()], [], true));
        $form->bind($calendrier);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getCalendrierService()->update($calendrier);
                exit();
            }
        }

        $vm = new ViewModel([
            'title' => "Modification du libelle du calendrier",
            'form' => $form,
        ]);
        $vm->setTemplate('unicaen-calendrier/default/default-form');
        return $vm;
    }

    /** GESTION DES DATES *********************************************************************************************/

    /** Action pour ajouter directement une date à un calendrier diffère de l'action de base de date @see DateController::ajouterAction() */
+4 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use UnicaenCalendrier\Form\Calendrier\CalendrierForm;
use UnicaenCalendrier\Form\Date\DateForm;
use UnicaenCalendrier\Form\ModifierLibelle\ModifierLibelleForm;
use UnicaenCalendrier\Service\Calendrier\CalendrierService;
use UnicaenCalendrier\Service\Date\DateService;

@@ -24,17 +25,20 @@ class CalendrierControllerFactory
         * @var DateService $dateService
         * @var CalendrierForm $calendrierForm
         * @var DateForm $dateForm
         * @var ModifierLibelleForm $modifierLibelleForm
         */
        $calendrierService = $container->get(CalendrierService::class);
        $dateService = $container->get(DateService::class);
        $calendrierForm = $container->get('FormElementManager')->get(CalendrierForm::class);
        $dateForm = $container->get('FormElementManager')->get(DateForm::class);
        $modifierLibelleForm = $container->get('FormElementManager')->get(ModifierLibelleForm::class);

        $controller = new CalendrierController();
        $controller->setCalendrierService($calendrierService);
        $controller->setDateService($dateService);
        $controller->setCalendrierForm($calendrierForm);
        $controller->setDateForm($dateForm);
        $controller->setModifierLibelleForm($modifierLibelleForm);
        return $controller;
    }

+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ class CalendrierForm extends Form
            ],
            'attributes' => [
                'type' => 'submit',
                'class' => 'btn btn-primary',
                'class' => 'btn btn-success',
                'id' => 'submit'
            ],
        ]);
Loading