diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-02-20 16:20:31 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-02-20 16:20:31 +0100 |
commit | 4c18c16a2a13026ce2e90c5d35bb5b02987ec980 (patch) | |
tree | 59e6ee0433f382077412881957ab84a3d8278467 /ishtar_common/views.py | |
parent | cc4b9d92baf57f29ff57fec6f9fdda3d6d4602e0 (diff) | |
download | Ishtar-4c18c16a2a13026ce2e90c5d35bb5b02987ec980.tar.bz2 Ishtar-4c18c16a2a13026ce2e90c5d35bb5b02987ec980.zip |
Fix unaccented search in search vector (refs #3152)
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 8db0e9460..bd558a62e 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -17,8 +17,6 @@ # See the file COPYING for details. -from tidylib import tidy_document as tidy - from copy import copy, deepcopy import csv import datetime @@ -28,7 +26,9 @@ from markdown import markdown import optparse import re from tempfile import NamedTemporaryFile +from tidylib import tidy_document as tidy import unicodedata +from unidecode import unidecode from weasyprint import HTML, CSS from weasyprint.fonts import FontConfiguration @@ -631,6 +631,15 @@ def _get_values(request, val): return new_vals +def _search_manage_search_vector(dct): + if 'search_vector' in dct: + dct['search_vector'] = SearchQuery( + unidecode(dct['search_vector']), + config=settings.ISHTAR_SEARCH_LANGUAGE + ) + return dct + + DEFAULT_ROW_NUMBER = 10 # length is used by ajax DataTables requests EXCLUDED_FIELDS = ['length'] @@ -899,9 +908,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], reqs |= q and_reqs.append(reqs) break - if 'search_vector' in dct: - dct['search_vector'] = SearchQuery( - dct['search_vector'], config=settings.ISHTAR_SEARCH_LANGUAGE) + dct = _search_manage_search_vector(dct) query = Q(**dct) for k, or_req in or_reqs: alt_dct = dct.copy() |