Loading CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ Journal des modifications - Module StepStar : mise à jour du script bash d'envoi quotidien des thèses vers STEP/STAR. - Module StepStar : plus d'envoi de la date d'abandon (recommandation de l'ABES). - Module StepStar : ajout dans le TEF des IdRef de tous les acteurs de la thèse (doctorant, directeur, codirecteur, etc.) - Module StepStar : possibilité de télécharger les fichiers TEF générés sur la page 'Génération TEF'. - Suppression du menu 'Administration > Compléments d'individu' devenu inutile. - Amélioration visuelle des pages de création/modification de structure (Etab/ED/UR). - Affichage des co-encadrants sur l'annuraire des thèses (au survol de la souris sur la direction de thèse) Loading module/StepStar/config/module.config.php +15 −0 Changes for module/StepStar/config/module.config.php: 15 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -206,6 +206,19 @@ return [ 'action' => 'generer-theses', ], ], 'may_terminate' => true, 'child_routes' => [ 'telecharger-tef' => [ 'type' => 'Literal', 'options' => [ 'route' => '/telecharger-tef', 'defaults' => [ 'controller' => GenerateController::class, 'action' => 'telecharger-tef', ], ], ], ], ], 'envoi' => [ 'type' => 'Literal', Loading Loading @@ -488,10 +501,12 @@ return [ [ /** * @see \StepStar\Controller\Generate\GenerateController::genererThesesAction() * @see \StepStar\Controller\Generate\GenerateController::telechargerTefAction() */ 'controller' => GenerateController::class, 'action' => [ 'generer-theses', 'telecharger-tef', ], 'role' => [], 'privileges' => StepStarPrivileges::LOG_LISTER, Loading module/StepStar/src/StepStar/Controller/Generate/GenerateConsoleController.php +1 −4 Changes for module/StepStar/src/StepStar/Controller/Generate/GenerateConsoleController.php: 1 added line, 4 removed lines. Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ class GenerateConsoleController extends AbstractConsoleController } $this->console->writeLine("Nombre de theses trouvees : " . count($theses)); $logs = $this->generateFacade->generateFilesForTheses($theses, $command, $this->tag); $log = $this->generateFacade->generateFilesForTheses($theses, $command, $this->tag); /** @var \StepStar\Entity\Db\Log $log */ foreach ($logs as $log) { $this->console->writeLine($log->getLog()); } } No newline at end of file } No newline at end of file module/StepStar/src/StepStar/Controller/Generate/GenerateController.php +37 −5 Changes for module/StepStar/src/StepStar/Controller/Generate/GenerateController.php: 37 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -3,7 +3,9 @@ namespace StepStar\Controller\Generate; use Application\Controller\AbstractController; use Fichier\FileUtils; use Laminas\Http\Response; use Laminas\Session\Container as SessionContainer; use StepStar\Facade\Generate\GenerateFacadeAwareTrait; use StepStar\Form\Generate\GenerateForm; use StepStar\Service\Fetch\FetchServiceAwareTrait; Loading @@ -17,6 +19,12 @@ class GenerateController extends AbstractController use LogServiceAwareTrait; private GenerateForm $generateForm; private SessionContainer $sessionContainer; public function __construct() { $this->sessionContainer = new SessionContainer(__CLASS__); } public function setGenerateForm(GenerateForm $generateForm): void { Loading Loading @@ -44,16 +52,19 @@ class GenerateController extends AbstractController $this->flashMessenger()->addErrorMessage("Aucune these trouvee avec les criteres specifies"); } $logs = $this->generateFacade->generateFilesForTheses($theses, $command); $log = $this->generateFacade->generateFilesForTheses($theses, $command); // pour l'action de téléchargement ci-après, on met à disposition dans la session le chemin du fichier généré $resulFilePath = $log->getZipFilePath() ?: $log->getTefFilePath(); $this->sessionContainer->offsetSet('resulFilePath', $resulFilePath); /** @var \StepStar\Entity\Db\Log $log */ foreach ($logs as $log) { if ($log->isSuccess()) { $this->flashMessenger()->addSuccessMessage($log->getLogToHtml()); $downloadUrl = $this->url()->fromRoute('step-star/generation/telecharger-tef'); $this->flashMessenger()->addSuccessMessage($log->getLogToHtml() . "<br><a href='$downloadUrl'>Télécharger le ou les fichiers TEF générés</a>"); } else { $this->flashMessenger()->addErrorMessage($log->getLogToHtml()); } } return $this->redirect()->refresh(); } Loading @@ -61,6 +72,27 @@ class GenerateController extends AbstractController return [ 'form' => $this->generateForm, 'downloadEnabled' => $this->sessionContainer->offsetExists('resulFilePath'), ]; } private function isDownloadResultEnabled(): bool { return $this->sessionContainer->offsetExists('resulFilePath'); } /** * Action pour envoyer au client web le fichier TEF généré ou un zip en cas de fichiers TEF multiples. * Le chemin du fichier sur le serveur est transmis à cette action via la session. */ public function telechargerTefAction(): Response { if (!$this->sessionContainer->offsetExists('resulFilePath')) { return $this->redirect()->toRoute('step-star/generation'); } $resulFilePath = $this->sessionContainer->offsetGet('resulFilePath'); FileUtils::downloadFile($resulFilePath); } } No newline at end of file module/StepStar/src/StepStar/Entity/Db/Log.php +40 −0 Changes for module/StepStar/src/StepStar/Entity/Db/Log.php: 40 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace StepStar\Entity\Db; use Laminas\Router\Http\RouteInterface; use These\Entity\Db\These; use DateTime; use Exception; Loading @@ -27,6 +28,9 @@ class Log private ?int $theseId = null; private ?These $these = null; private ?string $tefFilePath = null; // sans mapping en bdd private ?string $zipFilePath = null; // sans mapping en bdd /** * @return int */ Loading Loading @@ -306,4 +310,40 @@ class Log { $this->these = $these; } /** * Renseigne le chemin absolu du fichier TEF temporaire généré. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function setTefFilePath(?string $tefFilePath): void { $this->tefFilePath = $tefFilePath; } /** * Retourne le chemin absolu du fichier TEF temporaire généré. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function getTefFilePath(): ?string { return $this->tefFilePath; } /** * Renseigne le chemin absolu du fichier ZIP généré. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function setZipFilePath(?string $zipFilePath): void { $this->zipFilePath = $zipFilePath; } /** * Retourne le chemin absolu du fichier ZIP généré, le cas échéant. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function getZipFilePath(): ?string { return $this->zipFilePath; } } Loading
CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ Journal des modifications - Module StepStar : mise à jour du script bash d'envoi quotidien des thèses vers STEP/STAR. - Module StepStar : plus d'envoi de la date d'abandon (recommandation de l'ABES). - Module StepStar : ajout dans le TEF des IdRef de tous les acteurs de la thèse (doctorant, directeur, codirecteur, etc.) - Module StepStar : possibilité de télécharger les fichiers TEF générés sur la page 'Génération TEF'. - Suppression du menu 'Administration > Compléments d'individu' devenu inutile. - Amélioration visuelle des pages de création/modification de structure (Etab/ED/UR). - Affichage des co-encadrants sur l'annuraire des thèses (au survol de la souris sur la direction de thèse) Loading
module/StepStar/config/module.config.php +15 −0 Changes for module/StepStar/config/module.config.php: 15 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -206,6 +206,19 @@ return [ 'action' => 'generer-theses', ], ], 'may_terminate' => true, 'child_routes' => [ 'telecharger-tef' => [ 'type' => 'Literal', 'options' => [ 'route' => '/telecharger-tef', 'defaults' => [ 'controller' => GenerateController::class, 'action' => 'telecharger-tef', ], ], ], ], ], 'envoi' => [ 'type' => 'Literal', Loading Loading @@ -488,10 +501,12 @@ return [ [ /** * @see \StepStar\Controller\Generate\GenerateController::genererThesesAction() * @see \StepStar\Controller\Generate\GenerateController::telechargerTefAction() */ 'controller' => GenerateController::class, 'action' => [ 'generer-theses', 'telecharger-tef', ], 'role' => [], 'privileges' => StepStarPrivileges::LOG_LISTER, Loading
module/StepStar/src/StepStar/Controller/Generate/GenerateConsoleController.php +1 −4 Changes for module/StepStar/src/StepStar/Controller/Generate/GenerateConsoleController.php: 1 added line, 4 removed lines. Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ class GenerateConsoleController extends AbstractConsoleController } $this->console->writeLine("Nombre de theses trouvees : " . count($theses)); $logs = $this->generateFacade->generateFilesForTheses($theses, $command, $this->tag); $log = $this->generateFacade->generateFilesForTheses($theses, $command, $this->tag); /** @var \StepStar\Entity\Db\Log $log */ foreach ($logs as $log) { $this->console->writeLine($log->getLog()); } } No newline at end of file } No newline at end of file
module/StepStar/src/StepStar/Controller/Generate/GenerateController.php +37 −5 Changes for module/StepStar/src/StepStar/Controller/Generate/GenerateController.php: 37 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -3,7 +3,9 @@ namespace StepStar\Controller\Generate; use Application\Controller\AbstractController; use Fichier\FileUtils; use Laminas\Http\Response; use Laminas\Session\Container as SessionContainer; use StepStar\Facade\Generate\GenerateFacadeAwareTrait; use StepStar\Form\Generate\GenerateForm; use StepStar\Service\Fetch\FetchServiceAwareTrait; Loading @@ -17,6 +19,12 @@ class GenerateController extends AbstractController use LogServiceAwareTrait; private GenerateForm $generateForm; private SessionContainer $sessionContainer; public function __construct() { $this->sessionContainer = new SessionContainer(__CLASS__); } public function setGenerateForm(GenerateForm $generateForm): void { Loading Loading @@ -44,16 +52,19 @@ class GenerateController extends AbstractController $this->flashMessenger()->addErrorMessage("Aucune these trouvee avec les criteres specifies"); } $logs = $this->generateFacade->generateFilesForTheses($theses, $command); $log = $this->generateFacade->generateFilesForTheses($theses, $command); // pour l'action de téléchargement ci-après, on met à disposition dans la session le chemin du fichier généré $resulFilePath = $log->getZipFilePath() ?: $log->getTefFilePath(); $this->sessionContainer->offsetSet('resulFilePath', $resulFilePath); /** @var \StepStar\Entity\Db\Log $log */ foreach ($logs as $log) { if ($log->isSuccess()) { $this->flashMessenger()->addSuccessMessage($log->getLogToHtml()); $downloadUrl = $this->url()->fromRoute('step-star/generation/telecharger-tef'); $this->flashMessenger()->addSuccessMessage($log->getLogToHtml() . "<br><a href='$downloadUrl'>Télécharger le ou les fichiers TEF générés</a>"); } else { $this->flashMessenger()->addErrorMessage($log->getLogToHtml()); } } return $this->redirect()->refresh(); } Loading @@ -61,6 +72,27 @@ class GenerateController extends AbstractController return [ 'form' => $this->generateForm, 'downloadEnabled' => $this->sessionContainer->offsetExists('resulFilePath'), ]; } private function isDownloadResultEnabled(): bool { return $this->sessionContainer->offsetExists('resulFilePath'); } /** * Action pour envoyer au client web le fichier TEF généré ou un zip en cas de fichiers TEF multiples. * Le chemin du fichier sur le serveur est transmis à cette action via la session. */ public function telechargerTefAction(): Response { if (!$this->sessionContainer->offsetExists('resulFilePath')) { return $this->redirect()->toRoute('step-star/generation'); } $resulFilePath = $this->sessionContainer->offsetGet('resulFilePath'); FileUtils::downloadFile($resulFilePath); } } No newline at end of file
module/StepStar/src/StepStar/Entity/Db/Log.php +40 −0 Changes for module/StepStar/src/StepStar/Entity/Db/Log.php: 40 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace StepStar\Entity\Db; use Laminas\Router\Http\RouteInterface; use These\Entity\Db\These; use DateTime; use Exception; Loading @@ -27,6 +28,9 @@ class Log private ?int $theseId = null; private ?These $these = null; private ?string $tefFilePath = null; // sans mapping en bdd private ?string $zipFilePath = null; // sans mapping en bdd /** * @return int */ Loading Loading @@ -306,4 +310,40 @@ class Log { $this->these = $these; } /** * Renseigne le chemin absolu du fichier TEF temporaire généré. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function setTefFilePath(?string $tefFilePath): void { $this->tefFilePath = $tefFilePath; } /** * Retourne le chemin absolu du fichier TEF temporaire généré. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function getTefFilePath(): ?string { return $this->tefFilePath; } /** * Renseigne le chemin absolu du fichier ZIP généré. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function setZipFilePath(?string $zipFilePath): void { $this->zipFilePath = $zipFilePath; } /** * Retourne le chemin absolu du fichier ZIP généré, le cas échéant. * **NB : pas de mapping en bdd, c'est juste utilitaire.** */ public function getZipFilePath(): ?string { return $this->zipFilePath; } }