summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commit9ddc0da7db9b7603c0b71223ca161397088a9613 (patch)
treed64cf19a3cf5869db8773e5b8805cc67ca51e390 /ishtar_common
parent3920c6a34eaddee7397a93d08487194a5119e74f (diff)
downloadIshtar-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.py9
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"-")