Commit c5438e2c authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Module Formation : mauvais éléments de formulaire pour la date et les...

[FIX] Module Formation : mauvais éléments de formulaire pour la date et les horaires, empêchant de créer/modifier une séance.
parent 79ece43d
Loading
Loading
Loading
Loading
+5 −0
Changes for CHANGELOG.md: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
Journal des modifications
=========================

6.0.1
-----
- [FIX] Module Formation : mauvais éléments de formulaire pour la date et les horaires, empêchant de créer/modifier une séance.
- [FIX] Module StepStar : erreur dans l'extraction du mail du doctorant.

6.0.0
-----
- Passage à PHP 8.0
+6 −5
Changes for module/Formation/src/Formation/Form/Seance/SeanceForm.php: 6 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -3,9 +3,10 @@
namespace Formation\Form\Seance;

use Laminas\Form\Element\Button;
use Laminas\Form\Element\DateTime;
use Laminas\Form\Element\Date;
use Laminas\Form\Element\Text;
use Laminas\Form\Element\Textarea;
use Laminas\Form\Element\Time;
use Laminas\Form\Form;
use Laminas\InputFilter\Factory;

@@ -16,14 +17,14 @@ class SeanceForm extends Form {
        //jour
        $this->add([
            'name' => 'date',
            'type' => DateTime::class,
            'type' => Date::class,
            'options' => [
                'label' => "Date de la séance de formation <span class='icon icon-star' style='color: darkred;' title='Obligatoire'></span> :",
                'label_options' => [ 'disable_html_escape' => true, ],
                'label_attributes' => [
                    'class' => 'control-label',
                ],
                'format' => 'd/m/Y',
                'format' => 'Y-m-d',
            ],
            'attributes' => [
                'id' => 'date',
@@ -33,7 +34,7 @@ class SeanceForm extends Form {
        //debut
        $this->add([
            'name' => 'debut',
            'type' => DateTime::class,
            'type' => Time::class,
            'options' => [
                'label' => "Début de la séance <span class='icon icon-star' style='color: darkred;' title='Obligatoire'></span> :",
                'label_options' => [ 'disable_html_escape' => true, ],
@@ -50,7 +51,7 @@ class SeanceForm extends Form {
        //fin
        $this->add([
            'name' => 'fin',
            'type' => DateTime::class,
            'type' => Time::class,
            'options' => [
                'label' => "Fin de la séance <span class='icon icon-star' style='color: darkred;' title='Obligatoire'></span> :",
                'label_options' => [ 'disable_html_escape' => true, ],
+13 −7
Changes for module/Formation/src/Formation/Form/Seance/SeanceHydrator.php: 13 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -4,9 +4,15 @@ namespace Formation\Form\Seance;

use DateTime;
use Formation\Entity\Db\Seance;
use Laminas\Hydrator\HydratorInterface;
use Laminas\Hydrator\AbstractHydrator;
use Laminas\Hydrator\Strategy\DateTimeFormatterStrategy;

class SeanceHydrator implements HydratorInterface {
class SeanceHydrator extends AbstractHydrator
{
    public function __construct()
    {
        $this->addStrategy('date', new DateTimeFormatterStrategy('Y-m-d'));
    }

    /**
     * @param Seance $object
@@ -14,14 +20,13 @@ class SeanceHydrator implements HydratorInterface {
     */
    public function extract($object): array
    {
        $data = [
            'date'          => ($object->getDebut() !== null)?$object->getDebut()->format('d/m/Y'):null,
        return [
            'date'          => ($object->getDebut() !== null)?$this->getStrategy('date')->extract($object->getDebut()):null,
            'debut'         => ($object->getDebut() !== null)?$object->getDebut()->format('H:i'):null,
            'fin'           => ($object->getFin() !== null)?$object->getFin()->format('H:i'):null,
            'lieu'          => ($object->getLieu() !== null)?$object->getLieu():null,
            'description'   => ($object->getDescription() !== null)?$object->getDescription():null,
        ];
        return $data;
    }

    /**
@@ -37,13 +42,14 @@ class SeanceHydrator implements HydratorInterface {
        $lieu           = (isset($data['lieu']) AND trim($data['lieu']) !== '')?trim($data['lieu']):null;
        $description    = (isset($data['description']) AND trim($data['description']) !== '')?trim($data['description']):null;

        $date_debut = ($date AND $debut)? DateTime::createFromFormat('d/m/Y H:i', $date .' '.$debut):null;
        $date_fin   = ($date AND $debut)? DateTime::createFromFormat('d/m/Y H:i', $date .' '.$fin):null;
        $date_debut = ($date AND $debut)? DateTime::createFromFormat('Y-m-d H:i', $date .' '.$debut):null;
        $date_fin   = ($date AND $debut)? DateTime::createFromFormat('Y-m-d H:i', $date .' '.$fin):null;

        $object->setDebut($date_debut);
        $object->setFin($date_fin);
        $object->setLieu($lieu);
        $object->setDescription($description);

        return $object;
    }