From 8622142d7dd539b36a15b7dfaa98e5e22b6cfe1c Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Tue, 31 Aug 2021 13:04:32 +0530 Subject: [PATCH] fix: Use get_timedelta in cast, add to safe_exec list * Return date and datetime objects for Date and Datetime field types respectively if Falsy output is set --- frappe/utils/data.py | 14 +++++++------- frappe/utils/safe_exec.py | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/frappe/utils/data.py b/frappe/utils/data.py index 9ff8deb517..62eb6790e0 100644 --- a/frappe/utils/data.py +++ b/frappe/utils/data.py @@ -583,19 +583,19 @@ def cast(fieldtype, value=None): value = cstr(value) elif fieldtype == "Date": - if value is None: + if value: + value = getdate(value) + else: value = datetime.datetime(1, 1, 1).date() - value = getdate(value) elif fieldtype == "Datetime": - if value is None: + if value: + value = get_datetime(value) + else: value = datetime.datetime(1, 1, 1) - value = get_datetime(value) elif fieldtype == "Time": - if value is None: - value = "0:0:0" - value = to_timedelta(value) + value = get_timedelta(value) return value diff --git a/frappe/utils/safe_exec.py b/frappe/utils/safe_exec.py index 2e27859faa..4de685e53e 100644 --- a/frappe/utils/safe_exec.py +++ b/frappe/utils/safe_exec.py @@ -228,6 +228,7 @@ VALID_UTILS = ( "getdate", "get_datetime", "to_timedelta", +"get_timedelta", "add_to_date", "add_days", "add_months",