Loading CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ Journal des modifications - [FIX] Plus d'envoi de mail lors du classement des inscriptions si les inscriptions ne sont pas closes - [FIX] Ajout de l'affichage de la liste des présences à une session si celle-ci est imminente. - [FIX] Correction du calcul d'erreur de l'année de thèse du doctorant dans les sessions de formation. - [FIX] Correction du problème de téléchargement des avis en mode non connecté (par exemple pour les membres du jury) 5.2.5 ----- Loading module/Soutenance/config/others/avis.config.php +18 −0 Changes for module/Soutenance/config/others/avis.config.php: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -56,6 +56,13 @@ return array( ], 'privileges' => AvisSoutenancePrivileges::AVIS_ANNULER, ], [ 'controller' => AvisController::class, 'action' => [ 'telecharger', ], 'roles' => [], ], ], ], ], Loading Loading @@ -97,6 +104,17 @@ return array( ], ], ], 'telecharger' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/telecharger', 'defaults' => [ 'controller' => AvisController::class, 'action' => 'telecharger', ], ], ], ], ], ], Loading module/Soutenance/src/Soutenance/Controller/AvisController.php +25 −0 Changes for module/Soutenance/src/Soutenance/Controller/AvisController.php: 25 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ namespace Soutenance\Controller; use Application\Controller\AbstractController; use Fichier\Service\Fichier\FichierServiceAwareTrait; use Fichier\Service\Fichier\FichierStorageServiceAwareTrait; use Fichier\Service\Storage\Adapter\Exception\StorageAdapterException; use These\Service\Acteur\ActeurServiceAwareTrait; use These\Service\These\TheseServiceAwareTrait; use Soutenance\Entity\Avis; Loading @@ -16,6 +19,7 @@ use Soutenance\Service\Proposition\PropositionServiceAwareTrait; use Soutenance\Service\Validation\ValidatationServiceAwareTrait; use Laminas\Http\Request; use Laminas\View\Model\ViewModel; use UnicaenApp\Exception\RuntimeException; class AvisController extends AbstractController { Loading @@ -27,6 +31,9 @@ class AvisController extends AbstractController use TheseServiceAwareTrait; use ValidatationServiceAwareTrait; use FichierStorageServiceAwareTrait; use FichierServiceAwareTrait; use AvisFormAwareTrait; public function indexAction() Loading Loading @@ -133,4 +140,22 @@ class AvisController extends AbstractController $this->redirect()->toRoute('soutenance/index-rapporteur', ['these' => $these->getId()], [], true); } public function telechargerAction() { $these = $this->requestedThese(); $membre = $this->getMembreService()->getRequestedMembre($this, 'rapporteur'); $avis = $this->getAvisService()->getAvisByMembre($membre); $fichier = $avis->getFichier(); // injection préalable du contenu du fichier pour pouvoir utiliser le plugin Uploader try { $contenuFichier = $this->fichierStorageService->getFileContentForFichier($fichier); } catch (StorageAdapterException $e) { throw new RuntimeException("Impossible d'obtenir le contenu du fichier", null, $e); } $fichier->setContenuFichierData($contenuFichier); $this->uploader()->download($fichier); } } No newline at end of file module/Soutenance/src/Soutenance/Controller/AvisControllerFactory.php +16 −2 Changes for module/Soutenance/src/Soutenance/Controller/AvisControllerFactory.php: 16 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ namespace Soutenance\Controller; use Fichier\Service\Fichier\FichierService; use Fichier\Service\Fichier\FichierStorageService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use These\Service\Acteur\ActeurService; use These\Service\These\TheseService; use Interop\Container\ContainerInterface; Loading @@ -17,8 +21,10 @@ class AvisControllerFactory /** * @param ContainerInterface $container * @return AvisController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) public function __invoke(ContainerInterface $container) : AvisController { /** Loading @@ -38,12 +44,17 @@ class AvisControllerFactory $theseService = $container->get('TheseService'); $validationService = $container->get(ValidationService::class); /** @var FichierService $fichierService */ $fichierService = $container->get(FichierService::class); /** @var FichierStorageService $fileService */ $fileService = $container->get(FichierStorageService::class); /** * @var AvisForm $avisForm */ $avisForm = $container->get('FormElementManager')->get(AvisForm::class); /** @var AvisController $controller */ $controller = new AvisController(); $controller->setTheseService($theseService); $controller->setValidationService($validationService); Loading @@ -53,6 +64,9 @@ class AvisControllerFactory $controller->setAvisService($avisService); $controller->setMembreService($membreService); $controller->setFichierService($fichierService); $controller->setFichierStorageService($fileService); $controller->setAvisForm($avisForm); return $controller; Loading module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +9 −3 Changes for module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php: 9 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -593,10 +593,16 @@ class PresoutenanceController extends AbstractController foreach ($proposition->getAvis() as $avis) { if ($avis->estNonHistorise()) { $denomination = $avis->getMembre()->getDenomination(); $lien = $this->url()->fromRoute('fichier/these/telecharger', [ // $lien = $this->url()->fromRoute('fichier/these/telecharger', [ // 'these' => $these->getId(), // 'fichier' => $avis->getFichier()->getUuid(), // 'fichierNom' => $avis->getFichier()->getNom(), // ], [ // 'force_canonical'=>true // ],true); $lien = $this->url()->fromRoute('soutenance/avis-soutenance/telecharger', [ 'these' => $these->getId(), 'fichier' => $avis->getFichier()->getUuid(), 'fichierNom' => $avis->getFichier()->getNom(), 'membre' => $avis->getMembre()->getId() ], [ 'force_canonical'=>true ], true); Loading Loading
CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ Journal des modifications - [FIX] Plus d'envoi de mail lors du classement des inscriptions si les inscriptions ne sont pas closes - [FIX] Ajout de l'affichage de la liste des présences à une session si celle-ci est imminente. - [FIX] Correction du calcul d'erreur de l'année de thèse du doctorant dans les sessions de formation. - [FIX] Correction du problème de téléchargement des avis en mode non connecté (par exemple pour les membres du jury) 5.2.5 ----- Loading
module/Soutenance/config/others/avis.config.php +18 −0 Changes for module/Soutenance/config/others/avis.config.php: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -56,6 +56,13 @@ return array( ], 'privileges' => AvisSoutenancePrivileges::AVIS_ANNULER, ], [ 'controller' => AvisController::class, 'action' => [ 'telecharger', ], 'roles' => [], ], ], ], ], Loading Loading @@ -97,6 +104,17 @@ return array( ], ], ], 'telecharger' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/telecharger', 'defaults' => [ 'controller' => AvisController::class, 'action' => 'telecharger', ], ], ], ], ], ], Loading
module/Soutenance/src/Soutenance/Controller/AvisController.php +25 −0 Changes for module/Soutenance/src/Soutenance/Controller/AvisController.php: 25 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ namespace Soutenance\Controller; use Application\Controller\AbstractController; use Fichier\Service\Fichier\FichierServiceAwareTrait; use Fichier\Service\Fichier\FichierStorageServiceAwareTrait; use Fichier\Service\Storage\Adapter\Exception\StorageAdapterException; use These\Service\Acteur\ActeurServiceAwareTrait; use These\Service\These\TheseServiceAwareTrait; use Soutenance\Entity\Avis; Loading @@ -16,6 +19,7 @@ use Soutenance\Service\Proposition\PropositionServiceAwareTrait; use Soutenance\Service\Validation\ValidatationServiceAwareTrait; use Laminas\Http\Request; use Laminas\View\Model\ViewModel; use UnicaenApp\Exception\RuntimeException; class AvisController extends AbstractController { Loading @@ -27,6 +31,9 @@ class AvisController extends AbstractController use TheseServiceAwareTrait; use ValidatationServiceAwareTrait; use FichierStorageServiceAwareTrait; use FichierServiceAwareTrait; use AvisFormAwareTrait; public function indexAction() Loading Loading @@ -133,4 +140,22 @@ class AvisController extends AbstractController $this->redirect()->toRoute('soutenance/index-rapporteur', ['these' => $these->getId()], [], true); } public function telechargerAction() { $these = $this->requestedThese(); $membre = $this->getMembreService()->getRequestedMembre($this, 'rapporteur'); $avis = $this->getAvisService()->getAvisByMembre($membre); $fichier = $avis->getFichier(); // injection préalable du contenu du fichier pour pouvoir utiliser le plugin Uploader try { $contenuFichier = $this->fichierStorageService->getFileContentForFichier($fichier); } catch (StorageAdapterException $e) { throw new RuntimeException("Impossible d'obtenir le contenu du fichier", null, $e); } $fichier->setContenuFichierData($contenuFichier); $this->uploader()->download($fichier); } } No newline at end of file
module/Soutenance/src/Soutenance/Controller/AvisControllerFactory.php +16 −2 Changes for module/Soutenance/src/Soutenance/Controller/AvisControllerFactory.php: 16 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ namespace Soutenance\Controller; use Fichier\Service\Fichier\FichierService; use Fichier\Service\Fichier\FichierStorageService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use These\Service\Acteur\ActeurService; use These\Service\These\TheseService; use Interop\Container\ContainerInterface; Loading @@ -17,8 +21,10 @@ class AvisControllerFactory /** * @param ContainerInterface $container * @return AvisController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) public function __invoke(ContainerInterface $container) : AvisController { /** Loading @@ -38,12 +44,17 @@ class AvisControllerFactory $theseService = $container->get('TheseService'); $validationService = $container->get(ValidationService::class); /** @var FichierService $fichierService */ $fichierService = $container->get(FichierService::class); /** @var FichierStorageService $fileService */ $fileService = $container->get(FichierStorageService::class); /** * @var AvisForm $avisForm */ $avisForm = $container->get('FormElementManager')->get(AvisForm::class); /** @var AvisController $controller */ $controller = new AvisController(); $controller->setTheseService($theseService); $controller->setValidationService($validationService); Loading @@ -53,6 +64,9 @@ class AvisControllerFactory $controller->setAvisService($avisService); $controller->setMembreService($membreService); $controller->setFichierService($fichierService); $controller->setFichierStorageService($fileService); $controller->setAvisForm($avisForm); return $controller; Loading
module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +9 −3 Changes for module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php: 9 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -593,10 +593,16 @@ class PresoutenanceController extends AbstractController foreach ($proposition->getAvis() as $avis) { if ($avis->estNonHistorise()) { $denomination = $avis->getMembre()->getDenomination(); $lien = $this->url()->fromRoute('fichier/these/telecharger', [ // $lien = $this->url()->fromRoute('fichier/these/telecharger', [ // 'these' => $these->getId(), // 'fichier' => $avis->getFichier()->getUuid(), // 'fichierNom' => $avis->getFichier()->getNom(), // ], [ // 'force_canonical'=>true // ],true); $lien = $this->url()->fromRoute('soutenance/avis-soutenance/telecharger', [ 'these' => $these->getId(), 'fichier' => $avis->getFichier()->getUuid(), 'fichierNom' => $avis->getFichier()->getNom(), 'membre' => $avis->getMembre()->getId() ], [ 'force_canonical'=>true ], true); Loading