From c865956523d7448aa867b965bf19aa9dbaee7585 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Metivier <jean-philippe.metivier@unicaen.fr> Date: Fri, 1 Sep 2023 14:20:48 +0200 Subject: [PATCH] Valeur => Refus (Boolean) --- documentation/001_table.sql | 2 +- .../Entity/Db/ValidationInstance.php | 38 ++++--------------- .../ValidationInstanceHydrator.php | 5 ++- .../ValidationInstanceService.php | 8 ++-- .../Helper/partial/validation-afficher.phtml | 4 +- .../Helper/partial/validation-badge.phtml | 2 +- .../validation-instance/index.phtml | 2 +- 7 files changed, 19 insertions(+), 42 deletions(-) diff --git a/documentation/001_table.sql b/documentation/001_table.sql index d6c63fd..25a8508 100755 --- a/documentation/001_table.sql +++ b/documentation/001_table.sql @@ -19,7 +19,7 @@ create table unicaen_validation_instance constraint unicaen_validation_instance_unicaen_validation_type_id_fk references unicaen_validation_type on delete cascade, - valeur text, + refus boolean not null default false, justification text, histo_creation timestamp not null, histo_createur_id integer not null diff --git a/src/UnicaenValidation/Entity/Db/ValidationInstance.php b/src/UnicaenValidation/Entity/Db/ValidationInstance.php index 9ce80a6..c8c6bbd 100755 --- a/src/UnicaenValidation/Entity/Db/ValidationInstance.php +++ b/src/UnicaenValidation/Entity/Db/ValidationInstance.php @@ -10,64 +10,40 @@ class ValidationInstance implements HistoriqueAwareInterface { private int $id; private ?ValidationType $type = null; - private ?string $valeur = null; + private bool $refus = false; private ?string $justification = null; - /** - * @return int - */ public function getId() : int { return $this->id; } - /** - * @return ValidationType|null - */ public function getType() : ?ValidationType { return $this->type; } - /** - * @param ValidationType $type - * @return ValidationInstance - */ public function setType(ValidationType $type) : ValidationInstance { $this->type = $type; return $this; } - /** - * @return string|null - */ - public function getValeur() : ?string + public function isRefus(): bool { - return $this->valeur; + return $this->refus; } - /** - * @param string|null $valeur - * @return ValidationInstance - */ - public function setValeur(?string $valeur) : ValidationInstance + public function setRefus(bool $refus): void { - $this->valeur = $valeur; - return $this; + $this->refus = $refus; } - /** - * @return string|null - */ public function getJustification(): ?string { return $this->justification; } - /** - * @param string|null $justification - */ public function setJustification(?string $justification): void { $this->justification = $justification; @@ -96,8 +72,8 @@ class ValidationInstance implements HistoriqueAwareInterface { public function toStringValeur() : string { - if ($this->getValeur() === null) return "Aucune valeur associée à la validation"; - return $this->getValeur(); + if ($this->getJustification() === null) return "Aucune valeur associée à la validation"; + return $this->getJustification(); } public function toStringValidateur() : string diff --git a/src/UnicaenValidation/Form/ValidationInstance/ValidationInstanceHydrator.php b/src/UnicaenValidation/Form/ValidationInstance/ValidationInstanceHydrator.php index a901991..6ab5a4a 100644 --- a/src/UnicaenValidation/Form/ValidationInstance/ValidationInstanceHydrator.php +++ b/src/UnicaenValidation/Form/ValidationInstance/ValidationInstanceHydrator.php @@ -17,7 +17,7 @@ class ValidationInstanceHydrator implements HydratorInterface { { $data = [ 'type' => ($object AND $object->getType())?$object->getType()->getId():null, - 'valeur' => $object?$object->getValeur():null, + 'valeur' => $object?$object->getJustification():null, ]; return $data; } @@ -31,7 +31,8 @@ class ValidationInstanceHydrator implements HydratorInterface { { $type = $this->getValidationTypeService()->getValidationType($data['type']); $object->setType($type); - $object->setValeur($data['valeur'] ?? null); + $object->setJustification($data['valeur'] ?? null); + $object->setRefus($data['valeur'] === null || $data['valeur'] === ""); return $object; } } \ No newline at end of file diff --git a/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php b/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php index d2fe5ef..3c089b7 100644 --- a/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php +++ b/src/UnicaenValidation/Service/ValidationInstance/ValidationInstanceService.php @@ -213,20 +213,20 @@ class ValidationInstanceService { * @param string|null $justification * @return ValidationInstance */ - public function createWithCode(string $code, ?string $valeur = null, ?string $justification = null) : ValidationInstance + public function createWithCode(string $code, bool $refus = false, ?string $justification = null) : ValidationInstance { $type = $this->getValidationTypeService()->getValidationTypeByCode($code); $instance = new ValidationInstance(); $instance->setType($type); - $instance->setValeur($valeur); + $instance->setRefus($refus); $instance->setJustification($justification); $this->create($instance); return $instance; } - public function setValidationActive(HasValidationsInterface $element, string $code, ?string $value = null) : HasValidationsInterface + public function setValidationActive(HasValidationsInterface $element, string $code, ?string $justification = null) : HasValidationsInterface { //historisation de l'état actif actuel (s'il existe) $validationActive = $element->getValidationActiveByTypeCode($code); @@ -235,7 +235,7 @@ class ValidationInstanceService { } //creation de la nouvelle instance - $validation = $this->createWithCode($code, $value); + $validation = $this->createWithCode($code, $justification !== null, $justification); //ajout à l'element et persist $element->addValidation($validation); diff --git a/src/UnicaenValidation/View/Helper/partial/validation-afficher.phtml b/src/UnicaenValidation/View/Helper/partial/validation-afficher.phtml index fc3f456..a9af9b1 100644 --- a/src/UnicaenValidation/View/Helper/partial/validation-afficher.phtml +++ b/src/UnicaenValidation/View/Helper/partial/validation-afficher.phtml @@ -11,8 +11,8 @@ $type = $instance->getType(); ?> -<div class="validation validation-affichage <?php echo ($instance->getValeur() === null)?"validation-valider":"validation-refuser" ?>"> - <?php if ($instance->getValeur() !== null) : ?> +<div class="validation validation-affichage <?php echo ($instance->isRefus())?"validation-refuser":"validation-valider" ?>"> + <?php if ($instance->isRefus()) : ?> Refusé <?php else : ?> Validé diff --git a/src/UnicaenValidation/View/Helper/partial/validation-badge.phtml b/src/UnicaenValidation/View/Helper/partial/validation-badge.phtml index dcb6d13..e6835f9 100644 --- a/src/UnicaenValidation/View/Helper/partial/validation-badge.phtml +++ b/src/UnicaenValidation/View/Helper/partial/validation-badge.phtml @@ -12,7 +12,7 @@ $texte = (isset($options['texte']) AND $options['texte'] === true); ?> <?php if ($validation !== null) : ?> - <?php if ($validation->getValeur() === null) : ?> + <?php if (!$validation->isRefus()) : ?> <span class="icon ok" style="color: darkgreen;" data-bs-toggle="tooltip" data-bs-html="true" title="Validé le <span class='highlight date'> <?php echo $validation->getHistoCreation()->format('d/m/Y'); ?> </span> par <span class='highlight agent'> <?php echo $validation->getHistoCreateur()->getDisplayName(); ?>"> diff --git a/view/unicaen-validation/validation-instance/index.phtml b/view/unicaen-validation/validation-instance/index.phtml index 7cc3cf9..65e91b6 100644 --- a/view/unicaen-validation/validation-instance/index.phtml +++ b/view/unicaen-validation/validation-instance/index.phtml @@ -70,7 +70,7 @@ $canAfficherType = $this->isAllowed(ValidationTypePrivileges::getResourceId(Vali <?php foreach ($instances as $instance) : ?> <tr class="<?php if ($instance->estHistorise()) echo "historise"; ?>"> <td> <?php echo $instance->getType()->getCode(); ?> </td> - <td> <?php echo $instance->getValeur(); ?> </td> + <td> <?php echo $instance->isRefus()?"Refus":"Validé"; ?> </td> <td> <?php echo $instance->getHistoModification()->format('d/m/Y à H:i:s'); ?> </td> <td> <?php echo $instance->getHistoModificateur()->getDisplayName(); ?> </td> <td class="action"> -- GitLab