Loading module/Application/config/others/etablissement.config.php +20 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,8 @@ return [ 'action' => [ 'modifier', 'supprimer-logo', 'televerser-signature-convocation', 'supprimer-signature-convocation', ], 'privileges' => [ StructurePrivileges::STRUCTURE_MODIFICATION_TOUTES_STRUCTURES, Loading Loading @@ -124,6 +126,24 @@ return [ ], ], ], 'televerser-signature-convocation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/televerser-signature-convocation/:structure', 'defaults' => [ 'action' => 'televerser-signature-convocation', ], ], ], 'supprimer-signature-convocation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer-signature-convocation/:structure', 'defaults' => [ 'action' => 'supprimer-signature-convocation', ], ], ], ], ], ], Loading module/Application/src/Application/Controller/EtablissementController.php +43 −0 Original line number Diff line number Diff line Loading @@ -5,10 +5,13 @@ namespace Application\Controller; use Application\Entity\Db\Etablissement; use Application\Entity\Db\Individu; use Application\Entity\Db\IndividuRole; use Application\Entity\Db\NatureFichier; use Application\Entity\Db\Role; use Application\Entity\Db\TypeStructure; use Application\Service\Etablissement\EtablissementService; use Application\Service\Etablissement\EtablissementServiceAwareTrait; use Application\Service\Fichier\FichierServiceAwareTrait; use Application\Service\NatureFichier\NatureFichierServiceAwareTrait; use Application\Service\Role\RoleServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; use UnicaenApp\Exception\RuntimeException; Loading @@ -21,6 +24,8 @@ use Zend\View\Model\ViewModel; class EtablissementController extends StructureConcreteController { use EtablissementServiceAwareTrait; use FichierServiceAwareTrait; use NatureFichierServiceAwareTrait; use RoleServiceAwareTrait; use SourceCodeStringHelperAwareTrait; Loading Loading @@ -65,6 +70,7 @@ class EtablissementController extends StructureConcreteController public function informationAction() { $id = $this->params()->fromRoute('structure'); /** @var Etablissement $etablissement */ $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($id); if ($etablissement === null) { throw new RuntimeException("Aucun établissement ne possède l'identifiant renseigné."); Loading Loading @@ -104,6 +110,7 @@ class EtablissementController extends StructureConcreteController 'roleListing' => $roleListings, 'individuListing' => $individuListings, 'logoContent' => $this->structureService->getLogoStructureContent($etablissement), 'signatureConvocation' => $this->etablissementService->getSignatureConvocationContent($etablissement), ]); } Loading Loading @@ -138,4 +145,40 @@ class EtablissementController extends StructureConcreteController return $viewModel; } /** gestion des signatures */ public function televerserSignatureConvocationAction() { $structure = $this->getStructureService()->getRequestedStructure($this); $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($structure->getId()); $nature = $this->natureFichierService->getRepository()->findOneBy(['code' => NatureFichier::CODE_SIGNATURE_CONVOCATION]); $request = $this->getRequest(); if ($request->isPost()) { $files = $request->getFiles()->toArray(); $fichiers = $this->fichierService->createFichiersFromUpload(['files' => $files], $nature); $this->fichierService->saveFichiers($fichiers); $etablissement->setCheminSignatureConvocation($fichiers[0]); $this->getEtablissementService()->update($etablissement); } $vm = new ViewModel([ 'title' => "Ajout d'une signature pour les convocation pour l'établissement [".$structure->getLibelle()."]", 'nature' => 'SIGNATURE_CONVOCATION', 'action' => $this->url()->fromRoute('etablissement/televerser-signature-convocation', ['structure' => $structure->getId()], [], true), ]); $vm->setTemplate('application/etablissement/televerser-document'); return $vm; } public function supprimerSignatureConvocationAction() { /** @var Etablissement $etablissement */ $structure = $this->getStructureService()->getRequestedStructure($this); $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($structure->getId()); $this->fichierService->supprimerFichiers([$etablissement->getSignatureConvocation()]); $etablissement->setSignatureConvocation(null); $this->etablissementService->update($etablissement); return $this->redirect()->toRoute($this->routeName."/information", [], ['query' => ['selected' => $structure->getId()], "fragment" => $structure->getId()], true); } } No newline at end of file module/Application/src/Application/Controller/Factory/EtablissementControllerFactory.php +7 −0 Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ namespace Application\Controller\Factory; use Application\Controller\EtablissementController; use Application\Form\EtablissementForm; use Application\Service\Etablissement\EtablissementService; use Application\Service\Fichier\FichierService; use Application\Service\Individu\IndividuService; use Application\Service\NatureFichier\NatureFichierService; use Application\Service\Role\RoleService; use Application\Service\Structure\StructureService; use Application\SourceCodeStringHelper; Loading @@ -26,16 +28,21 @@ class EtablissementControllerFactory /** * @var EtablissementService $etablissmentService * @var FichierService $fichierService * @var IndividuService $individuService * @var RoleService $roleService * @var StructureService $structureService */ $etablissmentService = $container->get('EtablissementService'); $fichierService = $container->get(FichierService::class); $natureService = $container->get(NatureFichierService::class); $roleService = $container->get('RoleService'); $structureService = $container->get(StructureService::class); $controller = new EtablissementController(); $controller->setEtablissementService($etablissmentService); $controller->setFichierService($fichierService); $controller->setNatureFichierService($natureService); $controller->setRoleService($roleService); $controller->setStructureService($structureService); $controller->setStructureForm($form); Loading module/Application/src/Application/Entity/Db/Etablissement.php +22 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,10 @@ class Etablissement implements StructureConcreteInterface, HistoriqueAwareInterf */ protected $estComue = false; /** @var Fichier */ protected $signatureConvocation; /** * Etablissement constructor. */ Loading Loading @@ -259,6 +263,24 @@ class Etablissement implements StructureConcreteInterface, HistoriqueAwareInterf $this->getStructure()->setCheminLogo($cheminLogo); } /** * @return Fichier|null */ public function getSignatureConvocation(): ?Fichier { return $this->signatureConvocation; } /** * @param Fichier|null $signatureConvocation * @return Etablissement */ public function setSignatureConvocation(?Fichier $signatureConvocation): Etablissement { $this->signatureConvocation = $signatureConvocation; return $this; } /** * @param Structure $structure * @return self Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Etablissement.dcm.xml +4 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,10 @@ <field name="estInscription" type="boolean" column="EST_ETAB_INSCRIPTION" nullable="false"/> <field name="estComue" type="boolean" column="EST_COMUE"/> <many-to-one field="signatureConvocation" target-entity="Application\Entity\Db\Fichier"> <join-column name="SIGNATURE_CONVOCATION_ID" referenced-column-name="ID"/> </many-to-one> <one-to-many field="theses" target-entity="Application\Entity\Db\These" mapped-by="etablissement"/> <one-to-many field="doctorants" target-entity="Application\Entity\Db\Doctorant" mapped-by="etablissement"/> <one-to-many field="roles" target-entity="Application\Entity\Db\Role" mapped-by="etablissement"/> Loading Loading
module/Application/config/others/etablissement.config.php +20 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,8 @@ return [ 'action' => [ 'modifier', 'supprimer-logo', 'televerser-signature-convocation', 'supprimer-signature-convocation', ], 'privileges' => [ StructurePrivileges::STRUCTURE_MODIFICATION_TOUTES_STRUCTURES, Loading Loading @@ -124,6 +126,24 @@ return [ ], ], ], 'televerser-signature-convocation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/televerser-signature-convocation/:structure', 'defaults' => [ 'action' => 'televerser-signature-convocation', ], ], ], 'supprimer-signature-convocation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer-signature-convocation/:structure', 'defaults' => [ 'action' => 'supprimer-signature-convocation', ], ], ], ], ], ], Loading
module/Application/src/Application/Controller/EtablissementController.php +43 −0 Original line number Diff line number Diff line Loading @@ -5,10 +5,13 @@ namespace Application\Controller; use Application\Entity\Db\Etablissement; use Application\Entity\Db\Individu; use Application\Entity\Db\IndividuRole; use Application\Entity\Db\NatureFichier; use Application\Entity\Db\Role; use Application\Entity\Db\TypeStructure; use Application\Service\Etablissement\EtablissementService; use Application\Service\Etablissement\EtablissementServiceAwareTrait; use Application\Service\Fichier\FichierServiceAwareTrait; use Application\Service\NatureFichier\NatureFichierServiceAwareTrait; use Application\Service\Role\RoleServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; use UnicaenApp\Exception\RuntimeException; Loading @@ -21,6 +24,8 @@ use Zend\View\Model\ViewModel; class EtablissementController extends StructureConcreteController { use EtablissementServiceAwareTrait; use FichierServiceAwareTrait; use NatureFichierServiceAwareTrait; use RoleServiceAwareTrait; use SourceCodeStringHelperAwareTrait; Loading Loading @@ -65,6 +70,7 @@ class EtablissementController extends StructureConcreteController public function informationAction() { $id = $this->params()->fromRoute('structure'); /** @var Etablissement $etablissement */ $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($id); if ($etablissement === null) { throw new RuntimeException("Aucun établissement ne possède l'identifiant renseigné."); Loading Loading @@ -104,6 +110,7 @@ class EtablissementController extends StructureConcreteController 'roleListing' => $roleListings, 'individuListing' => $individuListings, 'logoContent' => $this->structureService->getLogoStructureContent($etablissement), 'signatureConvocation' => $this->etablissementService->getSignatureConvocationContent($etablissement), ]); } Loading Loading @@ -138,4 +145,40 @@ class EtablissementController extends StructureConcreteController return $viewModel; } /** gestion des signatures */ public function televerserSignatureConvocationAction() { $structure = $this->getStructureService()->getRequestedStructure($this); $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($structure->getId()); $nature = $this->natureFichierService->getRepository()->findOneBy(['code' => NatureFichier::CODE_SIGNATURE_CONVOCATION]); $request = $this->getRequest(); if ($request->isPost()) { $files = $request->getFiles()->toArray(); $fichiers = $this->fichierService->createFichiersFromUpload(['files' => $files], $nature); $this->fichierService->saveFichiers($fichiers); $etablissement->setCheminSignatureConvocation($fichiers[0]); $this->getEtablissementService()->update($etablissement); } $vm = new ViewModel([ 'title' => "Ajout d'une signature pour les convocation pour l'établissement [".$structure->getLibelle()."]", 'nature' => 'SIGNATURE_CONVOCATION', 'action' => $this->url()->fromRoute('etablissement/televerser-signature-convocation', ['structure' => $structure->getId()], [], true), ]); $vm->setTemplate('application/etablissement/televerser-document'); return $vm; } public function supprimerSignatureConvocationAction() { /** @var Etablissement $etablissement */ $structure = $this->getStructureService()->getRequestedStructure($this); $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($structure->getId()); $this->fichierService->supprimerFichiers([$etablissement->getSignatureConvocation()]); $etablissement->setSignatureConvocation(null); $this->etablissementService->update($etablissement); return $this->redirect()->toRoute($this->routeName."/information", [], ['query' => ['selected' => $structure->getId()], "fragment" => $structure->getId()], true); } } No newline at end of file
module/Application/src/Application/Controller/Factory/EtablissementControllerFactory.php +7 −0 Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ namespace Application\Controller\Factory; use Application\Controller\EtablissementController; use Application\Form\EtablissementForm; use Application\Service\Etablissement\EtablissementService; use Application\Service\Fichier\FichierService; use Application\Service\Individu\IndividuService; use Application\Service\NatureFichier\NatureFichierService; use Application\Service\Role\RoleService; use Application\Service\Structure\StructureService; use Application\SourceCodeStringHelper; Loading @@ -26,16 +28,21 @@ class EtablissementControllerFactory /** * @var EtablissementService $etablissmentService * @var FichierService $fichierService * @var IndividuService $individuService * @var RoleService $roleService * @var StructureService $structureService */ $etablissmentService = $container->get('EtablissementService'); $fichierService = $container->get(FichierService::class); $natureService = $container->get(NatureFichierService::class); $roleService = $container->get('RoleService'); $structureService = $container->get(StructureService::class); $controller = new EtablissementController(); $controller->setEtablissementService($etablissmentService); $controller->setFichierService($fichierService); $controller->setNatureFichierService($natureService); $controller->setRoleService($roleService); $controller->setStructureService($structureService); $controller->setStructureForm($form); Loading
module/Application/src/Application/Entity/Db/Etablissement.php +22 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,10 @@ class Etablissement implements StructureConcreteInterface, HistoriqueAwareInterf */ protected $estComue = false; /** @var Fichier */ protected $signatureConvocation; /** * Etablissement constructor. */ Loading Loading @@ -259,6 +263,24 @@ class Etablissement implements StructureConcreteInterface, HistoriqueAwareInterf $this->getStructure()->setCheminLogo($cheminLogo); } /** * @return Fichier|null */ public function getSignatureConvocation(): ?Fichier { return $this->signatureConvocation; } /** * @param Fichier|null $signatureConvocation * @return Etablissement */ public function setSignatureConvocation(?Fichier $signatureConvocation): Etablissement { $this->signatureConvocation = $signatureConvocation; return $this; } /** * @param Structure $structure * @return self Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Etablissement.dcm.xml +4 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,10 @@ <field name="estInscription" type="boolean" column="EST_ETAB_INSCRIPTION" nullable="false"/> <field name="estComue" type="boolean" column="EST_COMUE"/> <many-to-one field="signatureConvocation" target-entity="Application\Entity\Db\Fichier"> <join-column name="SIGNATURE_CONVOCATION_ID" referenced-column-name="ID"/> </many-to-one> <one-to-many field="theses" target-entity="Application\Entity\Db\These" mapped-by="etablissement"/> <one-to-many field="doctorants" target-entity="Application\Entity\Db\Doctorant" mapped-by="etablissement"/> <one-to-many field="roles" target-entity="Application\Entity\Db\Role" mapped-by="etablissement"/> Loading