Skip to content
Snippets Groups Projects
Commit 20db851a authored by Pierre Fleutot's avatar Pierre Fleutot
Browse files

Ajout d'un label : on ne filtre pas en fonction de la visibilité.

parent d513a06a
No related branches found
No related tags found
No related merge requests found
...@@ -42,23 +42,25 @@ class LabelManager ...@@ -42,23 +42,25 @@ class LabelManager
foreach ($labelDeleted->getHeadwords() as $headword) { foreach ($labelDeleted->getHeadwords() as $headword) {
$headword->addLabel($labelMerged); $headword->addLabel($labelMerged);
} }
// pour chaque invisibilité liée à labelDeleted, on regarde si on a une invisibilité pour le même lexique dans labelMerged // On ne reporte pas les invisibilités du label supprimé dans le label fusionné
// Si ce n'est pas le cas, on en ajoute une
foreach ($labelDeleted->getLabelInvisibilities() as $labelInvisibilityDeleted) { // // pour chaque invisibilité liée à labelDeleted, on regarde si on a une invisibilité pour le même lexique dans labelMerged
$labelMergedHasSameLexiconVisibility = false; // // Si ce n'est pas le cas, on en ajoute une
foreach ($labelMerged->getLabelInvisibilities() as $labelInvisibilityMerged) { // foreach ($labelDeleted->getLabelInvisibilities() as $labelInvisibilityDeleted) {
if ($labelInvisibilityDeleted->getLexicon() == $labelInvisibilityMerged->getLexicon()) { // $labelMergedHasSameLexiconVisibility = false;
$labelMergedHasSameLexiconVisibility = true; break; // foreach ($labelMerged->getLabelInvisibilities() as $labelInvisibilityMerged) {
} // if ($labelInvisibilityDeleted->getLexicon() == $labelInvisibilityMerged->getLexicon()) {
} // $labelMergedHasSameLexiconVisibility = true; break;
if (false === $labelMergedHasSameLexiconVisibility) { // }
$labelInvisibility = new LabelInvisibility(); // }
$labelInvisibility->setLexicon($labelInvisibilityDeleted->getLexicon()); // if (false === $labelMergedHasSameLexiconVisibility) {
$labelInvisibility->setLabel($labelMerged); // $labelInvisibility = new LabelInvisibility();
$labelInvisibility->setUser($labelInvisibilityDeleted->getUser()); // $labelInvisibility->setLexicon($labelInvisibilityDeleted->getLexicon());
$this->doctrine->getManager()->persist($labelInvisibility); // $labelInvisibility->setLabel($labelMerged);
} // $labelInvisibility->setUser($labelInvisibilityDeleted->getUser());
} // $this->doctrine->getManager()->persist($labelInvisibility);
// }
// }
$this->doctrine->getManager()->remove($labelDeleted); $this->doctrine->getManager()->remove($labelDeleted);
} }
...@@ -118,6 +120,12 @@ class LabelManager ...@@ -118,6 +120,12 @@ class LabelManager
return array_intersect($entry->getHeadword()->getLabelsForCategory($category), $labelsVisiblesInLexicon); 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) public function filter($filter)
{ {
if ($this->searchString) { if ($this->searchString) {
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
{% set master = '' %} {% set master = '' %}
<div id="chooseLabelList"> <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) %} {% if entry|default(null) %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment