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 | 97ca6b195c509635a71a1bd1d15c0f24592e714d (patch) | |
tree | d64cf19a3cf5869db8773e5b8805cc67ca51e390 /ishtar_common/views_item.py | |
parent | 426e963e1504fd6d80c0f34af31dfbeb95ec2ae3 (diff) | |
download | Ishtar-97ca6b195c509635a71a1bd1d15c0f24592e714d.tar.bz2 Ishtar-97ca6b195c509635a71a1bd1d15c0f24592e714d.zip |
Facet search: manage term containing = or | inside quotes
Diffstat (limited to 'ishtar_common/views_item.py')
-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"-") |