Loading CHANGELOG.md +2 −1 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ Journal des modifications ------ - Notifications par mail basées sur un template : le code du template est passé via le header References pour faciliter de debug. - Pages 'Rôles et privilèges' et 'Profils et privilèges' : harmonisation + mention du code de chaque catégorie/privilège pour faciliter la recherche. - Attachement de documents aux structures : aperçu dispo selon le type de fichier, ajout du lien de téléchargement, création de UrlFichierViewHelper. - [FIX] Le menu Formations n'était pas généré pour le rôle Gestionnaire de formation. - [FIX] Retour en arrière : un candidat peut de nouveau attester sur l'honneur même si le dossier n'a pas été jugé complet par la gestionnaire. - [FIX] Admission : impossible de déclarer complète l'étape Document par les gestionnaires. Loading module/Fichier/config/others/fichier.config.php +14 −2 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ use Fichier\Controller\ConsoleController; use Fichier\Controller\Factory\FichierControllerFactory; use Fichier\Controller\FichierController; use Fichier\Controller\Plugin\UrlFichier; use Fichier\Controller\Plugin\UrlFichierFactory; use Fichier\Exporter\PageFichierIntrouvablePdfExporter; use Fichier\Exporter\PageFichierIntrouvablePdfExporterFactory; use Fichier\Form\FichierForm; Loading @@ -33,6 +34,8 @@ use Fichier\Service\Url\UrlServiceFactory; use Fichier\Service\ValiditeFichier\ValiditeFichierService; use Fichier\Service\VersionFichier\VersionFichierService; use Fichier\View\Helper\Fichier\FichierViewHelper; use Fichier\View\Helper\Fichier\UrlFichierViewHelper; use Fichier\View\Helper\Fichier\UrlFichierViewHelperFactory; use Laminas\ServiceManager\Factory\InvokableFactory; use Unicaen\Console\Router\Simple; use UnicaenPrivilege\Guard\PrivilegeController; Loading Loading @@ -302,9 +305,12 @@ return [ ], ] , 'controller_plugins' => [ 'invokables' => [ 'urlFichier' => UrlFichier::class, 'factories' => [ UrlFichier::class => UrlFichierFactory::class, ], 'aliases' => [ 'urlFichier' => UrlFichier::class, ] ], 'hydrators' => [ 'factories' => [ Loading @@ -315,6 +321,12 @@ return [ 'invokables' => [ 'fichier' => FichierViewHelper::class, ], 'factories' => [ UrlFichierViewHelper::class => UrlFichierViewHelperFactory::class, ], 'aliases' => [ 'urlFichier' => UrlFichierViewHelper::class, ] ], 'search_services' => [ 'factories' => [ Loading module/Fichier/src/Fichier/Controller/Plugin/UrlFichier.php +25 −53 Original line number Diff line number Diff line Loading @@ -2,65 +2,37 @@ namespace Fichier\Controller\Plugin; use Application\Filter\IdifyFilterAwareTrait; use Fichier\Entity\Db\Fichier; use Fichier\Service\Url\UrlServiceAwareTrait; use Laminas\Mvc\Controller\Plugin\Url as UrlPlugin; /** * Plugin de contrôleur générant des URL d'actions pour un Fichier donné. * * @method telechargerFichier(Fichier $fichier): string * @method telechargerPermanentFichier(Fichier $fichier): string * @method telechargerPermanentId($idPermanent): string * @method afficherFichier(Fichier $fichier): string * @method modifierFichier(Fichier $fichier): string * @method supprimerFichier(Fichier $fichier): string * @method listerFichiersCommuns(): string * @method televerserFichiersCommuns(): string * * @see \Fichier\Service\Url\UrlService::telechargerFichier * @see \Fichier\Service\Url\UrlService::telechargerPermanentFichier * @see \Fichier\Service\Url\UrlService::telechargerPermanentId * @see \Fichier\Service\Url\UrlService::afficherFichier * @see \Fichier\Service\Url\UrlService::modifierFichier * @see \Fichier\Service\Url\UrlService::supprimerFichier * @see \Fichier\Service\Url\UrlService::listerFichiersCommuns() * @see \Fichier\Service\Url\UrlService::televerserFichiersCommuns() */ class UrlFichier extends UrlPlugin { use IdifyFilterAwareTrait; use UrlServiceAwareTrait; public function telechargerFichier(Fichier $fichier): string public function __call(string $name, array $arguments) { return $this->fromRoute('fichier/telecharger', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function telechargerPermanentFichier(Fichier $fichier): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $fichier->getIdPermanent(), ], [], true); } public function telechargerPermanentId($idPermanent): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $idPermanent, ], [], true); } public function afficherFichier(Fichier $fichier): string { return $this->fromRoute('fichier/afficher', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function modifierFichier(Fichier $fichier): string { return $this->fromRoute('fichier/modifier', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function supprimerFichier(Fichier $fichier): string { return $this->fromRoute('fichier/supprimer', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function listerFichiersCommuns(): string { return $this->fromRoute('fichier/lister-fichiers-communs', [], [], true); } public function televerserFichiersCommuns(): string { return $this->fromRoute('fichier/televerser-fichiers-communs', [], [], true); return call_user_func([$this->urlFichierService, $name], $arguments); } } No newline at end of file module/Fichier/src/Fichier/Controller/Plugin/UrlFichierFactory.php 0 → 100644 +21 −0 Original line number Diff line number Diff line <?php namespace Fichier\Controller\Plugin; use Fichier\Service\Url\UrlService; use Laminas\ServiceManager\Factory\FactoryInterface; use Psr\Container\ContainerInterface; class UrlFichierFactory implements FactoryInterface { public function __invoke(ContainerInterface $container, $requestedName, array $options = null): UrlFichier { $plugin = new UrlFichier(); /** @var \Fichier\Service\Url\UrlService $urlFichierService */ $urlFichierService = $container->get(UrlService::class); $plugin->setUrlFichierService($urlFichierService); return $plugin; } } No newline at end of file module/Fichier/src/Fichier/Service/Url/UrlService.php +59 −1 Original line number Diff line number Diff line Loading @@ -2,13 +2,14 @@ namespace Fichier\Service\Url; use Fichier\Entity\Db\Fichier; use Fichier\Service\Fichier\FichierStorageServiceAwareTrait; use Fichier\Service\Storage\Adapter\Exception\StorageAdapterException; use LogicException; use RuntimeException; use Structure\Service\Etablissement\EtablissementServiceAwareTrait; class UrlService class UrlService extends \Application\Service\Url\UrlService { use FichierStorageServiceAwareTrait; use EtablissementServiceAwareTrait; Loading Loading @@ -97,4 +98,61 @@ class UrlService return $this->parameters[$name]; } /********************** Génération d'URL *****************************/ public function telechargerFichier(Fichier $fichier): string { return $this->fromRoute('fichier/telecharger', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function telechargerPermanentFichier(Fichier $fichier): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $fichier->getIdPermanent(), ], [], true); } public function telechargerPermanentId($idPermanent): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $idPermanent, ], [], true); } public function afficherFichier(Fichier $fichier): string { return $this->fromRoute('fichier/afficher', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function modifierFichier(Fichier $fichier): string { return $this->fromRoute('fichier/modifier', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function supprimerFichier(Fichier $fichier): string { return $this->fromRoute('fichier/supprimer', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function listerFichiersCommuns(): string { return $this->fromRoute('fichier/lister-fichiers-communs', [], [], true); } public function televerserFichiersCommuns(): string { return $this->fromRoute('fichier/televerser-fichiers-communs', [], [], true); } } No newline at end of file Loading
CHANGELOG.md +2 −1 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ Journal des modifications ------ - Notifications par mail basées sur un template : le code du template est passé via le header References pour faciliter de debug. - Pages 'Rôles et privilèges' et 'Profils et privilèges' : harmonisation + mention du code de chaque catégorie/privilège pour faciliter la recherche. - Attachement de documents aux structures : aperçu dispo selon le type de fichier, ajout du lien de téléchargement, création de UrlFichierViewHelper. - [FIX] Le menu Formations n'était pas généré pour le rôle Gestionnaire de formation. - [FIX] Retour en arrière : un candidat peut de nouveau attester sur l'honneur même si le dossier n'a pas été jugé complet par la gestionnaire. - [FIX] Admission : impossible de déclarer complète l'étape Document par les gestionnaires. Loading
module/Fichier/config/others/fichier.config.php +14 −2 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ use Fichier\Controller\ConsoleController; use Fichier\Controller\Factory\FichierControllerFactory; use Fichier\Controller\FichierController; use Fichier\Controller\Plugin\UrlFichier; use Fichier\Controller\Plugin\UrlFichierFactory; use Fichier\Exporter\PageFichierIntrouvablePdfExporter; use Fichier\Exporter\PageFichierIntrouvablePdfExporterFactory; use Fichier\Form\FichierForm; Loading @@ -33,6 +34,8 @@ use Fichier\Service\Url\UrlServiceFactory; use Fichier\Service\ValiditeFichier\ValiditeFichierService; use Fichier\Service\VersionFichier\VersionFichierService; use Fichier\View\Helper\Fichier\FichierViewHelper; use Fichier\View\Helper\Fichier\UrlFichierViewHelper; use Fichier\View\Helper\Fichier\UrlFichierViewHelperFactory; use Laminas\ServiceManager\Factory\InvokableFactory; use Unicaen\Console\Router\Simple; use UnicaenPrivilege\Guard\PrivilegeController; Loading Loading @@ -302,9 +305,12 @@ return [ ], ] , 'controller_plugins' => [ 'invokables' => [ 'urlFichier' => UrlFichier::class, 'factories' => [ UrlFichier::class => UrlFichierFactory::class, ], 'aliases' => [ 'urlFichier' => UrlFichier::class, ] ], 'hydrators' => [ 'factories' => [ Loading @@ -315,6 +321,12 @@ return [ 'invokables' => [ 'fichier' => FichierViewHelper::class, ], 'factories' => [ UrlFichierViewHelper::class => UrlFichierViewHelperFactory::class, ], 'aliases' => [ 'urlFichier' => UrlFichierViewHelper::class, ] ], 'search_services' => [ 'factories' => [ Loading
module/Fichier/src/Fichier/Controller/Plugin/UrlFichier.php +25 −53 Original line number Diff line number Diff line Loading @@ -2,65 +2,37 @@ namespace Fichier\Controller\Plugin; use Application\Filter\IdifyFilterAwareTrait; use Fichier\Entity\Db\Fichier; use Fichier\Service\Url\UrlServiceAwareTrait; use Laminas\Mvc\Controller\Plugin\Url as UrlPlugin; /** * Plugin de contrôleur générant des URL d'actions pour un Fichier donné. * * @method telechargerFichier(Fichier $fichier): string * @method telechargerPermanentFichier(Fichier $fichier): string * @method telechargerPermanentId($idPermanent): string * @method afficherFichier(Fichier $fichier): string * @method modifierFichier(Fichier $fichier): string * @method supprimerFichier(Fichier $fichier): string * @method listerFichiersCommuns(): string * @method televerserFichiersCommuns(): string * * @see \Fichier\Service\Url\UrlService::telechargerFichier * @see \Fichier\Service\Url\UrlService::telechargerPermanentFichier * @see \Fichier\Service\Url\UrlService::telechargerPermanentId * @see \Fichier\Service\Url\UrlService::afficherFichier * @see \Fichier\Service\Url\UrlService::modifierFichier * @see \Fichier\Service\Url\UrlService::supprimerFichier * @see \Fichier\Service\Url\UrlService::listerFichiersCommuns() * @see \Fichier\Service\Url\UrlService::televerserFichiersCommuns() */ class UrlFichier extends UrlPlugin { use IdifyFilterAwareTrait; use UrlServiceAwareTrait; public function telechargerFichier(Fichier $fichier): string public function __call(string $name, array $arguments) { return $this->fromRoute('fichier/telecharger', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function telechargerPermanentFichier(Fichier $fichier): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $fichier->getIdPermanent(), ], [], true); } public function telechargerPermanentId($idPermanent): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $idPermanent, ], [], true); } public function afficherFichier(Fichier $fichier): string { return $this->fromRoute('fichier/afficher', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function modifierFichier(Fichier $fichier): string { return $this->fromRoute('fichier/modifier', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function supprimerFichier(Fichier $fichier): string { return $this->fromRoute('fichier/supprimer', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function listerFichiersCommuns(): string { return $this->fromRoute('fichier/lister-fichiers-communs', [], [], true); } public function televerserFichiersCommuns(): string { return $this->fromRoute('fichier/televerser-fichiers-communs', [], [], true); return call_user_func([$this->urlFichierService, $name], $arguments); } } No newline at end of file
module/Fichier/src/Fichier/Controller/Plugin/UrlFichierFactory.php 0 → 100644 +21 −0 Original line number Diff line number Diff line <?php namespace Fichier\Controller\Plugin; use Fichier\Service\Url\UrlService; use Laminas\ServiceManager\Factory\FactoryInterface; use Psr\Container\ContainerInterface; class UrlFichierFactory implements FactoryInterface { public function __invoke(ContainerInterface $container, $requestedName, array $options = null): UrlFichier { $plugin = new UrlFichier(); /** @var \Fichier\Service\Url\UrlService $urlFichierService */ $urlFichierService = $container->get(UrlService::class); $plugin->setUrlFichierService($urlFichierService); return $plugin; } } No newline at end of file
module/Fichier/src/Fichier/Service/Url/UrlService.php +59 −1 Original line number Diff line number Diff line Loading @@ -2,13 +2,14 @@ namespace Fichier\Service\Url; use Fichier\Entity\Db\Fichier; use Fichier\Service\Fichier\FichierStorageServiceAwareTrait; use Fichier\Service\Storage\Adapter\Exception\StorageAdapterException; use LogicException; use RuntimeException; use Structure\Service\Etablissement\EtablissementServiceAwareTrait; class UrlService class UrlService extends \Application\Service\Url\UrlService { use FichierStorageServiceAwareTrait; use EtablissementServiceAwareTrait; Loading Loading @@ -97,4 +98,61 @@ class UrlService return $this->parameters[$name]; } /********************** Génération d'URL *****************************/ public function telechargerFichier(Fichier $fichier): string { return $this->fromRoute('fichier/telecharger', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function telechargerPermanentFichier(Fichier $fichier): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $fichier->getIdPermanent(), ], [], true); } public function telechargerPermanentId($idPermanent): string { return $this->fromRoute('fichier/telecharger-permanent', [ 'idPermanent' => $idPermanent, ], [], true); } public function afficherFichier(Fichier $fichier): string { return $this->fromRoute('fichier/afficher', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function modifierFichier(Fichier $fichier): string { return $this->fromRoute('fichier/modifier', [ 'fichier' => $fichier->getUuid(), ], [], true); } public function supprimerFichier(Fichier $fichier): string { return $this->fromRoute('fichier/supprimer', [ 'fichier' => $this->idify($fichier), 'fichierNom' => $fichier->getNom(), ], [], true); } public function listerFichiersCommuns(): string { return $this->fromRoute('fichier/lister-fichiers-communs', [], [], true); } public function televerserFichiersCommuns(): string { return $this->fromRoute('fichier/televerser-fichiers-communs', [], [], true); } } No newline at end of file