Loading CHANGELOG.md +7 −0 Original line number Diff line number Diff line Journal des modifications ========================= 3.0.7 ----- - Nouveau critère de bloquage des soutenances basé sur la validité des rapporteurs. - Retrait de la mention qualité absente sur le justificatif de co-encadrement - Ajustement de la date/heure de rendu des rapports - Modification du lien dans les mails vers les rapporteurs (description complète : token, role, redirect) 3.0.6 ----- - [FIX] Non affichage des justificatifs historisés dans la proposition de soutenance Loading doc/release-notes/v3.0.7.md 0 → 100644 +18 −0 Original line number Diff line number Diff line # Version 3.0.7 ## 1. Sur le serveur d'application - Placez-vous dans le répertoire de l'application puis lancez la commande suivante pour installer la nouvelle version : ```bash git fetch --tags && git checkout --force 3.0.7 && bash ./install.sh ``` - Selon le moteur PHP que vous avez installé, rechargez le service, exemple : - php7.3-fpm : `service php7.3-fpm reload` - apache2-mod-php7.3 : `service apache2 reload` ## 2. Dans la base de données Néant. module/Application/src/Application/Service/CoEncadrant/Exporter/JustificatifCoencadrements/justificatif-coencadrements.phtml +1 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ use Application\View\Renderer\PhpRenderer; <p> Ce document certifie que <?php echo $coencadrant->getIndividu()->getPrenom1(); ?> <?php echo $coencadrant->getIndividu()->getNomUsuel(); ?>, actuellement <?php echo ($coencadrant->getQualite() !== " ")?$coencadrant->getQualite():"<span style='color:darkred;'>qualité manquante</span>"; ?> à actuellement <?php echo ($coencadrant->getQualite() !== " ")?$coencadrant->getQualite():""; ?> à <?php echo ($coencadrant->getEtablissement())?$coencadrant->getEtablissement()->getLibelle():"<span style='color:darkred;'>établissement manquant</span>"; ?>, a assuré la fonction de co-encadrant sur pour les thèses suivantes : </p> Loading module/Soutenance/src/Soutenance/Controller/EngagementImpartialiteController.php +33 −2 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ use Soutenance\Service\Evenement\EvenementServiceAwareTrait; use Soutenance\Service\Membre\MembreServiceAwareTrait; use Soutenance\Service\Notifier\NotifierSoutenanceServiceAwareTrait; use Soutenance\Service\Proposition\PropositionServiceAwareTrait; use UnicaenAuthToken\Service\TokenServiceAwareTrait; use Zend\View\Model\ViewModel; /** Loading @@ -27,6 +28,7 @@ class EngagementImpartialiteController extends AbstractController use MembreServiceAwareTrait; use NotifierSoutenanceServiceAwareTrait; use PropositionServiceAwareTrait; use TokenServiceAwareTrait; public function engagementImpartialiteAction() { Loading Loading @@ -58,8 +60,24 @@ class EngagementImpartialiteController extends AbstractController /** @var Membre $membre */ foreach ($proposition->getMembres() as $membre) { if ($membre->getActeur() and $membre->estRapporteur()) { $validation = $this->getEngagementImpartialiteService()->getEngagementImpartialiteByMembre($these, $membre); if (!$validation) $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre); if (!$validation) { $utilisateurs = $membre->getActeur()->getIndividu()->getUtilisateurs(); $token = null; foreach ($utilisateurs as $utilisateur) { $token = $this->tokenService->findUserTokenByUserId($utilisateur->getId()); if (! $token->isExpired()) break; } if ($token !== null) { $url_rapporteur = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); $url = $this->url()->fromRoute('zfcuser/login', ['type' => 'token'], ['query' => ['token' => $token->getToken(), 'redirect' => $url_rapporteur, 'role' => $membre->getActeur()->getRole()->getRoleId()], 'force_canonical' => true], true); } else { $url = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); } $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre, $url); } } } Loading @@ -74,7 +92,20 @@ class EngagementImpartialiteController extends AbstractController $membre = $this->getMembreService()->getRequestedMembre($this); if ($membre->getActeur()) { $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre); $utilisateurs = $membre->getActeur()->getIndividu()->getUtilisateurs(); $token = null; foreach ($utilisateurs as $utilisateur) { $token = $this->tokenService->findUserTokenByUserId($utilisateur->getId()); if (! $token->isExpired()) break; } if ($token !== null) { $url_rapporteur = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); $url = $this->url()->fromRoute('zfcuser/login', ['type' => 'token'], ['query' => ['token' => $token->getToken(), 'redirect' => $url_rapporteur, 'role' => $membre->getActeur()->getRole()->getRoleId()], 'force_canonical' => true], true); } else { $url = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); } $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre, $url); } $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true); Loading module/Soutenance/src/Soutenance/Controller/EngagementImpartialiteControllerFactory.php +5 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ use Soutenance\Service\Evenement\EvenementService; use Soutenance\Service\Membre\MembreService; use Soutenance\Service\Notifier\NotifierSoutenanceService; use Soutenance\Service\Proposition\PropositionService; use UnicaenAuthToken\Service\TokenService; use UnicaenAuthToken\Service\TokenServiceAwareTrait; class EngagementImpartialiteControllerFactory { Loading @@ -25,6 +27,7 @@ class EngagementImpartialiteControllerFactory * @var MembreService $membreService * @var NotifierSoutenanceService $notifierService * @var EngagementImpartialiteService $engagementImpartialiteService * @var TokenService $tokenService */ $acteurService = $container->get(ActeurService::class); $evenementService = $container->get(EvenementService::class); Loading @@ -32,6 +35,7 @@ class EngagementImpartialiteControllerFactory $membreService = $container->get(MembreService::class); $notifierService = $container->get(NotifierSoutenanceService::class); $engagementImpartialiteService = $container->get(EngagementImpartialiteService::class); $tokenService = $container->get(TokenService::class); /** @var EngagementImpartialiteController $controller */ $controller = new EngagementImpartialiteController(); Loading @@ -41,6 +45,7 @@ class EngagementImpartialiteControllerFactory $controller->setMembreService($membreService); $controller->setNotifierSoutenanceService($notifierService); $controller->setEngagementImpartialiteService($engagementImpartialiteService); $controller->setTokenService($tokenService); return $controller; } Loading Loading
CHANGELOG.md +7 −0 Original line number Diff line number Diff line Journal des modifications ========================= 3.0.7 ----- - Nouveau critère de bloquage des soutenances basé sur la validité des rapporteurs. - Retrait de la mention qualité absente sur le justificatif de co-encadrement - Ajustement de la date/heure de rendu des rapports - Modification du lien dans les mails vers les rapporteurs (description complète : token, role, redirect) 3.0.6 ----- - [FIX] Non affichage des justificatifs historisés dans la proposition de soutenance Loading
doc/release-notes/v3.0.7.md 0 → 100644 +18 −0 Original line number Diff line number Diff line # Version 3.0.7 ## 1. Sur le serveur d'application - Placez-vous dans le répertoire de l'application puis lancez la commande suivante pour installer la nouvelle version : ```bash git fetch --tags && git checkout --force 3.0.7 && bash ./install.sh ``` - Selon le moteur PHP que vous avez installé, rechargez le service, exemple : - php7.3-fpm : `service php7.3-fpm reload` - apache2-mod-php7.3 : `service apache2 reload` ## 2. Dans la base de données Néant.
module/Application/src/Application/Service/CoEncadrant/Exporter/JustificatifCoencadrements/justificatif-coencadrements.phtml +1 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ use Application\View\Renderer\PhpRenderer; <p> Ce document certifie que <?php echo $coencadrant->getIndividu()->getPrenom1(); ?> <?php echo $coencadrant->getIndividu()->getNomUsuel(); ?>, actuellement <?php echo ($coencadrant->getQualite() !== " ")?$coencadrant->getQualite():"<span style='color:darkred;'>qualité manquante</span>"; ?> à actuellement <?php echo ($coencadrant->getQualite() !== " ")?$coencadrant->getQualite():""; ?> à <?php echo ($coencadrant->getEtablissement())?$coencadrant->getEtablissement()->getLibelle():"<span style='color:darkred;'>établissement manquant</span>"; ?>, a assuré la fonction de co-encadrant sur pour les thèses suivantes : </p> Loading
module/Soutenance/src/Soutenance/Controller/EngagementImpartialiteController.php +33 −2 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ use Soutenance\Service\Evenement\EvenementServiceAwareTrait; use Soutenance\Service\Membre\MembreServiceAwareTrait; use Soutenance\Service\Notifier\NotifierSoutenanceServiceAwareTrait; use Soutenance\Service\Proposition\PropositionServiceAwareTrait; use UnicaenAuthToken\Service\TokenServiceAwareTrait; use Zend\View\Model\ViewModel; /** Loading @@ -27,6 +28,7 @@ class EngagementImpartialiteController extends AbstractController use MembreServiceAwareTrait; use NotifierSoutenanceServiceAwareTrait; use PropositionServiceAwareTrait; use TokenServiceAwareTrait; public function engagementImpartialiteAction() { Loading Loading @@ -58,8 +60,24 @@ class EngagementImpartialiteController extends AbstractController /** @var Membre $membre */ foreach ($proposition->getMembres() as $membre) { if ($membre->getActeur() and $membre->estRapporteur()) { $validation = $this->getEngagementImpartialiteService()->getEngagementImpartialiteByMembre($these, $membre); if (!$validation) $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre); if (!$validation) { $utilisateurs = $membre->getActeur()->getIndividu()->getUtilisateurs(); $token = null; foreach ($utilisateurs as $utilisateur) { $token = $this->tokenService->findUserTokenByUserId($utilisateur->getId()); if (! $token->isExpired()) break; } if ($token !== null) { $url_rapporteur = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); $url = $this->url()->fromRoute('zfcuser/login', ['type' => 'token'], ['query' => ['token' => $token->getToken(), 'redirect' => $url_rapporteur, 'role' => $membre->getActeur()->getRole()->getRoleId()], 'force_canonical' => true], true); } else { $url = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); } $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre, $url); } } } Loading @@ -74,7 +92,20 @@ class EngagementImpartialiteController extends AbstractController $membre = $this->getMembreService()->getRequestedMembre($this); if ($membre->getActeur()) { $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre); $utilisateurs = $membre->getActeur()->getIndividu()->getUtilisateurs(); $token = null; foreach ($utilisateurs as $utilisateur) { $token = $this->tokenService->findUserTokenByUserId($utilisateur->getId()); if (! $token->isExpired()) break; } if ($token !== null) { $url_rapporteur = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); $url = $this->url()->fromRoute('zfcuser/login', ['type' => 'token'], ['query' => ['token' => $token->getToken(), 'redirect' => $url_rapporteur, 'role' => $membre->getActeur()->getRole()->getRoleId()], 'force_canonical' => true], true); } else { $url = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true); } $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre, $url); } $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true); Loading
module/Soutenance/src/Soutenance/Controller/EngagementImpartialiteControllerFactory.php +5 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ use Soutenance\Service\Evenement\EvenementService; use Soutenance\Service\Membre\MembreService; use Soutenance\Service\Notifier\NotifierSoutenanceService; use Soutenance\Service\Proposition\PropositionService; use UnicaenAuthToken\Service\TokenService; use UnicaenAuthToken\Service\TokenServiceAwareTrait; class EngagementImpartialiteControllerFactory { Loading @@ -25,6 +27,7 @@ class EngagementImpartialiteControllerFactory * @var MembreService $membreService * @var NotifierSoutenanceService $notifierService * @var EngagementImpartialiteService $engagementImpartialiteService * @var TokenService $tokenService */ $acteurService = $container->get(ActeurService::class); $evenementService = $container->get(EvenementService::class); Loading @@ -32,6 +35,7 @@ class EngagementImpartialiteControllerFactory $membreService = $container->get(MembreService::class); $notifierService = $container->get(NotifierSoutenanceService::class); $engagementImpartialiteService = $container->get(EngagementImpartialiteService::class); $tokenService = $container->get(TokenService::class); /** @var EngagementImpartialiteController $controller */ $controller = new EngagementImpartialiteController(); Loading @@ -41,6 +45,7 @@ class EngagementImpartialiteControllerFactory $controller->setMembreService($membreService); $controller->setNotifierSoutenanceService($notifierService); $controller->setEngagementImpartialiteService($engagementImpartialiteService); $controller->setTokenService($tokenService); return $controller; } Loading