diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/views_item.py | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index e2214d5dc..1cb0b80f2 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1209,7 +1209,7 @@ def _manage_hierarchic_fields(model, dct, and_reqs):                      break -def _manage_clean_search_field(dct, exclude=None): +def _manage_clean_search_field(dct, exclude=None, reverse=False):      for k in list(dct.keys()):          # clean quoted search field          if type(dct[k]) != str: @@ -1221,10 +1221,10 @@ def _manage_clean_search_field(dct, exclude=None):          value = dct.pop(k).strip()          base_key = k[:-len("__iexact")]          if value == "*": -            dct[base_key + "__isnull"] = False -            # TODO search -            #if exclude is not None: -            #    exclude[base_key + "__exact"] = "" +            if not reverse: +                dct[base_key + "__isnull"] = False +            if exclude is not None: +                exclude[base_key + "__exact"] = ""              continue          if value.startswith("*"):              value = value[1:] @@ -1301,6 +1301,8 @@ def _construct_query(relation_types, dct, or_reqs, and_reqs, excluded_relation=F                  values = [v for v in dct[key].split(";") if v]              else:                  values = [dct[key]] +            if not values: +                values = [""]  # filter empty value              for value in values:                  or_reqs.append((key, {key: value}))          dct = {} @@ -2132,7 +2134,7 @@ def get_item(          updated_excluded = {}          _manage_clean_search_field(dct, updated_excluded) -        _manage_clean_search_field(excluded_dct, dct) +        _manage_clean_search_field(excluded_dct, dct, reverse=True)          if updated_excluded:              excluded_dct.update(updated_excluded) | 
