diff options
| -rw-r--r-- | CHANGES.md | 4 | ||||
| -rw-r--r-- | archaeological_finds/tests.py | 5 | ||||
| -rw-r--r-- | ishtar_common/views_item.py | 4 | 
3 files changed, 11 insertions, 2 deletions
diff --git a/CHANGES.md b/CHANGES.md index a1e49befd..630c90926 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,7 +19,9 @@ Ishtar changelog    - overload index to add subsection headers  - Geo: create/edit form - new openlayers version - add default IGN tiles  - Import: improve bad encoding detection -- Free text search: add french_archeo thesaurus config +- Free text search: +  - use accent and unaccented string +  - add french_archeo thesaurus config  ### Bug fixes ###  - Search: Fix many excluded search diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 342f3d127..1a62dce4b 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -1222,6 +1222,7 @@ class FindSearchTest(FindInit, TestCase, SearchText):          metal = models.MaterialType.objects.get(txt_idx="metal")          iron_metal = models.MaterialType.objects.get(txt_idx="iron_metal")          not_iron_metal = models.MaterialType.objects.get(txt_idx="not_iron_metal") +        mineral = models.MaterialType.objects.get(txt_idx="mineral").pk          find.material_types.add(iron_metal)          find = models.Find.objects.get(pk=find.pk)          find.save() @@ -1256,12 +1257,16 @@ class FindSearchTest(FindInit, TestCase, SearchText):          content = response.content.decode()          self.assertEqual(json.loads(content)["recordsTotal"], 1) +        find.material_types.add(mineral) +        find = models.Find.objects.get(pk=find.pk) +        find.save()          # test on text search          material_key = str(pgettext_lazy("key for text search", "material"))          result = [              ('{}="{}"'.format(material_key, str(iron_metal)), 1),              ('{}="{}"'.format(material_key, str(not_iron_metal)), 0),              ('{}="{}"'.format(material_key, str(metal)), 1), +            ('minéral', 1),          ]          self._test_search(c, result, context="Text material search") diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index eaf05f027..615abd0ec 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -803,7 +803,9 @@ def _parse_parentheses_groups(      query += ")"      if query == "()":          query = "" -    query = unidecode(query) +    unaccent_query = unidecode(query) +    if unaccent_query != query: +        query = f"({query} | {unaccent_query})"      return query, current_dct, exc_dct, extra_distinct_q  | 
