diff --git a/module/Application/config/merged/fiche-metier.config.php b/module/Application/config/merged/fiche-metier.config.php index 31e78fe361b5fd30ac0fddb199eecb8fe1c91310..316b804dadb0df7be57365852297883c523828be 100644 --- a/module/Application/config/merged/fiche-metier.config.php +++ b/module/Application/config/merged/fiche-metier.config.php @@ -4,10 +4,6 @@ namespace Application; use Application\Controller\FicheMetierController; use Application\Controller\FicheMetierControllerFactory; -use Application\Form\FicheMetier\LibelleForm; -use Application\Form\FicheMetier\LibelleFormFactory; -use Application\Form\FicheMetier\LibelleHydrator; -use Application\Form\FicheMetier\LibelleHydratorFactory; use Application\Form\FicheMetierImportation\FicheMetierImportationForm; use Application\Form\FicheMetierImportation\FicheMetierImportationFormFactory; use Application\Form\FicheMetierImportation\FichierMetierImportationHydrator; @@ -24,9 +20,9 @@ use Application\Service\FicheMetier\FicheMetierServiceFactory; use Application\View\Helper\FicheMetierExterneViewHelper; use Application\View\Helper\RaisonsViewHelper; use Application\View\Helper\SpecificitePosteViewHelper; -use UnicaenPrivilege\Guard\PrivilegeController; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; +use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ @@ -538,7 +534,6 @@ return [ ], 'form_elements' => [ 'factories' => [ - LibelleForm::class => LibelleFormFactory::class, SelectionFicheMetierForm::class => SelectionFicheMetierFormFactory::class, FicheMetierImportationForm::class => FicheMetierImportationFormFactory::class, RaisonForm::class => RaisonFormFactory::class, @@ -546,7 +541,6 @@ return [ ], 'hydrators' => [ 'factories' => [ - LibelleHydrator::class => LibelleHydratorFactory::class, FichierMetierImportationHydrator::class => FichierMetierImportationHydratorFactory::class, RaisonHydrator::class => RaisonHydratorFactory::class, ], diff --git a/module/Application/src/Application/Controller/FicheMetierController.php b/module/Application/src/Application/Controller/FicheMetierController.php index 07189943b7301e205947b5ab96f15f64c9a7aee2..43d346a6425a7dbbc6656f2146bc82c3d3e01dd0 100644 --- a/module/Application/src/Application/Controller/FicheMetierController.php +++ b/module/Application/src/Application/Controller/FicheMetierController.php @@ -7,8 +7,6 @@ use Application\Entity\Db\FicheMetier; use Application\Entity\Db\ParcoursDeFormation; use Application\Form\Activite\ActiviteForm; use Application\Form\Activite\ActiviteFormAwareTrait; -use Application\Form\FicheMetier\LibelleForm; -use Application\Form\FicheMetier\LibelleFormAwareTrait; use Application\Form\FicheMetierImportation\FicheMetierImportationFormAwareTrait; use Application\Form\Raison\RaisonFormAwareTrait; use Application\Form\SelectionFicheMetier\SelectionFicheMetierFormAwareTrait; @@ -35,6 +33,7 @@ use Laminas\Http\Response; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger; use Laminas\View\Model\ViewModel; +use Metier\Form\SelectionnerMetier\SelectionnerMetierFormAwareTrait; use Metier\Service\Domaine\DomaineServiceAwareTrait; use Metier\Service\Metier\MetierServiceAwareTrait; use Mpdf\MpdfException; @@ -66,7 +65,6 @@ class FicheMetierController extends AbstractActionController /** Traits associƩs aux formulaires */ use ActiviteFormAwareTrait; - use LibelleFormAwareTrait; use FicheMetierImportationFormAwareTrait; use RaisonFormAwareTrait; use SelectionApplicationFormAwareTrait; @@ -74,6 +72,7 @@ class FicheMetierController extends AbstractActionController use SelectionEtatFormAwareTrait; use SelectionFicheMetierFormAwareTrait; use SelectionFormationFormAwareTrait; + use SelectionnerMetierFormAwareTrait; const REFERENS_SEP = "|"; @@ -125,8 +124,7 @@ class FicheMetierController extends AbstractActionController $fiche = new FicheMetier(); $fiche->setEtat($this->getEtatService()->getEtatByCode(FicheMetierEtats::ETAT_REDACTION)); - /** @var LibelleForm $form */ - $form = $this->getLibelleForm(); + $form = $this->getSelectionnerMetierForm(); $form->setAttribute('action', $this->url()->fromRoute('fiche-metier-type/ajouter', [], [], true)); $form->bind($fiche); @@ -150,7 +148,7 @@ class FicheMetierController extends AbstractActionController $vm = new ViewModel(); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ - 'title' => 'Ajout d\'une fiche metier', + 'title' => "Ajout d'une fiche metier", 'form' => $form, ]); return $vm; @@ -281,8 +279,7 @@ class FicheMetierController extends AbstractActionController { $fiche = $this->getFicheMetierService()->getRequestedFicheMetier($this, 'id', true); - /** @var LibelleForm $form */ - $form = $this->getLibelleForm(); + $form = $this->getSelectionnerMetierForm(); $form->setAttribute('action', $this->url()->fromRoute('fiche-metier-type/editer-libelle', ['id' => $fiche->getId()], [], true)); $form->bind($fiche); diff --git a/module/Application/src/Application/Controller/FicheMetierControllerFactory.php b/module/Application/src/Application/Controller/FicheMetierControllerFactory.php index bdeddeb0c5a38521f7f65c0072dcff27bde87482..b621b60b3638a4e686f4ec62dfd3858b753d6fe8 100644 --- a/module/Application/src/Application/Controller/FicheMetierControllerFactory.php +++ b/module/Application/src/Application/Controller/FicheMetierControllerFactory.php @@ -3,22 +3,22 @@ namespace Application\Controller; use Application\Form\Activite\ActiviteForm; -use Application\Form\FicheMetier\LibelleForm; use Application\Form\FicheMetierImportation\FicheMetierImportationForm; use Application\Form\Raison\RaisonForm; -use Application\Service\ActiviteDescription\ActiviteDescriptionService; -use Element\Form\SelectionApplication\SelectionApplicationForm; -use Element\Form\SelectionCompetence\SelectionCompetenceForm; use Application\Form\SelectionFicheMetier\SelectionFicheMetierForm; use Application\Service\Activite\ActiviteService; +use Application\Service\ActiviteDescription\ActiviteDescriptionService; use Application\Service\Agent\AgentService; use Application\Service\Configuration\ConfigurationService; use Application\Service\FicheMetier\FicheMetierService; +use Application\Service\ParcoursDeFormation\ParcoursDeFormationService; +use Element\Form\SelectionApplication\SelectionApplicationForm; +use Element\Form\SelectionCompetence\SelectionCompetenceForm; use Element\Service\HasApplicationCollection\HasApplicationCollectionService; use Element\Service\HasCompetenceCollection\HasCompetenceCollectionService; -use Application\Service\ParcoursDeFormation\ParcoursDeFormationService; use Formation\Form\SelectionFormation\SelectionFormationForm; use Interop\Container\ContainerInterface; +use Metier\Form\SelectionnerMetier\SelectionnerMetierForm; use Metier\Service\Domaine\DomaineService; use Metier\Service\Metier\MetierService; use Psr\Container\ContainerExceptionInterface; @@ -69,7 +69,6 @@ class FicheMetierControllerFactory $parcoursService = $container->get(ParcoursDeFormationService::class); /** - * @var LibelleForm $libelleForm * @var FicheMetierImportationForm $ficheMetierImportationForm * @var ActiviteForm $activiteForm * @var RaisonForm $raisonForm @@ -78,8 +77,8 @@ class FicheMetierControllerFactory * @var SelectionFormationForm $selectionFormationForm * @var SelectionEtatForm $selectionEtatForm * @var SelectionFicheMetierForm $selectionFicheMetierForm + * @var SelectionnerMetierForm $selectionnerMetierForm */ - $libelleForm = $container->get('FormElementManager')->get(LibelleForm::class); $activiteForm = $container->get('FormElementManager')->get(ActiviteForm::class); $raisonForm = $container->get('FormElementManager')->get(RaisonForm::class); $selectionApplicationForm = $container->get('FormElementManager')->get(SelectionApplicationForm::class); @@ -88,6 +87,7 @@ class FicheMetierControllerFactory $selectionEtatForm = $container->get('FormElementManager')->get(SelectionEtatForm::class); $selectionFicheMetierForm = $container->get('FormElementManager')->get(SelectionFicheMetierForm::class); $ficheMetierImportationForm = $container->get('FormElementManager')->get(FicheMetierImportationForm::class); + $selectionnerMetierForm = $container->get('FormElementManager')->get(SelectionnerMetierForm::class); /** @var FicheMetierController $controller */ $controller = new FicheMetierController(); @@ -106,7 +106,6 @@ class FicheMetierControllerFactory $controller->setMetierService($metierService); $controller->setParcoursDeFormationService($parcoursService); - $controller->setLibelleForm($libelleForm); $controller->setActiviteForm($activiteForm); $controller->setRaisonForm($raisonForm); $controller->setSelectionApplicationForm($selectionApplicationForm); @@ -115,6 +114,7 @@ class FicheMetierControllerFactory $controller->setSelectionEtatForm($selectionEtatForm); $controller->setSelectionFicheMetierForm($selectionFicheMetierForm); $controller->setFicheMetierImportationForm($ficheMetierImportationForm); + $controller->setSelectionnerMetierForm($selectionnerMetierForm); return $controller; } diff --git a/module/Application/src/Application/Entity/Db/AgentStageObservation.php b/module/Application/src/Application/Entity/Db/AgentStageObservation.php index d36723d19fe59215aa1a22a445f3c764d450a8db..d7d83bd79d0549faebb85f3be7ecf40d8bac640b 100644 --- a/module/Application/src/Application/Entity/Db/AgentStageObservation.php +++ b/module/Application/src/Application/Entity/Db/AgentStageObservation.php @@ -4,13 +4,15 @@ namespace Application\Entity\Db; use Application\Entity\Db\Interfaces\HasPeriodeInterface; use Application\Entity\Db\Traits\HasPeriodeTrait; -use Metier\Entity\Db\Metier; +use Metier\Entity\HasMetierInterface; +use Metier\Entity\HasMetierTrait; use Structure\Entity\Db\Structure; use UnicaenEtat\Entity\Db\Etat; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; -class AgentStageObservation implements HistoriqueAwareInterface, HasPeriodeInterface { +class AgentStageObservation implements HistoriqueAwareInterface, HasMetierInterface, HasPeriodeInterface { + use HasMetierTrait; use HasPeriodeTrait; use HistoriqueAwareTrait; @@ -20,8 +22,6 @@ class AgentStageObservation implements HistoriqueAwareInterface, HasPeriodeInter private $agent; /** @var Structure|null */ private $structure; - /** @var Metier|null */ - private $metier; /** @var string|null */ private $complement; /** @var Etat|null */ @@ -71,24 +71,6 @@ class AgentStageObservation implements HistoriqueAwareInterface, HasPeriodeInter return $this; } - /** - * @return Metier|null - */ - public function getMetier(): ?Metier - { - return $this->metier; - } - - /** - * @param Metier|null $metier - * @return AgentStageObservation - */ - public function setMetier(?Metier $metier): AgentStageObservation - { - $this->metier = $metier; - return $this; - } - /** * @return string|null */ diff --git a/module/Application/src/Application/Entity/Db/AgentTutorat.php b/module/Application/src/Application/Entity/Db/AgentTutorat.php index d6386dd671966a41f0b9084fbbd462aebdf9b601..035505c3fe15a7870d7443d199f20b51702c19e4 100644 --- a/module/Application/src/Application/Entity/Db/AgentTutorat.php +++ b/module/Application/src/Application/Entity/Db/AgentTutorat.php @@ -5,11 +5,14 @@ namespace Application\Entity\Db; use Application\Entity\Db\Interfaces\HasPeriodeInterface; use Application\Entity\Db\Traits\HasPeriodeTrait; use Metier\Entity\Db\Metier; +use Metier\Entity\HasMetierInterface; +use Metier\Entity\HasMetierTrait; use UnicaenEtat\Entity\Db\Etat; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; -class AgentTutorat implements HistoriqueAwareInterface, HasPeriodeInterface { +class AgentTutorat implements HistoriqueAwareInterface, HasMetierInterface, HasPeriodeInterface { + use HasMetierTrait; use HasPeriodeTrait; use HistoriqueAwareTrait; @@ -19,8 +22,6 @@ class AgentTutorat implements HistoriqueAwareInterface, HasPeriodeInterface { private $agent; /** @var Agent|null */ private $cible; - /** @var Metier|null */ - private $metier; /** @var string|null */ private $complement; /** @var bool|null */ @@ -72,24 +73,6 @@ class AgentTutorat implements HistoriqueAwareInterface, HasPeriodeInterface { return $this; } - /** - * @return Metier|null - */ - public function getMetier(): ?Metier - { - return $this->metier; - } - - /** - * @param Metier|null $metier - * @return AgentTutorat - */ - public function setMetier(?Metier $metier): AgentTutorat - { - $this->metier = $metier; - return $this; - } - /** * @return string|null */ diff --git a/module/Application/src/Application/Entity/Db/FicheMetier.php b/module/Application/src/Application/Entity/Db/FicheMetier.php index f8299e0f489c085f1b240adb9f70979226a9453f..0a1920d87ee9775952a8d2d5e7ed760c8672a497 100644 --- a/module/Application/src/Application/Entity/Db/FicheMetier.php +++ b/module/Application/src/Application/Entity/Db/FicheMetier.php @@ -13,20 +13,22 @@ use Element\Entity\Db\Traits\HasApplicationCollectionTrait; use Element\Entity\Db\Traits\HasCompetenceCollectionTrait; use Doctrine\Common\Collections\ArrayCollection; use Metier\Entity\Db\Metier; +use Metier\Entity\HasMetierInterface; +use Metier\Entity\HasMetierTrait; use UnicaenEtat\Entity\Db\HasEtatInterface; use UnicaenEtat\Entity\Db\HasEtatTrait; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; -class FicheMetier implements HistoriqueAwareInterface, HasEtatInterface, +class FicheMetier implements HistoriqueAwareInterface, HasEtatInterface, HasMetierInterface, HasApplicationCollectionInterface, HasCompetenceCollectionInterface { use HistoriqueAwareTrait; + use HasMetierTrait; use HasEtatTrait; use HasApplicationCollectionTrait; use HasCompetenceCollectionTrait; private ?int $id = -1; - private ?Metier $metier = null; private ?bool $hasExpertise = false; private ?string $raison = null; @@ -47,24 +49,6 @@ class FicheMetier implements HistoriqueAwareInterface, HasEtatInterface, return $this->id; } - /** - * @return Metier|null - */ - public function getMetier() : ?Metier - { - return $this->metier; - } - - /** - * @param Metier|null $metier - * @return FicheMetier - */ - public function setMetier(?Metier $metier) : FicheMetier - { - $this->metier = $metier; - return $this; - } - /** * @return bool|null */ diff --git a/module/Application/src/Application/Form/FicheMetier/LibelleFormAwareTrait.php b/module/Application/src/Application/Form/FicheMetier/LibelleFormAwareTrait.php deleted file mode 100644 index e67c851107acfa0ed5f22be9cb338d0cf882d728..0000000000000000000000000000000000000000 --- a/module/Application/src/Application/Form/FicheMetier/LibelleFormAwareTrait.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php - -namespace Application\Form\FicheMetier; - -trait LibelleFormAwareTrait { - - /** @var LibelleForm $libelleForm */ - private $libelleForm; - - /** - * @return LibelleForm - */ - public function getLibelleForm() - { - return $this->libelleForm; - } - - /** - * @param LibelleForm $libelleForm - * @return LibelleForm - */ - public function setLibelleForm($libelleForm) - { - $this->libelleForm = $libelleForm; - return $this->libelleForm; - } - - -} \ No newline at end of file diff --git a/module/Application/src/Application/Form/FicheMetier/LibelleFormFactory.php b/module/Application/src/Application/Form/FicheMetier/LibelleFormFactory.php deleted file mode 100644 index e83444a6ad10b5c39946d8c28fd860213e8c04ee..0000000000000000000000000000000000000000 --- a/module/Application/src/Application/Form/FicheMetier/LibelleFormFactory.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php - -namespace Application\Form\FicheMetier; - -use Metier\Service\Metier\MetierService; -use Interop\Container\ContainerInterface; - -class LibelleFormFactory { - - public function __invoke(ContainerInterface $container) - { - /** @var LibelleHydrator $hydrator */ - $hydrator = $container->get('HydratorManager')->get(LibelleHydrator::class); - - /** - * @var MetierService $metierService - */ - $metierService = $container->get(MetierService::class); - - $form = new LibelleForm(); - $form->setMetierService($metierService); - $form->init(); - $form->setHydrator($hydrator); - - return $form; - } -} \ No newline at end of file diff --git a/module/Application/src/Application/Form/FicheMetier/LibelleHydratorFactory.php b/module/Application/src/Application/Form/FicheMetier/LibelleHydratorFactory.php deleted file mode 100644 index 3ea968f22f75a32f4c307e67aec8c3f24a00d2f9..0000000000000000000000000000000000000000 --- a/module/Application/src/Application/Form/FicheMetier/LibelleHydratorFactory.php +++ /dev/null @@ -1,20 +0,0 @@ -<?php - -namespace Application\Form\FicheMetier; - -use Metier\Service\Metier\MetierService; -use Interop\Container\ContainerInterface; - -class LibelleHydratorFactory { - - public function __invoke(ContainerInterface $container) - { - /** @var MetierService $metierService */ - $metierService = $container->get(MetierService::class); - - $hydrator = new LibelleHydrator(); - $hydrator->setMetierService($metierService); - - return $hydrator; - } -} \ No newline at end of file diff --git a/module/FicheMetier/Module.php b/module/FicheMetier/Module.php new file mode 100644 index 0000000000000000000000000000000000000000..c7d5b9a68c716f3dd528122dd0362e0d75791c91 --- /dev/null +++ b/module/FicheMetier/Module.php @@ -0,0 +1,42 @@ +<?php +namespace FicheMetier; + +use Laminas\Mvc\ModuleRouteListener; +use Laminas\Mvc\MvcEvent; +use Laminas\Config\Factory as ConfigFactory; +use Laminas\Stdlib\ArrayUtils; +use Laminas\Stdlib\Glob; + +class Module +{ + public function onBootstrap(MvcEvent $e) + { + $eventManager = $e->getApplication()->getEventManager(); + $moduleRouteListener = new ModuleRouteListener(); + $moduleRouteListener->attach($eventManager); + } + + public function getConfig() + { + $configInit = [ + __DIR__ . '/config/module.config.php' + ]; + $configFiles = ArrayUtils::merge( + $configInit, + Glob::glob(__DIR__ . '/config/merged/{,*.}{config}.php', Glob::GLOB_BRACE) + ); + + return ConfigFactory::fromFiles($configFiles); + } + + public function getAutoloaderConfig() + { + return array( + 'Laminas\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } +} diff --git a/module/FicheMetier/config/example.php b/module/FicheMetier/config/example.php new file mode 100644 index 0000000000000000000000000000000000000000..7797c9e02dd04ac4f05696744bbc6e30a2c72495 --- /dev/null +++ b/module/FicheMetier/config/example.php @@ -0,0 +1,36 @@ +<?php + +namespace FichePoste; + +use UnicaenPrivilege\Guard\PrivilegeController; +use Laminas\Router\Http\Literal; +use Laminas\Router\Http\Segment; + +return [ + 'bjyauthorize' => [ + 'guards' => [ + PrivilegeController::class => [ + + ], + ], + ], + + 'router' => [ + 'routes' => [ + ], + ], + + 'service_manager' => [ + 'factories' => [], + ], + 'controllers' => [ + 'factories' => [], + ], + 'form_elements' => [ + 'factories' => [], + ], + 'hydrators' => [ + 'factories' => [], + ] + +]; \ No newline at end of file diff --git a/module/FicheMetier/config/module.config.php b/module/FicheMetier/config/module.config.php new file mode 100755 index 0000000000000000000000000000000000000000..fd0d379cfe5e821b7a951848c241b15e70754f6d --- /dev/null +++ b/module/FicheMetier/config/module.config.php @@ -0,0 +1,66 @@ +<?php + +namespace FicheMetier; + +Use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; +use Doctrine\ORM\Mapping\Driver\XmlDriver; +use UnicaenPrivilege\Guard\PrivilegeController; + +return [ + 'bjyauthorize' => [ + 'guards' => [ + PrivilegeController::class => [ + ], + ], + ], + + 'doctrine' => [ + 'driver' => [ + 'orm_default' => [ + 'class' => MappingDriverChain::class, + 'drivers' => [ + 'FicheMetier\Entity\Db' => 'orm_default_xml_driver', + ], + ], + 'orm_default_xml_driver' => [ + 'class' => XmlDriver::class, + 'cache' => 'apc', + 'paths' => [ + __DIR__ . '/../src/FicheMetier/Entity/Db/Mapping', + ], + ], + ], + 'cache' => [ + 'apc' => [ + 'namespace' => 'PREECOG__FicheMetier__' . __NAMESPACE__, + ], + ], + ], + + 'service_manager' => [ + 'factories' => [ + ], + ], + 'controllers' => [ + 'factories' => [ + ] + ], + 'form_elements' => [ + 'factories' => [ + ], + ], + 'hydrators' => [ + 'factories' => [ + ], + ], + 'view_helpers' => [ + 'invokables' => [ + ], + ], + 'view_manager' => [ + 'template_path_stack' => [ + __DIR__ . '/../view', + ], + ], + +]; diff --git a/module/FichePoste/Module.php b/module/FichePoste/Module.php new file mode 100644 index 0000000000000000000000000000000000000000..09a285e304065af383ba69232f2054f1efc559c5 --- /dev/null +++ b/module/FichePoste/Module.php @@ -0,0 +1,42 @@ +<?php +namespace FichePoste; + +use Laminas\Mvc\ModuleRouteListener; +use Laminas\Mvc\MvcEvent; +use Laminas\Config\Factory as ConfigFactory; +use Laminas\Stdlib\ArrayUtils; +use Laminas\Stdlib\Glob; + +class Module +{ + public function onBootstrap(MvcEvent $e) + { + $eventManager = $e->getApplication()->getEventManager(); + $moduleRouteListener = new ModuleRouteListener(); + $moduleRouteListener->attach($eventManager); + } + + public function getConfig() + { + $configInit = [ + __DIR__ . '/config/module.config.php' + ]; + $configFiles = ArrayUtils::merge( + $configInit, + Glob::glob(__DIR__ . '/config/merged/{,*.}{config}.php', Glob::GLOB_BRACE) + ); + + return ConfigFactory::fromFiles($configFiles); + } + + public function getAutoloaderConfig() + { + return array( + 'Laminas\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } +} diff --git a/module/FichePoste/config/example.php b/module/FichePoste/config/example.php new file mode 100644 index 0000000000000000000000000000000000000000..7797c9e02dd04ac4f05696744bbc6e30a2c72495 --- /dev/null +++ b/module/FichePoste/config/example.php @@ -0,0 +1,36 @@ +<?php + +namespace FichePoste; + +use UnicaenPrivilege\Guard\PrivilegeController; +use Laminas\Router\Http\Literal; +use Laminas\Router\Http\Segment; + +return [ + 'bjyauthorize' => [ + 'guards' => [ + PrivilegeController::class => [ + + ], + ], + ], + + 'router' => [ + 'routes' => [ + ], + ], + + 'service_manager' => [ + 'factories' => [], + ], + 'controllers' => [ + 'factories' => [], + ], + 'form_elements' => [ + 'factories' => [], + ], + 'hydrators' => [ + 'factories' => [], + ] + +]; \ No newline at end of file diff --git a/module/FichePoste/config/module.config.php b/module/FichePoste/config/module.config.php new file mode 100755 index 0000000000000000000000000000000000000000..739cf5d4fd364996fcf40ee3c078bf2380889dbb --- /dev/null +++ b/module/FichePoste/config/module.config.php @@ -0,0 +1,66 @@ +<?php + +namespace FichePoste; + +use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain; +use Doctrine\ORM\Mapping\Driver\XmlDriver; +use UnicaenPrivilege\Guard\PrivilegeController; + +return [ + 'bjyauthorize' => [ + 'guards' => [ + PrivilegeController::class => [ + ], + ], + ], + + 'doctrine' => [ + 'driver' => [ + 'orm_default' => [ + 'class' => MappingDriverChain::class, + 'drivers' => [ + 'Metier\Entity\Db' => 'orm_default_xml_driver', + ], + ], + 'orm_default_xml_driver' => [ + 'class' => XmlDriver::class, + 'cache' => 'apc', + 'paths' => [ + __DIR__ . '/../src/Metier/Entity/Db/Mapping', + ], + ], + ], + 'cache' => [ + 'apc' => [ + 'namespace' => 'PREECOG__Metier__' . __NAMESPACE__, + ], + ], + ], + + 'service_manager' => [ + 'factories' => [ + ], + ], + 'controllers' => [ + 'factories' => [ + ] + ], + 'form_elements' => [ + 'factories' => [ + ], + ], + 'hydrators' => [ + 'factories' => [ + ], + ], + 'view_helpers' => [ + 'invokables' => [ + ], + ], + 'view_manager' => [ + 'template_path_stack' => [ + __DIR__ . '/../view', + ], + ], + +]; diff --git a/module/Metier/config/merged/metier.config.php b/module/Metier/config/merged/metier.config.php index 76e23ae909c03deb1842b575905bff8814037de3..136829dfc083b00b890d7ed7f5d27a9e17e944c5 100644 --- a/module/Metier/config/merged/metier.config.php +++ b/module/Metier/config/merged/metier.config.php @@ -13,6 +13,10 @@ use Metier\Form\Metier\MetierForm; use Metier\Form\Metier\MetierFormFactory; use Metier\Form\Metier\MetierHydrator; use Metier\Form\Metier\MetierHydratorFactory; +use Metier\Form\SelectionnerMetier\SelectionnerMetierForm; +use Metier\Form\SelectionnerMetier\SelectionnerMetierFormFactory; +use Metier\Form\SelectionnerMetier\SelectionnerMetierHydrator; +use Metier\Form\SelectionnerMetier\SelectionnerMetierHydratorFactory; use Metier\Provider\Privilege\MetierPrivileges; use Metier\Service\Metier\MetierService; use Metier\Service\Metier\MetierServiceFactory; @@ -276,11 +280,13 @@ return [ 'form_elements' => [ 'factories' => [ MetierForm::class => MetierFormFactory::class, + SelectionnerMetierForm::class => SelectionnerMetierFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ MetierHydrator::class => MetierHydratorFactory::class, + SelectionnerMetierHydrator::class => SelectionnerMetierHydratorFactory::class, ], ], 'view_helpers' => [ diff --git a/module/Metier/src/Metier/Entity/Db/Reference.php b/module/Metier/src/Metier/Entity/Db/Reference.php index 5f767303fb8deb2c2fe19a3fc7c5e91b689a6985..1559df42955aed5f9e85e6154cc4a6b679b38653 100644 --- a/module/Metier/src/Metier/Entity/Db/Reference.php +++ b/module/Metier/src/Metier/Entity/Db/Reference.php @@ -2,16 +2,17 @@ namespace Metier\Entity\Db; +use Metier\Entity\HasMetierInterface; +use Metier\Entity\HasMetierTrait; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; -class Reference implements HistoriqueAwareInterface { +class Reference implements HistoriqueAwareInterface, HasMetierInterface { use HistoriqueAwareTrait; + use HasMetierTrait; /** @var integer */ private $id; - /** @var Metier */ - private $metier; /** @var Referentiel */ private $referentiel; /** @var string */ @@ -29,24 +30,6 @@ class Reference implements HistoriqueAwareInterface { return $this->id; } - /** - * @return Metier - */ - public function getMetier() - { - return $this->metier; - } - - /** - * @param Metier $metier - * @return Reference - */ - public function setMetier(Metier $metier) - { - $this->metier = $metier; - return $this; - } - /** * @return Referentiel */ diff --git a/module/Metier/src/Metier/Entity/HasMetierInterface.php b/module/Metier/src/Metier/Entity/HasMetierInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..d64c7fdc6c4ed960df9f78912f64e85e0b6771f0 --- /dev/null +++ b/module/Metier/src/Metier/Entity/HasMetierInterface.php @@ -0,0 +1,11 @@ +<?php + +namespace Metier\Entity; + +use Metier\Entity\Db\Metier; + +interface HasMetierInterface +{ + public function getMetier() : ?Metier; + public function setMetier(?Metier $metier) : void; +} \ No newline at end of file diff --git a/module/Metier/src/Metier/Entity/HasMetierTrait.php b/module/Metier/src/Metier/Entity/HasMetierTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..6c27f68b4142a66865a55215990cbcbf38a97b1b --- /dev/null +++ b/module/Metier/src/Metier/Entity/HasMetierTrait.php @@ -0,0 +1,20 @@ +<?php + +namespace Metier\Entity; + +use Metier\Entity\Db\Metier; + +trait HasMetierTrait +{ + private ?Metier $metier = null; + + public function getMetier() : ?Metier + { + return $this->metier; + } + + public function setMetier(?Metier $metier) : void + { + $this->metier = $metier; + } +} \ No newline at end of file diff --git a/module/Application/src/Application/Form/FicheMetier/LibelleForm.php b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierForm.php similarity index 93% rename from module/Application/src/Application/Form/FicheMetier/LibelleForm.php rename to module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierForm.php index 8cf8e65e470932fc924c815bb0ec8c480349fc79..4ed9a6c221a020f18ca80d5d1df1721c6c53be77 100644 --- a/module/Application/src/Application/Form/FicheMetier/LibelleForm.php +++ b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierForm.php @@ -1,13 +1,13 @@ <?php -namespace Application\Form\FicheMetier; +namespace Metier\Form\SelectionnerMetier; use Metier\Service\Metier\MetierServiceAwareTrait; use Laminas\Form\Element\Button; use Laminas\Form\Element\Select; use Laminas\Form\Form; -class LibelleForm extends Form +class SelectionnerMetierForm extends Form { use MetierServiceAwareTrait; diff --git a/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierFormAwareTrait.php b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierFormAwareTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..129506f60b7ed9957214e698ecf9c6d9bed690fb --- /dev/null +++ b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierFormAwareTrait.php @@ -0,0 +1,19 @@ +<?php + +namespace Metier\Form\SelectionnerMetier; + +trait SelectionnerMetierFormAwareTrait { + + private SelectionnerMetierForm $selectionnerMetierForm; + + public function getSelectionnerMetierForm() : SelectionnerMetierForm + { + return $this->selectionnerMetierForm; + } + + public function setSelectionnerMetierForm(SelectionnerMetierForm $selectionnerMetierForm) : void + { + $this->selectionnerMetierForm = $selectionnerMetierForm; + } + +} \ No newline at end of file diff --git a/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierFormFactory.php b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierFormFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..e874abc64690076f63b5e7a3725dfcf4eaafcbb0 --- /dev/null +++ b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierFormFactory.php @@ -0,0 +1,35 @@ +<?php + +namespace Metier\Form\SelectionnerMetier; + +use Metier\Service\Metier\MetierService; +use Interop\Container\ContainerInterface; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; + +class SelectionnerMetierFormFactory { + + /** + * @param ContainerInterface $container + * @return SelectionnerMetierForm + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function __invoke(ContainerInterface $container) : SelectionnerMetierForm + { + /** @var SelectionnerMetierHydrator $hydrator */ + $hydrator = $container->get('HydratorManager')->get(SelectionnerMetierHydrator::class); + + /** + * @var MetierService $metierService + */ + $metierService = $container->get(MetierService::class); + + $form = new SelectionnerMetierForm(); + $form->setMetierService($metierService); + $form->init(); + $form->setHydrator($hydrator); + + return $form; + } +} \ No newline at end of file diff --git a/module/Application/src/Application/Form/FicheMetier/LibelleHydrator.php b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierHydrator.php similarity index 63% rename from module/Application/src/Application/Form/FicheMetier/LibelleHydrator.php rename to module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierHydrator.php index 782c3568ca46aa7d1deb42b20777ca300bc146dc..55ce1f03443f1a7ce7eb78000a5fb787150c74e1 100644 --- a/module/Application/src/Application/Form/FicheMetier/LibelleHydrator.php +++ b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierHydrator.php @@ -1,16 +1,16 @@ <?php -namespace Application\Form\FicheMetier; +namespace Metier\Form\SelectionnerMetier; -use Application\Entity\Db\FicheMetier; +use Metier\Entity\HasMetierInterface; use Metier\Service\Metier\MetierServiceAwareTrait; use Laminas\Hydrator\HydratorInterface; -class LibelleHydrator implements HydratorInterface { +class SelectionnerMetierHydrator implements HydratorInterface { use MetierServiceAwareTrait; /** - * @param FicheMetier $object + * @param HasMetierInterface $object * @return array */ public function extract($object): array @@ -23,10 +23,10 @@ class LibelleHydrator implements HydratorInterface { /** * @param array $data - * @param FicheMetier $object - * @return FicheMetier + * @param HasMetierInterface $object + * @return HasMetierInterface */ - public function hydrate(array $data, $object) + public function hydrate(array $data, $object) : object { $metier = $this->getMetierService()->getMetier($data['metier']); $object->setMetier($metier); diff --git a/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierHydratorFactory.php b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierHydratorFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..34137273b985420c49dbf980d490c2fb379f4a09 --- /dev/null +++ b/module/Metier/src/Metier/Form/SelectionnerMetier/SelectionnerMetierHydratorFactory.php @@ -0,0 +1,28 @@ +<?php + +namespace Metier\Form\SelectionnerMetier; + +use Metier\Service\Metier\MetierService; +use Interop\Container\ContainerInterface; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; + +class SelectionnerMetierHydratorFactory { + + /** + * @param ContainerInterface $container + * @return SelectionnerMetierHydrator + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function __invoke(ContainerInterface $container) : SelectionnerMetierHydrator + { + /** @var MetierService $metierService */ + $metierService = $container->get(MetierService::class); + + $hydrator = new SelectionnerMetierHydrator(); + $hydrator->setMetierService($metierService); + + return $hydrator; + } +} \ No newline at end of file