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

Complétion du changelog

parent 7b72ae55
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ Journal des modifications
- Module Formation : 1ère version d'un export des sessions depuis l'index, en fonction des filtres choisis
- Module Formation : Ajout sur l'index des sessions, d'un tri sur les séances
- Module Soutenances : Affichage de l'historique des actions effectuées (horodatages) en dessous de chacune d'elles 
- Amélioration de la page consacrée aux profils (filtrage, explications, esthétique) et harmonisation de la page Rôles et privilèges.
- [FIX] Notifications de demande d'engagement d'impartialité et d'avis de soutenance : utilisation en priorité du mail de l'acteur.
- [FIX] Impossible d'accèder aux pages de consultation/modification d'ED ou d'UR.
- [FIX] Coquille dans le procès verbal de soutenance (PDF).
+4 −0
Changes for module/Structure/src/Structure/Form/InputFilter/Etablissement/Ced/EtablissementCedInputFilter.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -46,6 +46,10 @@ class EtablissementCedInputFilter extends EtablissementInputFilter implements Et
                ],
            ],
        ]);
        $this->add([
            'name' => 'cheminLogo',
            'required' => true,
        ]);
    }

    public function prepareForm(EtablissementForm $etablissementForm): void
+15 −124
Changes for module/Structure/src/Structure/Form/InputFilter/Etablissement/EtablissementInputFilter.php: 15 added lines, 124 removed lines.
Original line number Diff line number Diff line
@@ -3,31 +3,28 @@
namespace Structure\Form\InputFilter\Etablissement;

use Doctrine\ORM\EntityManager;
use DoctrineModule\Validator\NoObjectExists;
use DoctrineModule\Validator\UniqueObject;
use Laminas\Filter\StringToLower;
use Laminas\Filter\StringTrim;
use Laminas\Filter\ToNull;
use Laminas\Form\Form;
use Laminas\InputFilter\InputFilter;
use Laminas\Validator\EmailAddress;
use Laminas\Validator\File\Extension;
use Laminas\Validator\File\UploadFile;
use Laminas\Validator\NotEmpty;
use Laminas\Validator\Uri;
use Structure\Entity\Db\Etablissement;
use Structure\Entity\Db\Structure;
use Structure\Form\EtablissementForm;
use Structure\Form\InputFilter\StructureInputFilter;

class EtablissementInputFilter extends InputFilter implements EtablissementInputFilterInterface
class EtablissementInputFilter extends StructureInputFilter implements EtablissementInputFilterInterface
{
    private EntityManager $entityManager;

