diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-03-21 12:32:06 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-04-24 19:41:37 +0200 |
commit | 9ddc0da7db9b7603c0b71223ca161397088a9613 (patch) | |
tree | d64cf19a3cf5869db8773e5b8805cc67ca51e390 /ishtar_common | |
parent | 3920c6a34eaddee7397a93d08487194a5119e74f (diff) | |
download | Ishtar-9ddc0da7db9b7603c0b71223ca161397088a9613.tar.bz2 Ishtar-9ddc0da7db9b7603c0b71223ca161397088a9613.zip |
Facet search: manage term containing = or | inside quotes
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/views_item.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 16128feba..ca75bffe1 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -390,14 +390,19 @@ def _parse_parentheses(s): FORBIDDEN_CHAR = [u":"] RESERVED_CHAR = [u"|", u"&"] +RE_FACET = re.compile('([-a-zA-Z]+)="([^"]+)"') def _parse_query_string(string, query_parameters, current_dct, exc_dct, extra_distinct_q): string = string.strip().lower() - if u"=" in string: - splited = string.split(u"=") + match = RE_FACET.search(string) + if match or u"=" in string: + if match: + splited = match.groups() + else: + splited = string.split(u"=") if len(splited) == 2: base_term, query = splited excluded = base_term.startswith(u"-") |