Fix for unknown locale languages in print format (#5424)

* fix for unknown locale in dates

* formatting fix
This commit is contained in:
Shreya Shah 2018-04-17 11:29:22 +05:30 committed by Nabin Hait
parent f03ac687ab
commit c007c0c225

View file

@ -26,9 +26,9 @@ def getdate(string_date=None):
"""
Coverts string date (yyyy-mm-dd) to datetime.date object
"""
if not string_date:
return get_datetime().date()
if isinstance(string_date, datetime.datetime):
return string_date.date()
@ -38,7 +38,6 @@ def getdate(string_date=None):
# dateutil parser does not agree with dates like 0000-00-00
if not string_date or string_date=="0000-00-00":
return None
return parser.parse(string_date).date()
def get_datetime(datetime_str=None):
@ -199,7 +198,6 @@ def get_time(time_str):
def get_datetime_str(datetime_obj):
if isinstance(datetime_obj, string_types):
datetime_obj = get_datetime(datetime_obj)
return datetime_obj.strftime(DATETIME_FORMAT)
def get_user_format():
@ -226,11 +224,11 @@ def formatdate(string_date=None, format_string=None):
date = getdate(string_date)
if not format_string:
format_string = get_user_format().replace("mm", "MM")
try:
formatted_date = babel.dates.format_date(date, format_string, locale=(frappe.local.lang or "").replace("-", "_"))
except UnknownLocaleError:
formatted_date = date.strftime("%Y-%m-%d")
format_string = format_string.replace("MM", "%m").replace("dd", "%d").replace("yyyy", "%Y")
formatted_date = date.strftime(format_string)
return formatted_date
def format_time(txt):