Commit 604e6bb4 authored by Florian Joriot's avatar Florian Joriot
Browse files

Modification du formulaire de date de l'agreement

parent 5563c300
Loading
Loading
Loading
Loading
+37 −3
Original line number Diff line number Diff line
@@ -2,9 +2,11 @@

namespace Application\Form\Agrement;

use Application\Constants;
use Application\Form\AbstractForm;
use Laminas\Form\Element\Csrf;
use Laminas\Hydrator\ClassMethodsHydrator;
use Laminas\Hydrator\HydratorInterface;
use UnicaenApp\Hydrator\Strategy\DateStrategy;

/**
@@ -16,21 +18,23 @@ class Saisie extends AbstractForm

    public function init()
    {
        $this->setHydrator(new ClassMethodsHydrator(false));
        $this->setHydrator(new AgreementRetourFormHydrator());

        $this->setAttribute('action', $this->getCurrentUrl());


        $this->add([
            'name'       => 'dateDecision',
            'type'       => 'UnicaenApp\Form\Element\Date',
            'type'       => 'DateTime',
            'options'    => [
                'label' => "Date de la décision",
                'format' => Constants::DATE_FORMAT,
            ],
            'attributes' => [
                'id' => uniqid('dateDecision'),
            ],
        ]);
        $this->getHydrator()->addStrategy('dateDecision', new DateStrategy($this->get('dateDecision')));
//        $this->getHydrator()->addStrategy('dateDecision', new DateStrategy($this->get('dateDecision')));

        $this->add(new Csrf('security'));

@@ -62,3 +66,33 @@ class Saisie extends AbstractForm
        ];
    }
}

class AgreementRetourFormHydrator implements HydratorInterface
{

    /**
     * @param array $data
     * @param       $object
     */
    public function hydrate(array $data, $object)
    {
        $object->setDateDecision($data['dateDecision'] ? \DateTime::createFromFormat(Constants::DATE_FORMAT, $data['dateDecision']) : null);
    }



    /**
     *
     * @param $object
     *
     * @return array
     */
    public function extract($object): array
    {
        $data = [
            'dateDecision' => $object->getDateDecision() ? $object->getDateDecision()->format(Constants::DATE_FORMAT) : null,
        ];

        return $data;
    }
}
 No newline at end of file