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>