Commit 3d154f06 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Variables d'établissement : améliorations de la création/modif de variable...

Variables d'établissement : améliorations de la création/modif de variable (notamment choix du 'code' parmi une liste fermée)
parent ddc797fb
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ Journal des modifications
- Module Soutenances : Affichage de l'historique des actions effectuées (horodatages) en dessous de chacune d'elles 
- Amélioration de la page consacrée aux profils (filtrage, explications, esthétique) et harmonisation de la page Rôles et privilèges.
- Création/modif d'établissement d'inscription, d'ED/UR : obligation de fournir un logo ; harmonisation des formulaires de création/modif d'ED/UR.
- Variables d'établissement : améliorations de la création/modif de variable (notamment choix du 'code' parmi une liste fermée).
- [FIX] Notifications de demande d'engagement d'impartialité et d'avis de soutenance : utilisation en priorité du mail de l'acteur.
- [FIX] Impossible d'accèder aux pages de consultation/modification d'ED ou d'UR.
- [FIX] Coquille dans le procès verbal de soutenance (PDF).
+8 −0
Changes for doc/release-notes/9.0.0/01_divers.sql: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,14 @@
-- 9.0.0
--

--
-- Suppression de variables abandonnées.
--

delete from variable where code in ('EMAIL_BDD', 'EMAIL_BU', 'TRIBUNAL_COMPETENT');
delete from variable where code is null;


--
-- Suppression vue abandonnée.
--
+7 −0
Changes for module/Application/src/Application/Entity/Db/Variable.php: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -20,6 +20,13 @@ class Variable implements HistoriqueAwareInterface
    const CODE_ETB_LIB                       = 'ETB_LIB';           // Ex: "Université de Caen Normandie"
    const CODE_ETB_LIB_TIT_RESP              = 'ETB_LIB_TIT_RESP';  // Ex: "Le Président"
    const CODE_ETB_LIB_NOM_RESP              = 'ETB_LIB_NOM_RESP';  // Ex: "Pierre Denise"
    const CODES = [
        self::CODE_EMAIL_ASSISTANCE,
        self::CODE_ETB_ART_ETB_LIB,
        self::CODE_ETB_LIB,
        self::CODE_ETB_LIB_TIT_RESP,
        self::CODE_ETB_LIB_NOM_RESP,
    ];

    /**
     * @var string
+19 −31
Changes for module/Application/src/Application/Service/Variable/VariableService.php: 19 added lines, 31 removed lines.
Original line number Diff line number Diff line
@@ -6,7 +6,8 @@ use Application\Entity\Db\Repository\VariableRepository;
use Application\Entity\Db\Variable;
use Application\Service\BaseService;
use Application\Service\Source\SourceServiceAwareTrait;
use Doctrine\ORM\OptimisticLockException;
use Doctrine\ORM\Exception\ORMException;
use Structure\Entity\Db\Etablissement;
use UnicaenApp\Exception\RuntimeException;

/**
@@ -15,10 +16,8 @@ use UnicaenApp\Exception\RuntimeException;
class VariableService extends BaseService
{
    use SourceServiceAwareTrait;
    /**
     * @return VariableRepository
     */
    public function getRepository()

    public function getRepository(): VariableRepository
    {
        /** @var VariableRepository $repo */
        $repo = $this->entityManager->getRepository(Variable::class);
@@ -26,58 +25,47 @@ class VariableService extends BaseService
        return $repo;
    }

    /**
     * @param Variable $profil
     * @return  Variable
     */
    public function create($variable)
    public function create(Variable $variable): Variable
    {
        $this->getEntityManager()->persist($variable);
        try {
            $this->getEntityManager()->persist($variable);
            $this->getEntityManager()->flush($variable);
        } catch (OptimisticLockException $e) {
            throw new RuntimeException("Un problème s'est produit lors de la création d'une Variable", $e);
        } catch (ORMException $e) {
            throw new RuntimeException("Un problème s'est produit lors de la création de la Variable", $e);
        }

        return $variable;
    }

    /**
     * @param Variable $variable
     * @return  Variable
     */
    public function update($variable)
    public function update(Variable $variable): Variable
    {
        try {
            $this->getEntityManager()->flush($variable);
        } catch (OptimisticLockException $e) {
            throw new RuntimeException("Un problème s'est produit lors de la mise à jour d'une Variable", $e);
        } catch (ORMException $e) {
            throw new RuntimeException("Un problème s'est produit lors de la mise à jour de la Variable", $e);
        }

        return $variable;
    }

    /**
     * @param Variable $variable
     */
    public function delete($variable)
    public function delete(Variable $variable): void
    {
        $this->getEntityManager()->remove($variable);
        try {
            $this->getEntityManager()->remove($variable);
            $this->getEntityManager()->flush();
        } catch (OptimisticLockException $e) {
            throw new RuntimeException("Un problème s'est produit lors de la suppression d'une Variable", $e);
        } catch (ORMException $e) {
            throw new RuntimeException("Un problème s'est produit lors de la suppression de la Variable", null, $e);
        }
    }

    /**
     * @return Variable
     */
    public function newVariable(): Variable
    public function newVariable(Etablissement $etablissement): Variable
    {
        $variable  = new Variable();
        $variable->setDateDebutValidite(date_create());
        $variable->setDateFinValidite(date_create()->modify('+10 years'));
        $variable->setSource($this->sourceService->fetchApplicationSource());
        $variable->setSourceCode($this->sourceService->genereateSourceCode());
        $variable->setEtablissement($etablissement);

        return $variable;
    }
+3 −0
Changes for module/Structure/config/others/variable.config.php: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@ use Laminas\Router\Http\Segment;
use Structure\Controller\Factory\VariableControllerFactory;
use Structure\Controller\VariableController;
use Structure\Form\Factory\VariableFormFactory;
use Structure\Form\Factory\VariableHydratorFactory;
use Structure\Form\Hydrator\VariableHydrator;
use Structure\Form\VariableForm;
use UnicaenAuth\Guard\PrivilegeController;

@@ -66,6 +68,7 @@ return [
    ],
    'hydrators' => [
        'factories' => [
            VariableHydrator::class => VariableHydratorFactory::class,
        ]
    ],
    'service_manager' => [
Loading