Commit 9c48fca1 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'feature_cotutelle' into test

parents a21e056f 7de6457a
Loading
Loading
Loading
Loading
+68 −68
Changes for module/These/src/These/Fieldset/Generalites/GeneralitesFieldset.php: 68 added lines, 68 removed lines.
Original line number Diff line number Diff line
@@ -40,8 +40,8 @@ class GeneralitesFieldset extends Fieldset implements InputFilterProviderInterfa

    public function prepareElement(FormInterface $form): void
    {
        $this->get('paysCoTutelle')->setEmptyOption('Sélectionnez une option');
        $this->get('paysCoTutelle')->setValueOptions($this->pays);
//        $this->get('paysCoTutelle')->setEmptyOption('Sélectionnez une option');
//        $this->get('paysCoTutelle')->setValueOptions($this->pays);

        /** @var These $these */
        $these = $this->getObject();
@@ -54,9 +54,9 @@ class GeneralitesFieldset extends Fieldset implements InputFilterProviderInterfa
        $this->get('dateFinConfidentialite')->setAttribute('disabled', !$estModifiable);
        $this->get('datePremiereInscription')->setAttribute('disabled', !$these->getSource()->getImportable() && !empty($this->get('datePremiereInscription')->getValue()));
//        $this->get('resultat')->setAttribute('disabled', true); // le résultat ne DOIT PAS pouvoir être modifié manuellement ici
        $this->get('cotutelle')->setAttribute('disabled', !$estModifiable);
        $this->get('etablissementCoTutelle')->setAttribute('disabled', !$estModifiable);
        $this->get('paysCoTutelle')->setAttribute('disabled', !$estModifiable);
//        $this->get('cotutelle')->setAttribute('disabled', !$estModifiable);
//        $this->get('etablissementCoTutelle')->setAttribute('disabled', !$estModifiable);
//        $this->get('paysCoTutelle')->setAttribute('disabled', !$estModifiable);

        parent::prepareElement($form); // TODO: Change the autogenerated stub
    }
@@ -148,43 +148,43 @@ class GeneralitesFieldset extends Fieldset implements InputFilterProviderInterfa
        $titreAccesTheseFieldset = $this->getFormFactory()->getFormElementManager()->get(TitreAccesFieldset::class);
        $this->add($titreAccesTheseFieldset, ['name' => 'titreAcces']);

        $this->add(
            (new Radio('cotutelle'))
                ->setValueOptions([
                    0 => "Non",
                    1 => "Oui"
                ])
        );

        $this->add([
            'type' => ObjectSelect::class,
            'name' => 'etablissementCoTutelle',
            'options' => [
                'label' => "Établissement de cotutelle <span class='icon icon-obligatoire' style='color: darkred;font-size: 0.8em;' data-bs-toggle='tooltip' title='Obligatoire'></span> :",
                'label_options' => [ 'disable_html_escape' => true, ],
                'empty_option' => "Sélectionnez une option",
                'target_class' => Etablissement::class,
                'disable_inarray_validator' => true,
            ],
            'attributes' => [
                'id' => 'etablissement-cotutelle',
                'class' => 'selectpicker show-menu-arrow',
                'title' => "Sélectionner l'établissement",
                'data-live-search' => 'true',
            ],
        ]);

        $this->add(
            (new Select("paysCoTutelle"))
                ->setLabel("Pays de la cotutelle <span class='icon icon-obligatoire' style='color: darkred;font-size: 0.8em;' data-bs-toggle='tooltip' title='Obligatoire'></span> : ")
                ->setLabelOptions(['disable_html_escape' => true])
                ->setOptions(['emptyOption' => 'Choisissez un élément',])
                ->setAttributes([
                    'class' => 'selectpicker show-tick',
                    'data-live-search' => 'true',
                    'id' => "pays-cotutelle"
                ])
        );
//        $this->add(
//            (new Radio('cotutelle'))
//                ->setValueOptions([
//                    0 => "Non",
//                    1 => "Oui"
//                ])
//        );
//
//        $this->add([
//            'type' => ObjectSelect::class,
//            'name' => 'etablissementCoTutelle',
//            'options' => [
//                'label' => "Établissement de cotutelle <span class='icon icon-obligatoire' style='color: darkred;font-size: 0.8em;' data-bs-toggle='tooltip' title='Obligatoire'></span> :",
//                'label_options' => [ 'disable_html_escape' => true, ],
//                'empty_option' => "Sélectionnez une option",
//                'target_class' => Etablissement::class,
//                'disable_inarray_validator' => true,
//            ],
//            'attributes' => [
//                'id' => 'etablissement-cotutelle',
//                'class' => 'selectpicker show-menu-arrow',
//                'title' => "Sélectionner l'établissement",
//                'data-live-search' => 'true',
//            ],
//        ]);
//
//        $this->add(
//            (new Select("paysCoTutelle"))
//                ->setLabel("Pays de la cotutelle <span class='icon icon-obligatoire' style='color: darkred;font-size: 0.8em;' data-bs-toggle='tooltip' title='Obligatoire'></span> : ")
//                ->setLabelOptions(['disable_html_escape' => true])
//                ->setOptions(['emptyOption' => 'Choisissez un élément',])
//                ->setAttributes([
//                    'class' => 'selectpicker show-tick',
//                    'data-live-search' => 'true',
//                    'id' => "pays-cotutelle"
//                ])
//        );

