diff --git a/documentation/001_table.sql b/documentation/001_table.sql index d6c63fd961aaaaade562a4b3a2cb715f0f0f72fc..25a8508af41e16febeb407378d6ff20abf192d51 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 9ce80a6fb7f83dcb159578a2346cc736da687d59..c8c6bbd2f8b02d25f8930d70ed053f993f8e8f59 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 a90199197202daaac8de74de09e3e70c9f2417a8..6ab5a4abc6203efcd7d75245febc4b26cea8b131 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 d2fe5efecff3e6bf9449996d503668880c6f0cbb..3c089b791cee4d0df083f68e9566a4cd20853ded 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 fc3f456d7a98a444598519ae3d0ff244ccf163ec..a9af9b13df2ccf63bf9e637549ad24a49cd2b31f 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 dcb6d132358652fdb29c8993bb254c57287f0b7f..e6835f9b88d059a4538d4389baa7ed8e330f85e8 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 7cc3cf93f59830b8112b299ed052954791c3d4dc..65e91b6bda6c9912dbb81f78c2a6315fcda46dc6 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">