1.1 --- a/imipweb/data.py Sun May 17 00:40:01 2015 +0200
1.2 +++ b/imipweb/data.py Sun May 17 01:12:05 2015 +0200
1.3 @@ -19,10 +19,10 @@
1.4 this program. If not, see <http://www.gnu.org/licenses/>.
1.5 """
1.6
1.7 -from datetime import datetime, timedelta
1.8 +from datetime import datetime
1.9 from imiptools.data import get_tzid
1.10 -from imiptools.dates import end_date_from_calendar, end_date_to_calendar, \
1.11 - format_datetime, get_datetime, get_start_of_day, \
1.12 +from imiptools.dates import end_date_to_calendar, \
1.13 + format_datetime, get_datetime, get_end_of_day, \
1.14 to_date
1.15 from imiptools.period import Period
1.16
1.17 @@ -62,10 +62,8 @@
1.18
1.19 # Period data methods.
1.20
1.21 - # get_start inherited
1.22 -
1.23 - def get_end(self):
1.24 - return end_date_from_calendar(Period.get_end(self))
1.25 + def get_calendar_end(self):
1.26 + return end_date_to_calendar(Period.get_end(self))
1.27
1.28 def get_tzid(self):
1.29 return get_tzid(self.start_attr, self.end_attr)
1.30 @@ -127,16 +125,14 @@
1.31 def _get_start(self):
1.32 return self.start.as_datetime(self.times_enabled), self.start.get_attributes(self.times_enabled)
1.33
1.34 - def _get_end(self, adjust=False):
1.35 + def _get_end(self):
1.36
1.37 # Handle specified end datetimes.
1.38
1.39 if self.end_enabled:
1.40 dtend = self.end.as_datetime(self.times_enabled)
1.41 dtend_attr = self.end.get_attributes(self.times_enabled)
1.42 - if dtend:
1.43 - dtend = adjust and end_date_to_calendar(dtend) or dtend
1.44 - else:
1.45 + if not dtend:
1.46 return None, None
1.47
1.48 # Otherwise, treat the end date as the start date. Datetimes are
1.49 @@ -145,11 +141,12 @@
1.50 else:
1.51 dtstart, dtstart_attr = self._get_start()
1.52 if dtstart:
1.53 - dtend = dtstart + timedelta(1)
1.54 dtend_attr = dtstart_attr
1.55
1.56 if isinstance(dtstart, datetime):
1.57 - dtend = get_start_of_day(dtend, dtend_attr["TZID"])
1.58 + dtend = get_end_of_day(dtstart, dtstart_attr["TZID"])
1.59 + else:
1.60 + dtend = dtstart
1.61 else:
1.62 return None, None
1.63
1.64 @@ -167,7 +164,7 @@
1.65 if not dtstart:
1.66 raise PeriodError(*[index is not None and ("dtstart", index) or "dtstart"])
1.67
1.68 - dtend, dtend_attr = self._get_end(adjust=True)
1.69 + dtend, dtend_attr = self._get_end()
1.70 if not dtend:
1.71 raise PeriodError(*[index is not None and ("dtend", index) or "dtend"])
1.72