From def10af1e2c60046c3be2eba90e3b6349fd430d1 Mon Sep 17 00:00:00 2001 From: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Date: Fri, 11 Aug 2023 12:48:30 +0530 Subject: [PATCH] fix: issue date filtering (#1834) --- apiserver/plane/utils/issue_filters.py | 35 +++++++++++++++----------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/apiserver/plane/utils/issue_filters.py b/apiserver/plane/utils/issue_filters.py index 1a4c5322d79..34e1e820384 100644 --- a/apiserver/plane/utils/issue_filters.py +++ b/apiserver/plane/utils/issue_filters.py @@ -124,10 +124,11 @@ def filter_created_at(params, filter, method): else: if params.get("created_at", None) and len(params.get("created_at")): for query in params.get("created_at"): - if query.get("timeline", "after") == "after": - filter["created_at__date__gte"] = query.get("datetime") + created_at_query = query.split(";") + if len(created_at_query) == 2 and "after" in created_at_query: + filter["created_at__date__gte"] = created_at_query[0] else: - filter["created_at__date__lte"] = query.get("datetime") + filter["created_at__date__lte"] = created_at_query[0] return filter @@ -144,10 +145,11 @@ def filter_updated_at(params, filter, method): else: if params.get("updated_at", None) and len(params.get("updated_at")): for query in params.get("updated_at"): - if query.get("timeline", "after") == "after": - filter["updated_at__date__gte"] = query.get("datetime") + updated_at_query = query.split(";") + if len(updated_at_query) == 2 and "after" in updated_at_query: + filter["updated_at__date__gte"] = updated_at_query[0] else: - filter["updated_at__date__lte"] = query.get("datetime") + filter["updated_at__date__lte"] = updated_at_query[0] return filter @@ -164,10 +166,11 @@ def filter_start_date(params, filter, method): else: if params.get("start_date", None) and len(params.get("start_date")): for query in params.get("start_date"): - if query.get("timeline", "after") == "after": - filter["start_date__gte"] = query.get("datetime") + start_date_query = query.split(";") + if len(start_date_query) == 2 and "after" in start_date_query: + filter["start_date__gte"] = start_date_query[0] else: - filter["start_date__lte"] = query.get("datetime") + filter["start_date__lte"] = start_date_query[0] return filter @@ -184,10 +187,11 @@ def filter_target_date(params, filter, method): else: if params.get("target_date", None) and len(params.get("target_date")): for query in params.get("target_date"): - if query.get("timeline", "after") == "after": - filter["target_date__gt"] = query.get("datetime") + target_date_query = query.split(";") + if len(target_date_query) == 2 and "after" in target_date_query: + filter["target_date__gt"] = target_date_query[0] else: - filter["target_date__lt"] = query.get("datetime") + filter["target_date__lt"] = target_date_query[0] return filter @@ -205,10 +209,11 @@ def filter_completed_at(params, filter, method): else: if params.get("completed_at", None) and len(params.get("completed_at")): for query in params.get("completed_at"): - if query.get("timeline", "after") == "after": - filter["completed_at__date__gte"] = query.get("datetime") + completed_at_query = query.split(";") + if len(completed_at_query) == 2 and "after" in completed_at_query: + filter["completed_at__date__gte"] = completed_at_query[0] else: - filter["completed_at__lte"] = query.get("datetime") + filter["completed_at__lte"] = completed_at_query[0] return filter