diff options
-rw-r--r-- | ishtar_common/views_item.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 53c65c3aa..93ab133a0 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -499,15 +499,17 @@ def _parse_query_string(string, query_parameters, current_dct, exc_dct, if len(string) != 1: for reserved_char in RESERVED_CHAR: 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'-'): + string = string[:-1] + ':*' + elif string not in ("&", "|", "!", "-"): + # like search by default + string = string + ':*' + if string.startswith('-'): if len(string.strip()) == 1: - return u"" - string = u"!" + string[1:] + return "" + string = "!" + string[1:] return string @@ -874,9 +876,9 @@ def _manage_hierarchic_fields(dct, and_reqs): if val.endswith(u'"') and val.startswith(u'"'): val = val[1:-1] # manage search text by label - if u"*" in val: + if "*" in val: suffix = "label__icontains" - val = val.replace(u'*', u"") + val = val.replace('*', u"") else: suffix = "label__iexact" req = req[:-(len(base_suffix))] + suffix @@ -902,9 +904,9 @@ def _manage_clean_search_field(dct): dct[k] = _clean_type_val(dct[k]) if '*' in dct[k] and k.endswith('__iexact'): value = dct.pop(k).strip() - if value.startswith(u"*"): + if value.startswith("*"): value = value[1:] - if value.endswith(u"*"): + if value.endswith("*"): value = value[:-1] dct[k[:-len('__iexact')] + '__icontains'] = value |