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
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) {
......
......@@ -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) %}
......
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