    public function __construct(EntityManager $entityManager)
    {
        $this->entityManager = $entityManager;
        parent::__construct($entityManager);

        $this->add([
            'name' => 'libelle',
            'required' => true,
        ]);
        $this->add([
            'name' => 'code',
            'required' => true,
@@ -56,14 +53,10 @@ class EtablissementInputFilter extends InputFilter implements EtablissementInput
        $this->add([
            'name' => 'sourceCode',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
            'validators' => [
                [
                    'name' => UniqueObject::class,
                    'priority' => -98, // pour passer en dernier
                    'priority' => -97, // pour passer juste avant celui déclaré dans la classe mère
                    'options' => [
                        'object_manager' => $this->entityManager,
                        'object_repository' => $this->entityManager->getRepository(Etablissement::class),
@@ -74,19 +67,6 @@ class EtablissementInputFilter extends InputFilter implements EtablissementInput
                        ],
                    ],
                ],
                [
                    'name' => UniqueObject::class,
                    'priority' => -99, // pour passer en dernier
                    'options' => [
                        'object_manager' => $this->entityManager,
                        'object_repository' => $this->entityManager->getRepository(Structure::class),
                        'fields' => ['sourceCode'],
                        'use_context' => true,
                        'messages' => [
                            UniqueObject::ERROR_OBJECT_NOT_UNIQUE => "Une structure existante possède déjà ce 'source code'",
                        ],
                    ],
                ],
            ],
        ]);
        $this->add([
@@ -113,41 +93,6 @@ class EtablissementInputFilter extends InputFilter implements EtablissementInput
                ],
            ],
        ]);
        $this->add([
            'name' => 'adresse',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
        ]);
        $this->add([
            'name' => 'telephone',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
        ]);
        $this->add([
            'name' => 'fax',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
        ]);
        $this->add([
            'name' => 'email',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
            'validators' => [
                ['name' => EmailAddress::class],
            ],
        ]);
        $this->add([
            'name' => 'emailAssistance',
            'required' => false,
@@ -181,33 +126,6 @@ class EtablissementInputFilter extends InputFilter implements EtablissementInput
                ['name' => EmailAddress::class],
            ],
        ]);
        $this->add([
            'name' => 'siteWeb',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
            'validators' => [
                ['name' => Uri::class, 'options' => ['allowRelative' => false]],
            ],
        ]);
        $this->add([
            'name' => 'id_ref',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
        ]);
        $this->add([
            'name' => 'id_hal',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
        ]);
        $this->add([
            'name' => 'estInscription',
            'required' => false,
@@ -224,44 +142,17 @@ class EtablissementInputFilter extends InputFilter implements EtablissementInput
            'name' => 'estCed',
            'required' => false,
        ]);
        $this->add([
            'name' => 'estFerme',
            'required' => false,
        ]);
        $this->add([
            'name' => 'cheminLogo',
            'required' => false,
            'filters' => [
                ['name' => StringTrim::class],
                ['name' => ToNull::class],
            ],
//                'validators' => [
//                    [
//                        'name' => Extension::class,
//                        'options' => [
//                            'extension' => ['bmp', 'png', 'jpg', 'jpeg'],
//                            'case' => false,
//                            'break_chain_on_failure' => true,
//                        ],
//                    ],
//                ],
        ]);
    }

    public function prepareForm(EtablissementForm $etablissementForm): void
    public function prepareForm(Form $structureConcreteForm): void
    {
        $etablissementForm->remove('domaine');
        $etablissementForm->remove('emailAssistance');
        $etablissementForm->remove('emailBibliotheque');
        $etablissementForm->remove('emailDoctorat');
        $etablissementForm->remove('estInscription');
        $etablissementForm->remove('estCed');
        if (!$etablissementForm->getObject()->getId()) {
            $etablissementForm->remove('estFerme');
        }
        parent::prepareForm($structureConcreteForm);

        if ($etablissementForm->getObject()->getId()) {
            $etablissementForm->get('sourceCode')->setAttribute('disabled', 'disabled');
        }
        $structureConcreteForm->remove('domaine');
        $structureConcreteForm->remove('emailAssistance');
        $structureConcreteForm->remove('emailBibliotheque');
        $structureConcreteForm->remove('emailDoctorat');
        $structureConcreteForm->remove('estInscription');
        $structureConcreteForm->remove('estCed');
    }
}
 No newline at end of file
+4 −0
Changes for module/Structure/src/Structure/Form/InputFilter/Etablissement/Inscription/EtablissementInscriptionInputFilter.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -184,6 +184,10 @@ class EtablissementInscriptionInputFilter extends EtablissementInputFilter imple
                ],
            ],
        ]);
        $this->add([
            'name' => 'cheminLogo',
            'required' => true,
        ]);
    }

    public function prepareForm(EtablissementForm $etablissementForm): void
+4 −4
Changes for module/Structure/src/Structure/Form/InputFilter/StructureInputFilterInterface.php: 4 added lines, 4 removed lines.
Original line number Diff line number Diff line
<?php

namespace Structure\Form\InputFilter\Etablissement;
namespace Structure\Form\InputFilter;

use Doctrine\ORM\EntityManager;
use Structure\Form\EtablissementForm;
use Laminas\Form\Form;

interface EtablissementInputFilterInterface
interface StructureConcreteInputFilterInterface
{
    public function __construct(EntityManager $entityManager);
    public function prepareForm(EtablissementForm $etablissementForm): void;
    public function prepareForm(Form $structureConcreteForm): void;
}
 No newline at end of file