Commit d9d175a8 authored by Sebastian Castro's avatar Sebastian Castro

Ability to Add excluding words to element search

parent 309f7968
v2.3.4
======
* FEATURE: Ability to add excluding words for element search
* FEATURE: Complete reorganisation of user role management. Please update your users & groups roles
* FEATURE: Element import, ability to map ontology and taxonomy
* BUG: Fix list mode
......
......@@ -62,17 +62,8 @@ class ConfigurationMapAdmin extends ConfigurationAbstractAdmin
->add('reportFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with('Etiquetter les éléments', $featureStyle)
->add('stampFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with('Mode Liste', $featureStyle)
->add('listModeFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with("Recherche d'un lieu", $featureStyle)
->add('searchPlaceFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with("Bouton geolocalisation", $featureStyle)
->add('searchGeolocateFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with("Recherche d'un élément", $featureStyle)
->add('searchElementsFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with('Choix du fond de carte', $featureStyle)
->add('layersFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with('Revenir à la vue par défault', $featureStyle)
......@@ -82,6 +73,17 @@ class ConfigurationMapAdmin extends ConfigurationAbstractAdmin
->with('Affichage des éléments en attente de validation', $featureStyle)
->add('pendingFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->end()
->tab('Recherche')
->with("Recherche d'un lieu", $featureStyle)
->add('searchPlaceFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with("Bouton geolocalisation", $featureStyle)
->add('searchGeolocateFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with("Recherche d'un élément", $featureStyle)
->add('searchElementsFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)->end()
->with("Paramètre de la recherche")
->add('searchExcludingWords', null, ['label' => 'Mots à exclure de la recherche, séparés par des virgules', 'label_attr' => ['title' => 'Si vous faites un annuaire de producteurs locaux, vous voudrez peut être exclure les mots comme "bio", car ce genre de recherche donnerait de mauvais résultats. Par exemple si vous cherchez "Ferme du bayou bio", des résultat qui n\'ont rien à voir tel que "Amap bio" sortiraient dans les résultats, juste à cause du mot "bio". De manière générale, excluez les mots communément utilisés dans les titres de vos fiches. Notez que la recherche par titre de la fiche est aussi utilisée dans la détection de doublons']])
->end()
->end()
->tab('Message personnalisé')
->with('Message personnalisé à faire apparaitre dans un coin de la carte', ['class' => 'gogo-feature'])
->add('customPopupFeature','sonata_type_admin', $featureFormOption, $featureFormTypeOption)
......
......@@ -40,7 +40,8 @@ class MigrationCommand extends GoGoAbstractCommand
"Vous pouvez maintenant renseigner la licence qui protège vos données dans Personnalisation -> Configuration Générale",
// v2.3.4
"Amélioration du <b>système d'import</b>: vous pouvez maintenant faire correspondre les champs et les catégories avant d'importer",
"La gestion des permissions des utilisateurs fait peau neuve ! Votre ancienne configuration ne sera <u>peut être plus valide</u>. Veuillez vous rendre dans le <b>menu Utilisateurs pour mettre à jour les roles des utilisateurs et des groupes</b> d'utilisateurs."
"<b>La gestion des permissions des utilisateurs fait peau neuve !</b> Votre ancienne configuration ne sera <u>peut être plus valide</u>. Veuillez vous rendre dans le <b>menu Utilisateurs pour mettre à jour les roles des utilisateurs et des groupes</b> d'utilisateurs.",
"Vous pouvez maintenant configurer des mot clés à exclure dans la recherche des éléments. Rendez-vous dans Personnalisation -> La Carte -> Onglet Recherche"
];
......
......@@ -32,7 +32,7 @@ class ElementRepository extends DocumentRepository
$radius = $distance / 110;
$status = $includeDeleted ? ElementStatus::Duplicate : ElementStatus::PendingModification;
$qb->addOr($qb->expr()->text($element->getName())->language('fr'));
$qb->addOr($this->queryText($qb->expr(), $element->getName()));
if ($element->getEmail()) $qb->addOr($qb->expr()->field('email')->equals($element->getEmail()));
$qb->limit($maxResults)
......@@ -83,8 +83,7 @@ class ElementRepository extends DocumentRepository
{
$qb = $this->createQueryBuilder('BiopenGeoDirectoryBundle:Element');
$qb->text($text)->sortMeta('score', 'textScore');
$this->queryText($qb, $text)->sortMeta('score', 'textScore');
$this->filterVisibles($qb);
$this->selectJson($qb, $fullRepresentation, $isAdmin);
......@@ -186,6 +185,13 @@ class ElementRepository extends DocumentRepository
if ($limit && $limit > 0) $qb->limit($limit);
}
private function queryText($qb, $text)
{
$config = $this->getDocumentManager()->getRepository('BiopenCoreBundle:Configuration')->findConfiguration();
$text = $text . ' --' . str_replace(',', ' --', $config->getSearchExcludingWords());
return $qb->text($text)->language('fr');
}
private function filterVisibles($qb, $status = ElementStatus::PendingModification)
{
// fetching pendings and validated
......@@ -291,9 +297,9 @@ class ElementRepository extends DocumentRepository
{
$formProperties = [];
$propTypeToIgnore = ['separator', 'header', 'address', 'title', 'email', 'taxonomy', 'openhours'];
$config = $this->getDocumentManager()->getRepository('BiopenCoreBundle:Configuration')->findConfiguration();
$config = $this->getDocumentManager()->getRepository('BiopenCoreBundle:Configuration')->findConfiguration();
foreach ($config->getElementFormFields() as $key => $field) {
if (property_exists($field, 'name') && !in_array($field->type, $propTypeToIgnore))
if (property_exists($field, 'name') && !in_array($field->type, $propTypeToIgnore))
$formProperties[] = $field->name;
}
return $formProperties;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment