summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/tests.py5
-rw-r--r--ishtar_common/views_item.py6
2 files changed, 10 insertions, 1 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index e5c77e501..ec1ca3d17 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -1501,6 +1501,11 @@ class OperationSearchTest(TestCase, OperationInitTest):
response = c.get(reverse('get-operation'), {'search_vector': 'château'})
result = json.loads(response.content)
self.assertEqual(result['recordsTotal'], 1)
+ # test search with inappropriate minus sign
+ response = c.get(reverse('get-operation'),
+ {'search_vector': 'chaTEAU - '})
+ result = json.loads(response.content)
+ self.assertEqual(result['recordsTotal'], 1)
def test_complex_search_vector(self):
c = Client()
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 133e27d39..98415c311 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -341,7 +341,7 @@ def _parse_query_string(string, request_keys, current_dct, exc_dct):
dct[term] += u";" + query
else:
dct[term] = query
- return ""
+ return u""
for reserved_char in FORBIDDEN_CHAR:
string = string.replace(reserved_char, u"")
if len(string) != 1:
@@ -349,8 +349,12 @@ def _parse_query_string(string, request_keys, current_dct, exc_dct):
string = string.replace(reserved_char, u"")
# like search
if string.endswith(u'*'):
+ if len(string.strip()) == 1:
+ return u""
string = string[:-1] + u':*'
if string.startswith(u'-'):
+ if len(string.strip()) == 1:
+ return u""
string = u"!" + string[1:]
return string