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