From 20db851a7eb50fb95174d75e468fa3c1585085a1 Mon Sep 17 00:00:00 2001 From: pfleu <fleutotp@gmail.com> Date: Mon, 12 Jun 2023 18:11:21 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20d'un=20label=20:=20on=20ne=20filtre=20p?= =?UTF-8?q?as=20en=20fonction=20de=20la=20visibilit=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Manager/LabelManager.php | 42 +++++++++++++++----------- templates/entry/_chooseLabel.html.twig | 2 +- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/Manager/LabelManager.php b/src/Manager/LabelManager.php index 9d139ce..e6dd876 100644 --- a/src/Manager/LabelManager.php +++ b/src/Manager/LabelManager.php @@ -42,23 +42,25 @@ class LabelManager foreach ($labelDeleted->getHeadwords() as $headword) { $headword->addLabel($labelMerged); } - // pour chaque invisibilité liée à labelDeleted, on regarde si on a une invisibilité pour le même lexique dans labelMerged - // Si ce n'est pas le cas, on en ajoute une - foreach ($labelDeleted->getLabelInvisibilities() as $labelInvisibilityDeleted) { - $labelMergedHasSameLexiconVisibility = false; - foreach ($labelMerged->getLabelInvisibilities() as $labelInvisibilityMerged) { - if ($labelInvisibilityDeleted->getLexicon() == $labelInvisibilityMerged->getLexicon()) { - $labelMergedHasSameLexiconVisibility = true; break; - } - } - if (false === $labelMergedHasSameLexiconVisibility) { - $labelInvisibility = new LabelInvisibility(); - $labelInvisibility->setLexicon($labelInvisibilityDeleted->getLexicon()); - $labelInvisibility->setLabel($labelMerged); - $labelInvisibility->setUser($labelInvisibilityDeleted->getUser()); - $this->doctrine->getManager()->persist($labelInvisibility); - } - } + // On ne reporte pas les invisibilités du label supprimé dans le label fusionné + +// // pour chaque invisibilité liée à labelDeleted, on regarde si on a une invisibilité pour le même lexique dans labelMerged +// // Si ce n'est pas le cas, on en ajoute une +// foreach ($labelDeleted->getLabelInvisibilities() as $labelInvisibilityDeleted) { +// $labelMergedHasSameLexiconVisibility = false; +// foreach ($labelMerged->getLabelInvisibilities() as $labelInvisibilityMerged) { +// if ($labelInvisibilityDeleted->getLexicon() == $labelInvisibilityMerged->getLexicon()) { +// $labelMergedHasSameLexiconVisibility = true; break; +// } +// } +// if (false === $labelMergedHasSameLexiconVisibility) { +// $labelInvisibility = new LabelInvisibility(); +// $labelInvisibility->setLexicon($labelInvisibilityDeleted->getLexicon()); +// $labelInvisibility->setLabel($labelMerged); +// $labelInvisibility->setUser($labelInvisibilityDeleted->getUser()); +// $this->doctrine->getManager()->persist($labelInvisibility); +// } +// } $this->doctrine->getManager()->remove($labelDeleted); } @@ -118,6 +120,12 @@ class LabelManager return array_intersect($entry->getHeadword()->getLabelsForCategory($category), $labelsVisiblesInLexicon); } + // Retourne les labels visibles pour un user, sans tenir compte des invisibilités (pour une catégorie si renseignée) + public function getVisibleLabelsForUser(User $user, $category = null) + { + return $this->doctrine->getRepository(Label::class)->queryVisiblesByUser($user, $category)->getQuery()->getresult(); + } + public function filter($filter) { if ($this->searchString) { diff --git a/templates/entry/_chooseLabel.html.twig b/templates/entry/_chooseLabel.html.twig index fb1385b..997a085 100644 --- a/templates/entry/_chooseLabel.html.twig +++ b/templates/entry/_chooseLabel.html.twig @@ -36,7 +36,7 @@ {% set master = '' %} <div id="chooseLabelList"> - {% for label in label_manager.visibleLabelsInLexicon(lexicon, app.user, category) %} + {% for label in label_manager.visibleLabelsForUser(app.user, category) %} {% if entry|default(null) %} -- GitLab