# HG changeset patch # User Paul Boddie # Date 1431799329 -7200 # Node ID 0b5300217dd2f3313254f5ead46c37954fb8b101 # Parent a648f5a930e9a183a6e076784d6097ff64bc92a0 Moved end date conversion functions to the dates module. Propagate the origin of event periods to form periods. diff -r a648f5a930e9 -r 0b5300217dd2 imiptools/dates.py --- a/imiptools/dates.py Sat May 16 18:26:55 2015 +0200 +++ b/imiptools/dates.py Sat May 16 20:02:09 2015 +0200 @@ -399,4 +399,28 @@ return format_datetime(to_utc_datetime(get_datetime(recurrenceid), tzid)) +def end_date_to_calendar(dt): + + """ + Change end dates to refer to the iCalendar "next day" dates, not the actual + dates. + """ + + if not isinstance(dt, datetime): + return dt + timedelta(1) + else: + return dt + +def end_date_from_calendar(dt): + + """ + Change end dates to refer to the actual dates, not the iCalendar "next day" + dates. + """ + + if not isinstance(dt, datetime): + return dt - timedelta(1) + else: + return dt + # vim: tabstop=4 expandtab shiftwidth=4 diff -r a648f5a930e9 -r 0b5300217dd2 imipweb/data.py --- a/imipweb/data.py Sat May 16 18:26:55 2015 +0200 +++ b/imipweb/data.py Sat May 16 20:02:09 2015 +0200 @@ -21,7 +21,9 @@ from datetime import datetime, timedelta from imiptools.data import get_tzid -from imiptools.dates import format_datetime, get_datetime, get_start_of_day, to_date +from imiptools.dates import end_date_from_calendar, end_date_to_calendar, \ + format_datetime, get_datetime, get_start_of_day, \ + to_date from imiptools.period import Period class PeriodError(Exception): @@ -92,7 +94,8 @@ self.get_form_start(), self.get_form_end(), isinstance(self.end, datetime) or self.get_start() != self.get_end(), - isinstance(self.start, datetime) or isinstance(self.end, datetime) + isinstance(self.start, datetime) or isinstance(self.end, datetime), + self.origin ) def get_form_date(self, dt, attr=None): @@ -299,30 +302,6 @@ else: return {"VALUE" : "DATE"} -def end_date_to_calendar(dt): - - """ - Change end dates to refer to the iCalendar "next day" dates, not the actual - dates. - """ - - if not isinstance(dt, datetime): - return dt + timedelta(1) - else: - return dt - -def end_date_from_calendar(dt): - - """ - Change end dates to refer to the actual dates, not the iCalendar "next day" - dates. - """ - - if not isinstance(dt, datetime): - return dt - timedelta(1) - else: - return dt - def event_period_from_period(period): if isinstance(period, EventPeriod): return period