Loading documentation/003_DB_EMC2_METIER.sql +11 −3 Original line number Diff line number Diff line Loading @@ -28,9 +28,6 @@ create table metier_domaine constraint domaine_pk primary key, libelle varchar(256) not null, famille_id integer constraint domaine_famille_professionnelle_id_fk references metier_familleprofessionnelle, type_fonction varchar(256), histo_creation timestamp default now() not null, histo_createur_id integer default 0 not null Loading Loading @@ -159,6 +156,17 @@ create table metier_reference create unique index metier_reference_id_uindex on metier_reference (id); create table metier_domaine_famille ( domaine_id integer not null constraint metier_domaine_famille_metier_domaine_id_fk references metier_domaine, famille_id integer not null constraint metier_domaine_famille_metier_familleprofessionnelle_id_fk references metier_familleprofessionnelle, constraint metier_domaine_famille_pk primary key (domaine_id, famille_id) ); ---------------------------------------------------------------------------------------- -- PRIVILEGE --------------------------------------------------------------------------- Loading documentation/release/3.1.3.md +28 −1 Original line number Diff line number Diff line Loading @@ -6,11 +6,16 @@ * Ajout de gardes pour le filtre des fiches métiers afin d'éviter les avertissements (indicatifs) lorsque aucune valeur de sélectionnée. * Ajout de privilèges pour les niveaux de carrière * Transformation de la relation Domaine <-> Famille en relation "many to many" * [FIX] Correction de routes erronées pour la gestion des niveaux de carrière **Modifications de la base de donnée** ```sql ---------------------------------------------------------------- -- Ajout de privilèges pour la gestion des niveaux de carrières ---------------------------------------------------------------- INSERT INTO unicaen_privilege_categorie (code, libelle, ordre, namespace) VALUES ('niveaucarriere', 'Gestion des niveaux de carrière ', 1000, 'Carriere\Provider\Privilege'); INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) Loading @@ -26,7 +31,29 @@ SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_categorie cp ON cp.CODE = 'niveaucarriere'; -- pensez à attribuer ces nouveaux privilèges --------------------------------------------------------------------- -- Modification de la structure pour la gestion n-n metier/famille -- --------------------------------------------------------------------- create table metier_domaine_famille ( domaine_id integer not null constraint metier_domaine_famille_metier_domaine_id_fk references metier_domaine, famille_id integer not null constraint metier_domaine_famille_metier_familleprofessionnelle_id_fk references metier_familleprofessionnelle, constraint metier_domaine_famille_pk primary key (domaine_id, famille_id) ); insert into metier_domaine_famille (domaine_id, famille_id) with d(domaine_id, famille_id) as ( select id as domaine_id, famille_id from metier_domaine ) SELECT d.domaine_id, d.famille_id FROM d alter table metier_domaine drop column famille_id; ``` **Évolution des bibliothèques** module/Metier/src/Metier/Controller/DomaineController.php +3 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,9 @@ class DomaineController extends AbstractActionController { $historise = $this->params()->fromQuery('historise'); $domaines = $this->getDomaineService()->getDomaines(); if ($famille_ !== null) $domaines = array_filter($domaines, function (Domaine $m) use ($famille_) { return $m->getFamille() === $famille_; }); if ($famille_ !== null) $domaines = array_filter($domaines, function (Domaine $m) use ($famille_) { return in_array($famille_, $m->getFamilles()); }); if ($type !== null and $type !== ' ') $domaines = array_filter($domaines, function (Domaine $m) use ($type) { return $m->getTypeFonction() === $type; }); if ($historise !== null and $historise !== ' ') $domaines = array_filter($domaines, function (Domaine $m) use ($historise) { if ($historise === '1') return $m->estHistorise(); else return $m->estNonHistorise(); }); Loading module/Metier/src/Metier/Controller/DomaineControllerFactory.php +5 −1 Original line number Diff line number Diff line Loading @@ -6,14 +6,18 @@ use Metier\Form\Domaine\DomaineForm; use Metier\Service\Domaine\DomaineService; use Interop\Container\ContainerInterface; use Metier\Service\FamilleProfessionnelle\FamilleProfessionnelleService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; class DomaineControllerFactory { /** * @param ContainerInterface $container * @return DomaineController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) public function __invoke(ContainerInterface $container) : DomaineController { /** * @var DomaineService $domaineService Loading module/Metier/src/Metier/Entity/Db/Domaine.php +26 −67 Original line number Diff line number Diff line Loading @@ -3,122 +3,81 @@ namespace Metier\Entity\Db; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; class Domaine implements HistoriqueAwareInterface { use HistoriqueAwareTrait; /** @var integer */ private $id; /** @var string */ private $libelle; /** @var string */ private $typeFonction; /** @var FamilleProfessionnelle */ private $famille; /** @var ArrayCollection */ private $metiers; private ?int $id = null; private ?string $libelle = null; private ?string $typeFonction = null; private Collection $familles; private Collection $metiers; public function __construct() { $this->metiers = new ArrayCollection(); $this->familles = new ArrayCollection(); } /** * @return int */ public function getId() public function getId() : ?int { return $this->id; } /** * @return string */ public function getLibelle() public function getLibelle() : ?string { return $this->libelle; } /** * @param string $libelle * @return Domaine */ public function setLibelle($libelle) public function setLibelle(?string $libelle) : void { $this->libelle = $libelle; return $this; } /** * @return string */ public function getTypeFonction() public function getTypeFonction() : ?string { return $this->typeFonction; } /** * @param string $typeFonction * @return Domaine */ public function setTypeFonction($typeFonction) public function setTypeFonction(?string $typeFonction) : void { $this->typeFonction = $typeFonction; return $this; } /** * @return FamilleProfessionnelle * @return FamilleProfessionnelle[] */ public function getFamille() public function getFamilles() : array { return $this->famille; $familles = $this->familles->toArray(); usort($familles, function (FamilleProfessionnelle $a, FamilleProfessionnelle $b) { return $a->getLibelle() > $b->getLibelle();}); return $familles; } /** * @param FamilleProfessionnelle $famille * @return Domaine */ public function setFamille($famille) { $this->famille = $famille; return $this; } /** * @return Metier[] */ public function getMetiers() public function clearFamilles() : void { return $this->metiers->toArray(); $this->familles->clear(); } /** * @param Metier $metier * @return Domaine */ public function addMetier($metier) public function addFamille(FamilleProfessionnelle $famille) : void { $this->metiers->add($metier); return $this; $this->familles->add($famille); } /** * @param Metier $metier * @return Domaine * @return Metier[] */ public function removeMetier($metier) public function getMetiers() : array { $this->metiers->removeElement($metier); return $this; return $this->metiers->toArray(); } /** * @return string */ public function __toString() public function __toString() : string { return $this->getLibelle(); } Loading Loading
documentation/003_DB_EMC2_METIER.sql +11 −3 Original line number Diff line number Diff line Loading @@ -28,9 +28,6 @@ create table metier_domaine constraint domaine_pk primary key, libelle varchar(256) not null, famille_id integer constraint domaine_famille_professionnelle_id_fk references metier_familleprofessionnelle, type_fonction varchar(256), histo_creation timestamp default now() not null, histo_createur_id integer default 0 not null Loading Loading @@ -159,6 +156,17 @@ create table metier_reference create unique index metier_reference_id_uindex on metier_reference (id); create table metier_domaine_famille ( domaine_id integer not null constraint metier_domaine_famille_metier_domaine_id_fk references metier_domaine, famille_id integer not null constraint metier_domaine_famille_metier_familleprofessionnelle_id_fk references metier_familleprofessionnelle, constraint metier_domaine_famille_pk primary key (domaine_id, famille_id) ); ---------------------------------------------------------------------------------------- -- PRIVILEGE --------------------------------------------------------------------------- Loading
documentation/release/3.1.3.md +28 −1 Original line number Diff line number Diff line Loading @@ -6,11 +6,16 @@ * Ajout de gardes pour le filtre des fiches métiers afin d'éviter les avertissements (indicatifs) lorsque aucune valeur de sélectionnée. * Ajout de privilèges pour les niveaux de carrière * Transformation de la relation Domaine <-> Famille en relation "many to many" * [FIX] Correction de routes erronées pour la gestion des niveaux de carrière **Modifications de la base de donnée** ```sql ---------------------------------------------------------------- -- Ajout de privilèges pour la gestion des niveaux de carrières ---------------------------------------------------------------- INSERT INTO unicaen_privilege_categorie (code, libelle, ordre, namespace) VALUES ('niveaucarriere', 'Gestion des niveaux de carrière ', 1000, 'Carriere\Provider\Privilege'); INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) Loading @@ -26,7 +31,29 @@ SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_categorie cp ON cp.CODE = 'niveaucarriere'; -- pensez à attribuer ces nouveaux privilèges --------------------------------------------------------------------- -- Modification de la structure pour la gestion n-n metier/famille -- --------------------------------------------------------------------- create table metier_domaine_famille ( domaine_id integer not null constraint metier_domaine_famille_metier_domaine_id_fk references metier_domaine, famille_id integer not null constraint metier_domaine_famille_metier_familleprofessionnelle_id_fk references metier_familleprofessionnelle, constraint metier_domaine_famille_pk primary key (domaine_id, famille_id) ); insert into metier_domaine_famille (domaine_id, famille_id) with d(domaine_id, famille_id) as ( select id as domaine_id, famille_id from metier_domaine ) SELECT d.domaine_id, d.famille_id FROM d alter table metier_domaine drop column famille_id; ``` **Évolution des bibliothèques**
module/Metier/src/Metier/Controller/DomaineController.php +3 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,9 @@ class DomaineController extends AbstractActionController { $historise = $this->params()->fromQuery('historise'); $domaines = $this->getDomaineService()->getDomaines(); if ($famille_ !== null) $domaines = array_filter($domaines, function (Domaine $m) use ($famille_) { return $m->getFamille() === $famille_; }); if ($famille_ !== null) $domaines = array_filter($domaines, function (Domaine $m) use ($famille_) { return in_array($famille_, $m->getFamilles()); }); if ($type !== null and $type !== ' ') $domaines = array_filter($domaines, function (Domaine $m) use ($type) { return $m->getTypeFonction() === $type; }); if ($historise !== null and $historise !== ' ') $domaines = array_filter($domaines, function (Domaine $m) use ($historise) { if ($historise === '1') return $m->estHistorise(); else return $m->estNonHistorise(); }); Loading
module/Metier/src/Metier/Controller/DomaineControllerFactory.php +5 −1 Original line number Diff line number Diff line Loading @@ -6,14 +6,18 @@ use Metier\Form\Domaine\DomaineForm; use Metier\Service\Domaine\DomaineService; use Interop\Container\ContainerInterface; use Metier\Service\FamilleProfessionnelle\FamilleProfessionnelleService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; class DomaineControllerFactory { /** * @param ContainerInterface $container * @return DomaineController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) public function __invoke(ContainerInterface $container) : DomaineController { /** * @var DomaineService $domaineService Loading
module/Metier/src/Metier/Entity/Db/Domaine.php +26 −67 Original line number Diff line number Diff line Loading @@ -3,122 +3,81 @@ namespace Metier\Entity\Db; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; class Domaine implements HistoriqueAwareInterface { use HistoriqueAwareTrait; /** @var integer */ private $id; /** @var string */ private $libelle; /** @var string */ private $typeFonction; /** @var FamilleProfessionnelle */ private $famille; /** @var ArrayCollection */ private $metiers; private ?int $id = null; private ?string $libelle = null; private ?string $typeFonction = null; private Collection $familles; private Collection $metiers; public function __construct() { $this->metiers = new ArrayCollection(); $this->familles = new ArrayCollection(); } /** * @return int */ public function getId() public function getId() : ?int { return $this->id; } /** * @return string */ public function getLibelle() public function getLibelle() : ?string { return $this->libelle; } /** * @param string $libelle * @return Domaine */ public function setLibelle($libelle) public function setLibelle(?string $libelle) : void { $this->libelle = $libelle; return $this; } /** * @return string */ public function getTypeFonction() public function getTypeFonction() : ?string { return $this->typeFonction; } /** * @param string $typeFonction * @return Domaine */ public function setTypeFonction($typeFonction) public function setTypeFonction(?string $typeFonction) : void { $this->typeFonction = $typeFonction; return $this; } /** * @return FamilleProfessionnelle * @return FamilleProfessionnelle[] */ public function getFamille() public function getFamilles() : array { return $this->famille; $familles = $this->familles->toArray(); usort($familles, function (FamilleProfessionnelle $a, FamilleProfessionnelle $b) { return $a->getLibelle() > $b->getLibelle();}); return $familles; } /** * @param FamilleProfessionnelle $famille * @return Domaine */ public function setFamille($famille) { $this->famille = $famille; return $this; } /** * @return Metier[] */ public function getMetiers() public function clearFamilles() : void { return $this->metiers->toArray(); $this->familles->clear(); } /** * @param Metier $metier * @return Domaine */ public function addMetier($metier) public function addFamille(FamilleProfessionnelle $famille) : void { $this->metiers->add($metier); return $this; $this->familles->add($famille); } /** * @param Metier $metier * @return Domaine * @return Metier[] */ public function removeMetier($metier) public function getMetiers() : array { $this->metiers->removeElement($metier); return $this; return $this->metiers->toArray(); } /** * @return string */ public function __toString() public function __toString() : string { return $this->getLibelle(); } Loading