Loading data/privileges.php +1 −0 Changes for data/privileges.php: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ return [ 'visualisation' => 'Visualisation', 'visualisation-realise' => 'Visualisation des heures réalisées', 'edition' => 'Edition', 'edition-avancee' => 'Edition avancée', 'validation' => 'Validation', 'devalidation' => 'Dévalidation', 'autovalidation' => 'Autovalidation', Loading module/Application/src/Provider/Privilege/Privileges.php +3 −1 Changes for module/Application/src/Provider/Privilege/Privileges.php: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -9,7 +9,8 @@ namespace Application\Provider\Privilege; * * @author UnicaenCode */ class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges { class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges { const AGREMENT_CONSEIL_ACADEMIQUE_EDITION = 'agrement-conseil-academique-edition'; const AGREMENT_CONSEIL_ACADEMIQUE_SUPPRESSION = 'agrement-conseil-academique-suppression'; Loading Loading @@ -181,6 +182,7 @@ class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges { const MISSION_DEVALIDATION = 'mission-devalidation'; const MISSION_DEVALIDATION_REALISE = 'mission-devalidation-realise'; const MISSION_EDITION = 'mission-edition'; const MISSION_EDITION_AVANCEE = 'mission-edition-avancee'; const MISSION_EDITION_CENTRE_COUT_TYPE = 'mission-edition-centre-cout-type'; const MISSION_EDITION_REALISE = 'mission-edition-realise'; const MISSION_EDITION_TYPE = 'mission-edition-type'; Loading module/Mission/src/Controller/SaisieController.php +21 −0 Changes for module/Mission/src/Controller/SaisieController.php: 21 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ use Intervenant\Entity\Db\Intervenant; use Laminas\View\Model\JsonModel; use Laminas\View\Model\ViewModel; use Mission\Entity\Db\Mission; use Mission\Entity\Db\TypeMission; use Mission\Entity\Db\VolumeHoraireMission; use Mission\Form\MissionFormAwareTrait; use Mission\Form\MissionSuiviFormAwareTrait; Loading Loading @@ -145,10 +146,30 @@ class SaisieController extends AbstractController $form = $this->getFormMission(); $canEditAvancee = $this->isAllowed(Privileges::getResourceId(Privileges::MISSION_EDITION_AVANCEE)); if ($mission->isValide()){ $form->editValide(); } if (!$canEditAvancee) { $form->editSimple(); // Lors d'un ajout, les champs désactivés ne sont pas transmis par le navigateur. // On impose donc côté serveur les taux définis par le type de mission sélectionné. if ($this->getRequest()->isPost() && !$mission->getId()) { $typeMissionId = $this->getRequest()->getPost('typeMission'); $typeMission = $typeMissionId ? $this->em()->find(TypeMission::class, $typeMissionId) : null; if ($typeMission) { $mission->setTauxRemu($typeMission->getTauxRemu()); } } } if ($this->getServiceContext()->getStructure()) { if (!$mission->getStructure()){ $mission->setStructure($this->getServiceContext()->getStructure()); Loading module/Mission/src/Form/MissionForm.php +10 −0 Changes for module/Mission/src/Form/MissionForm.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -151,6 +151,16 @@ class MissionForm extends AbstractForm return $this; } public function editSimple(): self { $elementsAvances = ['tauxRemu', 'tauxRemuMajore']; // On met en lecture seule la gestion des taux si on a pas le privilege d'édition avancee $this->readOnly(true, $elementsAvances); return $this; } public function isValide(): bool Loading Loading
data/privileges.php +1 −0 Changes for data/privileges.php: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ return [ 'visualisation' => 'Visualisation', 'visualisation-realise' => 'Visualisation des heures réalisées', 'edition' => 'Edition', 'edition-avancee' => 'Edition avancée', 'validation' => 'Validation', 'devalidation' => 'Dévalidation', 'autovalidation' => 'Autovalidation', Loading
module/Application/src/Provider/Privilege/Privileges.php +3 −1 Changes for module/Application/src/Provider/Privilege/Privileges.php: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -9,7 +9,8 @@ namespace Application\Provider\Privilege; * * @author UnicaenCode */ class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges { class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges { const AGREMENT_CONSEIL_ACADEMIQUE_EDITION = 'agrement-conseil-academique-edition'; const AGREMENT_CONSEIL_ACADEMIQUE_SUPPRESSION = 'agrement-conseil-academique-suppression'; Loading Loading @@ -181,6 +182,7 @@ class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges { const MISSION_DEVALIDATION = 'mission-devalidation'; const MISSION_DEVALIDATION_REALISE = 'mission-devalidation-realise'; const MISSION_EDITION = 'mission-edition'; const MISSION_EDITION_AVANCEE = 'mission-edition-avancee'; const MISSION_EDITION_CENTRE_COUT_TYPE = 'mission-edition-centre-cout-type'; const MISSION_EDITION_REALISE = 'mission-edition-realise'; const MISSION_EDITION_TYPE = 'mission-edition-type'; Loading
module/Mission/src/Controller/SaisieController.php +21 −0 Changes for module/Mission/src/Controller/SaisieController.php: 21 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ use Intervenant\Entity\Db\Intervenant; use Laminas\View\Model\JsonModel; use Laminas\View\Model\ViewModel; use Mission\Entity\Db\Mission; use Mission\Entity\Db\TypeMission; use Mission\Entity\Db\VolumeHoraireMission; use Mission\Form\MissionFormAwareTrait; use Mission\Form\MissionSuiviFormAwareTrait; Loading Loading @@ -145,10 +146,30 @@ class SaisieController extends AbstractController $form = $this->getFormMission(); $canEditAvancee = $this->isAllowed(Privileges::getResourceId(Privileges::MISSION_EDITION_AVANCEE)); if ($mission->isValide()){ $form->editValide(); } if (!$canEditAvancee) { $form->editSimple(); // Lors d'un ajout, les champs désactivés ne sont pas transmis par le navigateur. // On impose donc côté serveur les taux définis par le type de mission sélectionné. if ($this->getRequest()->isPost() && !$mission->getId()) { $typeMissionId = $this->getRequest()->getPost('typeMission'); $typeMission = $typeMissionId ? $this->em()->find(TypeMission::class, $typeMissionId) : null; if ($typeMission) { $mission->setTauxRemu($typeMission->getTauxRemu()); } } } if ($this->getServiceContext()->getStructure()) { if (!$mission->getStructure()){ $mission->setStructure($this->getServiceContext()->getStructure()); Loading
module/Mission/src/Form/MissionForm.php +10 −0 Changes for module/Mission/src/Form/MissionForm.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -151,6 +151,16 @@ class MissionForm extends AbstractForm return $this; } public function editSimple(): self { $elementsAvances = ['tauxRemu', 'tauxRemuMajore']; // On met en lecture seule la gestion des taux si on a pas le privilege d'édition avancee $this->readOnly(true, $elementsAvances); return $this; } public function isValide(): bool Loading