Loading module/Application/src/Application/Service/Acteur/ActeurService.php +41 −0 Original line number Diff line number Diff line Loading @@ -5,9 +5,13 @@ namespace Application\Service\Acteur; use Application\Entity\Db\Acteur; use Application\Entity\Db\Repository\ActeurRepository; use Application\Service\BaseService; use Application\Service\Individu\IndividuServiceAwareTrait; use Application\Service\Role\RoleServiceAwareTrait; use Application\Service\These\TheseServiceAwareTrait; class ActeurService extends BaseService { /** * @return ActeurRepository */ Loading @@ -18,4 +22,41 @@ class ActeurService extends BaseService return $repo; } public function addActeur41321() { $sql = "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (101, 36608, 41321, 20, 'Professeur des universites', null, 'SYGAL::TEST_001', 1, 1, TO_DATE('2019-01-15 09:49:30', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:50:53', 'YYYY-MM-DD HH24:MI:SS'), null, null, 2); "; $sql .= "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (102, 5741, 41321, 20, 'Professeur des universites', null, 'SYGAL::TEST_002', 1, 1, TO_DATE('2019-01-15 10:53:30', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:53:30', 'YYYY-MM-DD HH24:MI:SS'), null, null, 3); "; $sql .= "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (103, 38221, 41321, 22, 'Maitre de conferences', null, 'SYGAL::TEST_003', 1, 1, TO_DATE('2019-01-15 10:58:39', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:58:39', 'YYYY-MM-DD HH24:MI:SS'), null, null, 2); "; $sql .= "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (104, 38483, 41321, 22, 'Maitre de conferences', null, 'SYGAL::TEST_004', 1, 1, TO_DATE('2019-01-15 10:59:19', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:59:19', 'YYYY-MM-DD HH24:MI:SS'), null, null, 2); "; $plsql = implode(PHP_EOL, array_merge(['BEGIN'], [$sql], ['END;'])); $connection = $this->entityManager->getConnection(); $connection->beginTransaction(); $connection->executeQuery($plsql); $connection->commit(); } public function removeActeur41321() { $sql = "DELETE FROM ACTEUR WHERE ID IN (101,102,103,104);"; $plsql = implode(PHP_EOL, array_merge(['BEGIN'], [$sql], ['END;'])); $connection = $this->entityManager->getConnection(); $connection->beginTransaction(); $connection->executeQuery($plsql); $connection->commit(); } public function restaureValidation() { $sql = "UPDATE VALIDATION SET HISTO_DESTRUCTION = null, HISTO_DESTRUCTEUR_ID = null WHERE TYPE_VALIDATION_ID = 6 AND THESE_ID = 41321; "; $plsql = implode(PHP_EOL, array_merge(['BEGIN'], [$sql], ['END;'])); $connection = $this->entityManager->getConnection(); $connection->beginTransaction(); $connection->executeQuery($plsql); $connection->commit(); } } No newline at end of file module/Soutenance/config/module.config.php +44 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,17 @@ return array( SoutenancePrivileges::SOUTENANCE_PROPOSITION_VALIDER_BDD, ], ], [ 'controller' => SoutenanceController::class, 'action' => [ 'add-acteurs', 'remove-acteurs', 'restore-validation', ], 'roles' => [ "Administrateur technique", ], ], // Présoutenance et pages connexes [ 'controller' => PresoutenanceController::class, Loading Loading @@ -383,6 +394,39 @@ return array( 'router' => [ 'routes' => [ 'add-acteurs' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/add-acteurs', 'defaults' => [ 'controller' => SoutenanceController::class, 'action' => 'add-acteurs', ], ], ], 'remove-acteurs' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/remove-acteurs', 'defaults' => [ 'controller' => SoutenanceController::class, 'action' => 'remove-acteurs', ], ], ], 'restore-validation' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/restore-validation', 'defaults' => [ 'controller' => SoutenanceController::class, 'action' => 'restore-validation', ], ], ], 'soutenance' => [ 'type' => Segment::class, 'may_terminate' => true, Loading module/Soutenance/src/Soutenance/Controller/SoutenanceController.php +20 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ class SoutenanceController extends AbstractActionController { /** @var These[] $theses */ $theses = []; $individu = $this->userContextService->getIdentityIndividu(); $role = $this->userContextService->getSelectedIdentityRole(); if ($individu !== null) { $theses = $this->getTheseService()->getRepository()->fetchThesesByEncadrant($individu); } Loading @@ -116,6 +117,7 @@ class SoutenanceController extends AbstractActionController { 'avis' => $avis, 'theses' => $theses, 'role' => $role, ]); } Loading Loading @@ -449,5 +451,23 @@ class SoutenanceController extends AbstractActionController { ] ); } public function addActeursAction() { $this->getActeurService()->addActeur41321(); $this->redirect()->toRoute('soutenance', [], [], true); } public function removeActeursAction() { $this->getActeurService()->removeActeur41321(); $this->redirect()->toRoute('soutenance', [], [], true); } public function restoreValidationAction() { $this->getActeurService()->restaureValidation(); $this->redirect()->toRoute('soutenance', [], [], true); } } module/Soutenance/view/soutenance/soutenance/index.phtml +31 −0 Original line number Diff line number Diff line Loading @@ -7,10 +7,12 @@ * @var Validation[] $validations * @var string[] $avis * @var These[] $theses * @var Role $role */ use Application\Entity\Db\Acteur; use Application\Entity\Db\Individu; use Application\Entity\Db\Role; use Application\Entity\Db\These; use Application\Entity\Db\Validation; use Soutenance\Entity\Membre; Loading Loading @@ -212,6 +214,35 @@ $canVisualiser = true; return '<span class="badge default">Aucune</span>'; } ?> <?php if($role->getId() === 1): ?> <br/> <br/> <div> <a href="<?php echo $this->url('restore-validation'); ?>" class="btn btn-danger"> <span class="glyphicon glyphicon-leaf"></span> <b> Restaurer les validations des acteurs directs </b> </a> <br/> <br/> <a href="<?php echo $this->url('add-acteurs'); ?>" class="btn btn-danger"> <span class="glyphicon glyphicon-pencil"></span> <b>Ajout des acteurs <i>à la Apogée</i></b> </a> <a href="<?php echo $this->url('remove-acteurs'); ?>" class="btn btn-danger"> <span class="glyphicon glyphicon-erase"></span> <b>Retrait des acteurs <i>à la Apogée</i></b> </a> </div> <?php endif; ?> <style> .action { width: 20em; Loading Loading
module/Application/src/Application/Service/Acteur/ActeurService.php +41 −0 Original line number Diff line number Diff line Loading @@ -5,9 +5,13 @@ namespace Application\Service\Acteur; use Application\Entity\Db\Acteur; use Application\Entity\Db\Repository\ActeurRepository; use Application\Service\BaseService; use Application\Service\Individu\IndividuServiceAwareTrait; use Application\Service\Role\RoleServiceAwareTrait; use Application\Service\These\TheseServiceAwareTrait; class ActeurService extends BaseService { /** * @return ActeurRepository */ Loading @@ -18,4 +22,41 @@ class ActeurService extends BaseService return $repo; } public function addActeur41321() { $sql = "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (101, 36608, 41321, 20, 'Professeur des universites', null, 'SYGAL::TEST_001', 1, 1, TO_DATE('2019-01-15 09:49:30', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:50:53', 'YYYY-MM-DD HH24:MI:SS'), null, null, 2); "; $sql .= "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (102, 5741, 41321, 20, 'Professeur des universites', null, 'SYGAL::TEST_002', 1, 1, TO_DATE('2019-01-15 10:53:30', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:53:30', 'YYYY-MM-DD HH24:MI:SS'), null, null, 3); "; $sql .= "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (103, 38221, 41321, 22, 'Maitre de conferences', null, 'SYGAL::TEST_003', 1, 1, TO_DATE('2019-01-15 10:58:39', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:58:39', 'YYYY-MM-DD HH24:MI:SS'), null, null, 2); "; $sql .= "INSERT INTO ACTEUR (ID, INDIVIDU_ID, THESE_ID, ROLE_ID, QUALITE, LIB_ROLE_COMPL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, ACTEUR_ETABLISSEMENT_ID) VALUES (104, 38483, 41321, 22, 'Maitre de conferences', null, 'SYGAL::TEST_004', 1, 1, TO_DATE('2019-01-15 10:59:19', 'YYYY-MM-DD HH24:MI:SS'), 1, TO_DATE('2019-01-15 10:59:19', 'YYYY-MM-DD HH24:MI:SS'), null, null, 2); "; $plsql = implode(PHP_EOL, array_merge(['BEGIN'], [$sql], ['END;'])); $connection = $this->entityManager->getConnection(); $connection->beginTransaction(); $connection->executeQuery($plsql); $connection->commit(); } public function removeActeur41321() { $sql = "DELETE FROM ACTEUR WHERE ID IN (101,102,103,104);"; $plsql = implode(PHP_EOL, array_merge(['BEGIN'], [$sql], ['END;'])); $connection = $this->entityManager->getConnection(); $connection->beginTransaction(); $connection->executeQuery($plsql); $connection->commit(); } public function restaureValidation() { $sql = "UPDATE VALIDATION SET HISTO_DESTRUCTION = null, HISTO_DESTRUCTEUR_ID = null WHERE TYPE_VALIDATION_ID = 6 AND THESE_ID = 41321; "; $plsql = implode(PHP_EOL, array_merge(['BEGIN'], [$sql], ['END;'])); $connection = $this->entityManager->getConnection(); $connection->beginTransaction(); $connection->executeQuery($plsql); $connection->commit(); } } No newline at end of file
module/Soutenance/config/module.config.php +44 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,17 @@ return array( SoutenancePrivileges::SOUTENANCE_PROPOSITION_VALIDER_BDD, ], ], [ 'controller' => SoutenanceController::class, 'action' => [ 'add-acteurs', 'remove-acteurs', 'restore-validation', ], 'roles' => [ "Administrateur technique", ], ], // Présoutenance et pages connexes [ 'controller' => PresoutenanceController::class, Loading Loading @@ -383,6 +394,39 @@ return array( 'router' => [ 'routes' => [ 'add-acteurs' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/add-acteurs', 'defaults' => [ 'controller' => SoutenanceController::class, 'action' => 'add-acteurs', ], ], ], 'remove-acteurs' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/remove-acteurs', 'defaults' => [ 'controller' => SoutenanceController::class, 'action' => 'remove-acteurs', ], ], ], 'restore-validation' => [ 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/restore-validation', 'defaults' => [ 'controller' => SoutenanceController::class, 'action' => 'restore-validation', ], ], ], 'soutenance' => [ 'type' => Segment::class, 'may_terminate' => true, Loading
module/Soutenance/src/Soutenance/Controller/SoutenanceController.php +20 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ class SoutenanceController extends AbstractActionController { /** @var These[] $theses */ $theses = []; $individu = $this->userContextService->getIdentityIndividu(); $role = $this->userContextService->getSelectedIdentityRole(); if ($individu !== null) { $theses = $this->getTheseService()->getRepository()->fetchThesesByEncadrant($individu); } Loading @@ -116,6 +117,7 @@ class SoutenanceController extends AbstractActionController { 'avis' => $avis, 'theses' => $theses, 'role' => $role, ]); } Loading Loading @@ -449,5 +451,23 @@ class SoutenanceController extends AbstractActionController { ] ); } public function addActeursAction() { $this->getActeurService()->addActeur41321(); $this->redirect()->toRoute('soutenance', [], [], true); } public function removeActeursAction() { $this->getActeurService()->removeActeur41321(); $this->redirect()->toRoute('soutenance', [], [], true); } public function restoreValidationAction() { $this->getActeurService()->restaureValidation(); $this->redirect()->toRoute('soutenance', [], [], true); } }
module/Soutenance/view/soutenance/soutenance/index.phtml +31 −0 Original line number Diff line number Diff line Loading @@ -7,10 +7,12 @@ * @var Validation[] $validations * @var string[] $avis * @var These[] $theses * @var Role $role */ use Application\Entity\Db\Acteur; use Application\Entity\Db\Individu; use Application\Entity\Db\Role; use Application\Entity\Db\These; use Application\Entity\Db\Validation; use Soutenance\Entity\Membre; Loading Loading @@ -212,6 +214,35 @@ $canVisualiser = true; return '<span class="badge default">Aucune</span>'; } ?> <?php if($role->getId() === 1): ?> <br/> <br/> <div> <a href="<?php echo $this->url('restore-validation'); ?>" class="btn btn-danger"> <span class="glyphicon glyphicon-leaf"></span> <b> Restaurer les validations des acteurs directs </b> </a> <br/> <br/> <a href="<?php echo $this->url('add-acteurs'); ?>" class="btn btn-danger"> <span class="glyphicon glyphicon-pencil"></span> <b>Ajout des acteurs <i>à la Apogée</i></b> </a> <a href="<?php echo $this->url('remove-acteurs'); ?>" class="btn btn-danger"> <span class="glyphicon glyphicon-erase"></span> <b>Retrait des acteurs <i>à la Apogée</i></b> </a> </div> <?php endif; ?> <style> .action { width: 20em; Loading