Commit 3dba0ca2 authored by Thomas Hamel's avatar Thomas Hamel
Browse files

[FIX] Proposition de soutenance bloquée lorsque tous les avis étaient défavorables

parent 2618843c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
Journal des modifications
=========================
10.0.3
-----
- [FIX] Génération du document pour signature pour la présidence (proposition de soutenance) était possible même sans la validation préalable des autres acteurs
- [FIX] Proposition de soutenance bloquée lorsque tous les avis étaient défavorables 

10.0.2
-----
+4 −1
Original line number Diff line number Diff line
@@ -203,7 +203,10 @@ class PropositionHDRAssertion implements AssertionInterface {
            case PropositionPrivileges::PROPOSITION_PRESIDENCE:
                switch($role) {
                    case Role::CODE_GEST_HDR:
                        return $structure === $hdrEtablissementStructure;
                        if($structure !== $hdrEtablissementStructure) return false;
                        $validations_UNITE  = $this->getValidationHDRService()->getRepository()->findValidationByCodeAndHDR(TypeValidation::CODE_VALIDATION_PROPOSITION_BDD, $hdr);

                        return !empty($validations_UNITE);
                    default:
                        return false;
                }
+5 −1
Original line number Diff line number Diff line
@@ -244,7 +244,11 @@ class PropositionTheseAssertion implements AssertionInterface {
            case PropositionPrivileges::PROPOSITION_PRESIDENCE:
                switch($role) {
                    case Role::CODE_BDD :
                        return $structure === $theseEtablissementStructure;
                        if($structure !== $theseEtablissementStructure) return false;
                        $validations_UNITE  = $this->getValidationTheseService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_VALIDATION_PROPOSITION_UR, $these);
                        $validations_ED  = $this->getValidationTheseService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_VALIDATION_PROPOSITION_ED, $these);

                        return !empty($validations_ED) && !empty($validations_UNITE);
                    default:
                        return false;
                }
+1 −1
Original line number Diff line number Diff line
@@ -428,7 +428,7 @@ abstract class PresoutenanceController extends AbstractSoutenanceController
            $vm->setTemplate('soutenance/default/confirmation');
            $vm->setVariables([
                'title' => "Annuler/Rejeter la proposition de soutenance",
                'text' => "L'annulation effacera le dossier de soutentance et les justificatifs associés. Êtes-vous sûr·e de vouloir continuer ?",
                'text' => "L'annulation effacera le dossier de soutenance et les justificatifs associés. Êtes-vous sûr·e de vouloir continuer ?",
                'action' => $this->url()->fromRoute("soutenance_{$this->type}/presoutenance/stopper-demarche", ['id' => $this->entity->getId()], [], true),
            ]);
        }
+2 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ class AvisService
     * @param Proposition $proposition
     * @return Avis[]
     */
    public function getAvisByProposition(Proposition $proposition)
    public function getAvisByProposition(Proposition $proposition, bool $histo = false)
    {
        $acteurService = $proposition instanceof PropositionThese ?
            $this->acteurTheseService :
@@ -184,6 +184,7 @@ class AvisService
            ->andWhere('proposition.histoDestruction IS NULL')
            ->andWhere('proposition = :proposition')
            ->setParameter('proposition', $proposition);
        if (!$histo) $qb = $qb->andWhere('avis.histoDestruction IS NULL');
        $result = $qb->getQuery()->getResult();

        $avis = [];
Loading