extend with conditional remove if dtstart has no tzinfo set
This commit is contained in:
@@ -182,11 +182,18 @@ def check_and_sanitize_items(
|
|||||||
component.contents.get("rdate", [])):
|
component.contents.get("rdate", [])):
|
||||||
for i, date in enumerate(dates.value):
|
for i, date in enumerate(dates.value):
|
||||||
if type(ref_date) is datetime.datetime and type(date) is datetime.datetime:
|
if type(ref_date) is datetime.datetime and type(date) is datetime.datetime:
|
||||||
if hasattr(ref_date, 'tzinfo'):
|
if hasattr(ref_date, 'tzinfo') and ref_date.tzinfo is not None:
|
||||||
|
logger.trace("ITEM/check_and_sanitize_item: dtstart has tzinfo: '%s'", ref_date)
|
||||||
if hasattr(date, 'tzinfo') and date.tzinfo is None:
|
if hasattr(date, 'tzinfo') and date.tzinfo is None:
|
||||||
# Ensure that datetime.datetime object has timezone set if dtstart has one
|
# Ensure that datetime.datetime object has timezone set if dtstart has
|
||||||
dates.value[i] = dates.value[i].replace(tzinfo=ref_date.tzinfo)
|
dates.value[i] = dates.value[i].replace(tzinfo=ref_date.tzinfo)
|
||||||
logger.trace("ITEM/check_and_sanitize_item: overtake missing tzinfo from dtstart: '%s' -> '%s'", date, dates.value[i])
|
logger.trace("ITEM/check_and_sanitize_item: overtake missing tzinfo from dtstart: '%s' -> '%s'", date, dates.value[i])
|
||||||
|
elif (hasattr(ref_date, 'tzinfo') and ref_date.tzinfo is None) or not hasattr(ref_date, 'tzinfo'):
|
||||||
|
logger.trace("ITEM/check_and_sanitize_item: dtstart has no tzinfo: '%s'", ref_date)
|
||||||
|
if hasattr(date, 'tzinfo') and date.tzinfo is not None:
|
||||||
|
# Ensure that datetime.datetime object has no timezone set if dtstart has none
|
||||||
|
dates.value[i] = dates.value[i].replace(tzinfo=None)
|
||||||
|
logger.trace("ITEM/check_and_sanitize_item: remove existing tzinfo (dtstart has none): '%s' -> '%s'", date, dates.value[i])
|
||||||
if all(type(d) is type(ref_date) for d in dates.value):
|
if all(type(d) is type(ref_date) for d in dates.value):
|
||||||
continue
|
continue
|
||||||
for i, date in enumerate(dates.value):
|
for i, date in enumerate(dates.value):
|
||||||
|
|||||||
Reference in New Issue
Block a user