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

Ajout d'une vérification de la date de soutenance dans le formulaire pour...

Ajout d'une vérification de la date de soutenance dans le formulaire pour prévenir des erreurs de saisie (p.e. 12/09/0022)
parent 2d0fdf40
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ Journal des modifications
- [FIX] Ajout de garde pour l'index des rapporteurs (cas où le membre est null qui bloquait les administrateurs)
- Changement du lien dans le mail pour la validation des présidents : redirect + selection du rôle
- [FIX] Amélioration de la robustesse de la proposition de soutenance pour les cas de th_se sans ED, sans UR ou sans ETAB
- Ajout d'une vérification de la date de soutenance dans le formulaire pour prévenir des erreurs de saisie (p.e. 12/09/0022)

5.2.0 
-----
+0 −37
Changes for module/Formation/src/Formation/Entity/Db/Mapping/Formation.Entity.Db.EnqueteCategorie.dcm.xml: 0 added lines, 37 removed lines.
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Formation\Entity\Db\EnqueteCategorie"
            table="FORMATION_ENQUETE_CATEGORIE"
            repository-class="Formation\Entity\Db\Repository\EnqueteCategorieRepository">

        <id name="id" type="integer" column="ID">
            <generator strategy="SEQUENCE"/>
        </id>

        <field name="libelle"             type="string"       length="1024"       column="LIBELLE"          nullable="false"/>
        <field name="description"         type="string"       length="9999"       column="DESCRIPTION"      nullable="true"/>
        <field name="ordre"               type="integer"                          column="ORDRE"      nullable="true"/>

        <one-to-many field="questions" target-entity="Formation\Entity\Db\EnqueteQuestion" mapped-by="categorie"/>

        <!-- HISTORISATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
        <field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
        <field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
        <many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
    </entity>
</doctrine-mapping>
 No newline at end of file
+0 −41
Changes for module/Formation/src/Formation/Entity/Db/Mapping/Formation.Entity.Db.EnqueteQuestion.dcm.xml: 0 added lines, 41 removed lines.
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Formation\Entity\Db\EnqueteQuestion"
            table="FORMATION_ENQUETE_QUESTION"
            repository-class="Formation\Entity\Db\Repository\EnqueteQuestionRepository">

        <id name="id" type="integer" column="ID">
            <generator strategy="SEQUENCE"/>
        </id>

        <field name="libelle"             type="string"       length="1024"       column="LIBELLE"          nullable="false"/>
        <field name="description"         type="string"       length="9999"       column="DESCRIPTION"      nullable="true"/>
        <field name="ordre"               type="integer"                          column="ORDRE"      nullable="true"/>

        <many-to-one field="categorie" target-entity="Formation\Entity\Db\EnqueteCategorie">
            <join-columns>
                <join-column name="categorie_id" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>

        <!-- HISTORISATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
        <field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
        <field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
        <many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
    </entity>
</doctrine-mapping>
 No newline at end of file
+0 −45
Changes for module/Formation/src/Formation/Entity/Db/Mapping/Formation.Entity.Db.EnqueteReponse.dcm.xml: 0 added lines, 45 removed lines.
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Formation\Entity\Db\EnqueteReponse"
            table="FORMATION_ENQUETE_REPONSE"
            repository-class="Formation\Entity\Db\Repository\EnqueteReponseRepository">

        <id name="id" type="integer" column="ID">
            <generator strategy="SEQUENCE"/>
        </id>

        <many-to-one field="inscription" target-entity="Formation\Entity\Db\Inscription">
            <join-columns>
                <join-column name="INSCRIPTION_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="question" target-entity="Formation\Entity\Db\EnqueteQuestion">
            <join-columns>
                <join-column name="QUESTION_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>

        <field name="niveau"              type="integer"                          column="NIVEAU"           nullable="false"/>
        <field name="description"         type="string"       length="9999"       column="DESCRIPTION"      nullable="true"/>

        <!-- HISTORISATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
        <field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
        <field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
        <many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
    </entity>
</doctrine-mapping>
 No newline at end of file
+21 −1
Changes for module/Soutenance/src/Soutenance/Form/DateLieu/DateLieuForm.php: 21 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ use Laminas\Form\Element\Radio;
use Laminas\Form\Element\Text;
use Laminas\Form\Form;
use Laminas\InputFilter\Factory;
use Laminas\Validator\Callback;
use DateTime as DDateTime;

class DateLieuForm extends Form {

@@ -72,7 +74,25 @@ class DateLieuForm extends Form {
        ]);

        $this->setInputFilter((new Factory())->createInputFilter([
            'date' => [ 'required' => true, ],
            'date' => [
                'required' => true,
                'validators' => [
                    [
                        'name' => Callback::class,
                        'options' => [
                            'messages' => [
                                Callback::INVALID_VALUE => "La date de soutenance est dans le passé ! ",
                            ],
                            'callback' => function ($value) {
                                $sdate = DDateTime::createFromFormat('d/m/Y', $value);
                                $cdate = new DDateTime();
                                $res = $sdate >= $cdate;
                                return $res;
                            },
                        ],
                    ],
                ],
            ],
            'heure' => [ 'required' => true, ],
            'lieu' => [ 'required' => true, ],
            'exterieur' => [ 'required' => true, ],