summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
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
commit97ca6b195c509635a71a1bd1d15c0f24592e714d (patch)
treed64cf19a3cf5869db8773e5b8805cc67ca51e390 /ishtar_common/views_item.py
parent426e963e1504fd6d80c0f34af31dfbeb95ec2ae3 (diff)
downloadIshtar-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.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"-")