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

[FIX] Délibération finale pour une soutenance de thèse non importée : mauvaise méthode appelée.

parent 17458583
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ Journal des modifications
- [FIX] Variable possiblement indéfinie dans le footer de la convention de mise en ligne de la thèse.
- [FIX] Module Admission : plantage lors de la suppression complète d'un dossier.
- [FIX] Admission (charte) : correction du texte à l'attention du candidat, des directions de thèse et des unités de recherche.
- [FIX] Délibération finale pour une soutenance de thèse non importée : mauvaise méthode appelée. 

12.0.0
------
+2 −2
Original line number Diff line number Diff line
@@ -66,11 +66,11 @@ class HDR implements HistoriqueAwareInterface, HasHorodatagesInterface, Resource
    public const RESULTAT_AJOURNE = 0;
    public const RESULTAT_ADMIS = 1;

    public static $resultatsLibellesLongs = [
    public static array $resultatsLibellesLongs = [
        self::RESULTAT_AJOURNE => "Ajourné",
        self::RESULTAT_ADMIS   => "Admis",
    ];
    public static $resultatsLibellesCourts = [
    public static array $resultatsLibellesCourts = [
        self::RESULTAT_AJOURNE => "AJ",
        self::RESULTAT_ADMIS   => "ADM",
    ];
+29 −20
Original line number Diff line number Diff line
@@ -424,30 +424,39 @@ abstract class PresoutenanceController extends AbstractSoutenanceController
    {
        $this->initializeFromType(false);

        $resultat = $this->params()->fromRoute('resultat');
        $resultat = (int) $this->params()->fromRoute('resultat');
        $estAdmis = $resultat === HDR::RESULTAT_ADMIS || $resultat === These::RESULTAT_ADMIS;

        $this->entity->setResultat($resultat);
        $this->entityService->update($this->entity);
        try {
            if ($this->entity instanceof These) {
                /** @var These $these */
                $these = $this->entity;
                $this->entityService->updateResultat($these, $resultat);

//        try {
//            $notif = $this->soutenanceNotificationFactory->createNotificationFeuVertSoutenance($this->proposition);
//            $this->notifierService->trigger($notif);
//        } catch (\Notification\Exception\RuntimeException) {
//            // aucun destinataire, todo : cas à gérer !
//        }
//        $this->flashMessenger()
//            //->setNamespace('presoutenance')
//            ->addSuccessMessage("Le candidat a été notifié de la délibération du jury.");

        $message = $this->entity instanceof These ? "La délibération a bien été prise en compte. <br> La thèse est passée à l'état soutenue." :
            "La délibération a bien été prise en compte. <br> La HDR est passée à l'état soutenue.";
        if((int)$resultat === HDR::RESULTAT_ADMIS || (int)$resultat === These::RESULTAT_ADMIS){
            $this->horodatageService->addHorodatage($this->proposition, HorodatageService::TYPE_ETAT, "Délibération positive");
            $this->flashMessenger()->addSuccessMessage($message);
                $message = sprintf(
                    "La délibération a bien été prise en compte. <br> La thèse est passée à l'état '%s'.",
                    These::$resultatsLibellesLongs[$resultat]
                );
            } else {
            $this->horodatageService->addHorodatage($this->proposition, HorodatageService::TYPE_ETAT, "Délibération négative");
                /** @var HDR $hdr */
                $hdr = $this->entity;
                $hdr->setResultat($resultat);
                $this->entityService->update($hdr);

                $message = sprintf(
                    "La délibération a bien été prise en compte. <br> L'HDR est passée à l'état '%s'.",
                    HDR::$resultatsLibellesLongs[$resultat]
                );
            }

            $this->horodatageService->addHorodatage($this->proposition, HorodatageService::TYPE_ETAT, "Délibération " . ($estAdmis ? "positive" : "negative"));
            $this->flashMessenger()->addSuccessMessage($message);
        } catch (Exception $e) {
            $message = "Une erreur est survenue pendant l'enregistrement de la délibération. " . $e->getMessage();
            $this->flashMessenger()->addErrorMessage($message);
            error_log($message);
        }

        return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['id' => $this->entity->getId()], [], true);
    }

+3 −3
Original line number Diff line number Diff line
@@ -485,9 +485,9 @@ $propositionEtatCode = $proposition->getEtat()->getCode();
        ]
    ); ?>

    <!-- Délibération dans l'application, seulement si celle-ci a été saisie dans celle-ci -->
    <?php if ($these->getSource()->getImportable()): ?>
        <?php
    //Délibération dans l'application, seulement si celle-ci a été saisie dans celle-ci
    if(!$these->getSource()->getImportable()):
        $cssClass = null;
        if($propositionEtatCode === Etat::ETABLISSEMENT || $propositionEtatCode === Etat::COMPLET || $propositionEtatCode === Etat::REJETEE) {
            $bgcolor = "bg-dark";
+2 −2
Original line number Diff line number Diff line
@@ -75,11 +75,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface, SoutenanceTa
    public const RESULTAT_AJOURNE = 0;
    public const RESULTAT_ADMIS   = 1;

    public static $resultatsLibellesLongs = [
    public static array $resultatsLibellesLongs = [
        self::RESULTAT_AJOURNE => "Ajourné",
        self::RESULTAT_ADMIS   => "Admis",
    ];
    public static $resultatsLibellesCourts = [
    public static array $resultatsLibellesCourts = [
        self::RESULTAT_AJOURNE => "AJ",
        self::RESULTAT_ADMIS   => "ADM",
    ];