diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-03-06 11:16:21 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-03-06 11:16:21 +0100 | 
| commit | 6bfef60caea11ca8ab5f02455bd0141acdee5ded (patch) | |
| tree | ffaf49d827ae66baa54dce42011495bb73b18360 /ishtar_common | |
| parent | e697a74e5624d124def3b9af432746788a5d6092 (diff) | |
| download | Ishtar-6bfef60caea11ca8ab5f02455bd0141acdee5ded.tar.bz2 Ishtar-6bfef60caea11ca8ab5f02455bd0141acdee5ded.zip  | |
🐛 criteria search: fix exact date query for datetime fields (refs #6206)
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/views_item.py | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 52444fed9..a6984be8e 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1236,6 +1236,12 @@ def _manage_date(k, dct):      maxs = [value for dt, value in results if dt == "lte"]      eqs = [value for dt, value in results if dt == "eq"]      if eqs and not mins and not maxs:  # TODO: min and max not available when using single dates +        for datetime_field in BASE_DATETIME_FIELDS: +            # manage exact date match on datetime field +            if k.startswith(datetime_field): +                dct.pop(k) +                k = k + "__date" +                break          dct[k] = ";".join(eqs)          return      dct.pop(k) @@ -1429,7 +1435,6 @@ def _manage_hierarchic_area(base_req, dct, and_reqs):      q = query_list[0]      for query in query_list[1:]:          q |= query -    print(q)      and_reqs.append(q) @@ -2322,7 +2327,7 @@ def manage_hierarchy_shorcut(model, request, query):  DEFAULT_ROW_NUMBER = 10  # length is used by ajax DataTables requests  EXCLUDED_FIELDS = ["length"] -BASE_DATED_FIELDS = ["created", "last_modified"] +BASE_DATETIME_FIELDS = ["created", "last_modified"]  def get_item( @@ -2471,7 +2476,7 @@ def get_item(              my_dated_fields = model.DATED_FIELDS[:]          else:              my_dated_fields = dated_fields[:] if dated_fields else [] -        my_dated_fields += BASE_DATED_FIELDS +        my_dated_fields += BASE_DATETIME_FIELDS          if not associated_models and hasattr(model, "ASSOCIATED_MODELS"):              my_associated_models = model.ASSOCIATED_MODELS[:]          else:  | 