//        $this->add(
//            (new Select("resultat"))
@@ -265,32 +265,32 @@ class GeneralitesFieldset extends Fieldset implements InputFilterProviderInterfa
            'dateFinConfidentialite' => [
                'required' => false,
            ],
            'cotutelle' => [
                'required' => false,
                'validators' => [
                    [
                        'name' => Callback::class,
                        'options' => [
                            'messages' => [
                                Callback::INVALID_VALUE => "Il faut renseigner l'établissement ainsi que le pays de cotutelle",
                            ],
                            'callback' => function ($value, $context = []) {
                                if ((isset($context['cotutelle']) && $context['cotutelle'] === "1") && (empty($context['etablissementCoTutelle']) || empty($context['paysCoTutelle']))) {
                                    return false;
                                }
                                return true;
                            },
                            'break_chain_on_failure' => true,
                        ],
                    ],
                ],
            ],
            'etablissementCoTutelle' => [
                'required' => false,
            ],
            'paysCoTutelle' => [
                'required' => false,
            ],
//            'cotutelle' => [
//                'required' => false,
//                'validators' => [
//                    [
//                        'name' => Callback::class,
//                        'options' => [
//                            'messages' => [
//                                Callback::INVALID_VALUE => "Il faut renseigner l'établissement ainsi que le pays de cotutelle",
//                            ],
//                            'callback' => function ($value, $context = []) {
//                                if ((isset($context['cotutelle']) && $context['cotutelle'] === "1") && (empty($context['etablissementCoTutelle']) || empty($context['paysCoTutelle']))) {
//                                    return false;
//                                }
//                                return true;
//                            },
//                            'break_chain_on_failure' => true,
//                        ],
//                    ],
//                ],
//            ],
//            'etablissementCoTutelle' => [
//                'required' => false,
//            ],
//            'paysCoTutelle' => [
//                'required' => false,
//            ],
//            'resultat' => [
//                'required' => false,
//            ],
+6 −6
Changes for module/These/src/These/Fieldset/Generalites/GeneralitesHydrator.php: 6 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -34,8 +34,8 @@ class GeneralitesHydrator extends DoctrineObject
        //Confidentialité
        $data['confidentialite'] = ($object->getDateFinConfidentialite() !== null) ? 1 : 0;

        //Spécifités envisagées
        $data['paysCoTutelle'] = $object->getPaysCoTutelle()?->getId();
//        //Spécifités envisagées
//        $data['paysCoTutelle'] = $object->getPaysCoTutelle()?->getId();

        return $data;
    }
@@ -81,10 +81,10 @@ class GeneralitesHydrator extends DoctrineObject
            $object->addAnneesUnivInscription($theseAnneeUnivPremiereInscription);
        }

        if(!isset($data['cotutelle']) || !$data['cotutelle']) {
            $data['etablissementCoTutelle'] = null;
            $data['paysCoTutelle'] = null;
        }
//        if(!isset($data['cotutelle']) || !$data['cotutelle']) {
//            $data['etablissementCoTutelle'] = null;
//            $data['paysCoTutelle'] = null;
//        }

        //problème sinon lors de l'hydratation, objet TitreAcces a comme clé "financements" -> gros mystère
//        if (array_key_exists("financements", $data)) {
+12 −12
Changes for module/These/view/these/these-saisie/partial/specifites.phtml: 12 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -12,18 +12,18 @@
    <div class="col-6 mb-3 these-saisie-form-section">
        <h3 class="these-saisie-title-section">Co-tutelle envisagée ?</h3>

        <div class="row">
            <?php echo $this->formControlGroup($fs->get('cotutelle')) ?>
        </div>
        <div class="row" id="informations-co-tutelle">
            <div class="row">
                <?php echo $this->formControlGroup($fs->get('etablissementCoTutelle')) ?>
            </div>

            <div class="row">
                <?php echo $this->formControlGroup($fs->get('paysCoTutelle')) ?>
            </div>
        </div>
<!--        <div class="row">-->
<!--            --><?php //echo $this->formControlGroup($fs->get('cotutelle')) ?>
<!--        </div>-->
<!--        <div class="row" id="informations-co-tutelle">-->
<!--            <div class="row">-->
<!--                --><?php //echo $this->formControlGroup($fs->get('etablissementCoTutelle')) ?>
<!--            </div>-->
<!---->
<!--            <div class="row">-->
<!--                --><?php //echo $this->formControlGroup($fs->get('paysCoTutelle')) ?>
<!--            </div>-->
<!--        </div>-->
    </div>
</fieldset>