Loading CHANGELOG.md +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 ----- Loading module/Soutenance/src/Soutenance/Assertion/HDR/PropositionHDRAssertion.php +4 −1 Original line number Diff line number Diff line Loading @@ -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; } Loading module/Soutenance/src/Soutenance/Assertion/These/PropositionTheseAssertion.php +5 −1 Original line number Diff line number Diff line Loading @@ -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; } Loading module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +1 −1 Original line number Diff line number Diff line Loading @@ -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), ]); } Loading module/Soutenance/src/Soutenance/Service/Avis/AvisService.php +2 −1 Original line number Diff line number Diff line Loading @@ -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 : Loading @@ -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 Loading
CHANGELOG.md +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 ----- Loading
module/Soutenance/src/Soutenance/Assertion/HDR/PropositionHDRAssertion.php +4 −1 Original line number Diff line number Diff line Loading @@ -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; } Loading
module/Soutenance/src/Soutenance/Assertion/These/PropositionTheseAssertion.php +5 −1 Original line number Diff line number Diff line Loading @@ -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; } Loading
module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +1 −1 Original line number Diff line number Diff line Loading @@ -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), ]); } Loading
module/Soutenance/src/Soutenance/Service/Avis/AvisService.php +2 −1 Original line number Diff line number Diff line Loading @@ -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 : Loading @@ -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