diff --git a/CHANGELOG.md b/CHANGELOG.md index 850b6c7045dfd50e7a4e8625fc0efe044fd7ab3b..87d1979c881cec9fb874d95d0627f6a05cffec7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Journal des modifications - [FIX] Création/modification d'individu : erreur 'Adresse existante (Utilisateur)'. - [FIX] Masquage du message abscons 'Cette personne ne pourra pas utiliser l'application...' sur la fiche Thèse. - [FIX] Page Assistance : ne plante plus et affiche toutes les adresses possibles en cas d'adresse établissement introuvable. +- [FIX] Enregistrement de la date de fin de confidentialité dans la Diffusion. 5.2.4 ----- diff --git a/module/These/src/These/Form/Diffusion/DiffusionHydrator.php b/module/These/src/These/Form/Diffusion/DiffusionHydrator.php index b7fca8f07fa5098ea92a92336092353d76017090..855f19e34c333de211624fac1640b1d535703d6b 100644 --- a/module/These/src/These/Form/Diffusion/DiffusionHydrator.php +++ b/module/These/src/These/Form/Diffusion/DiffusionHydrator.php @@ -2,8 +2,8 @@ namespace These\Form\Diffusion; -use These\Entity\Db\Diffusion; use Doctrine\Laminas\Hydrator\DoctrineObject; +use These\Entity\Db\Diffusion; use UnicaenApp\Service\EntityManagerAwareInterface; use UnicaenApp\Service\EntityManagerAwareTrait; @@ -31,14 +31,17 @@ class DiffusionHydrator extends DoctrineObject implements EntityManagerAwareInte * Hydrate $object with the provided $data. * * @param array $data - * @param Diffusion $attestation + * @param Diffusion $object * @return Diffusion */ - public function hydrate(array $data, $attestation) + public function hydrate(array $data, $object): Diffusion { - // le champ de saisie de la confidentialité est grisé pour l'instant + // NB : le champ de saisie de la confidentialité est grisé pour l'instant if (!isset($data['confidentielle'])) { - $data['confidentielle'] = $attestation->getThese()->getDateFinConfidentialite() !== null ? Diffusion::CONFIDENTIELLE_OUI : Diffusion::CONFIDENTIELLE_NON; + $data['confidentielle'] = $object->getThese()->getDateFinConfidentialite() !== null ? Diffusion::CONFIDENTIELLE_OUI : Diffusion::CONFIDENTIELLE_NON; + } + if (!isset($data['dateFinConfidentialite'])) { + $data['dateFinConfidentialite'] = $object->getThese()->getDateFinConfidentialite(); } if (!isset($data['orcid'])) { @@ -49,7 +52,7 @@ class DiffusionHydrator extends DoctrineObject implements EntityManagerAwareInte } /** @var Diffusion $diff */ - $diff = parent::hydrate($data, $attestation); + $diff = parent::hydrate($data, $object); switch ($diff->getAutorisMel()) { case Diffusion::AUTORISATION_OUI_IMMEDIAT: diff --git a/module/These/view/these/these/partial/diffusion.phtml b/module/These/view/these/these/partial/diffusion.phtml index 0fc39be4a69f7cca6a8f5f640b19783f938473c7..ad446aaaa91ce64c805ceb9f0247c7f634c8bba3 100644 --- a/module/These/view/these/these/partial/diffusion.phtml +++ b/module/These/view/these/these/partial/diffusion.phtml @@ -10,16 +10,16 @@ use These\Entity\Db\Diffusion; use These\Entity\Db\These; -use These\Form\Diffusion\DiffusionTheseForm; use Application\Service\Message\DiffusionMessages; ?> -<?php if ($diffusion->getConfidentielle()): ?> +<?php if ($diffusion->getConfidentielle() || $diffusion->getThese()->estConfidentielle()): ?> <div class="row"> <div class="col-6"> <div class="alert alert-md alert-danger"> - <?php echo sprintf("La thèse est confidentielle jusqu'au %s.", $diffusion->getDateFinConfidentialiteToString()) ?> + <?php echo sprintf("La thèse est confidentielle jusqu'au %s.", + $diffusion->getDateFinConfidentialiteToString() ?: $diffusion->getThese()->getDateFinConfidentialiteToString()) ?> </div> </div> </div>