1.1 --- a/imipweb/data.py Sun May 17 17:16:23 2015 +0200
1.2 +++ b/imipweb/data.py Sun May 17 17:59:06 2015 +0200
1.3 @@ -36,7 +36,7 @@
1.4 intended to represent information obtained from an iCalendar resource.
1.5 """
1.6
1.7 - def __init__(self, start, end, start_attr=None, end_attr=None, form_start=None, form_end=None, origin=None):
1.8 + def __init__(self, start, end, tzid=None, origin=None, start_attr=None, end_attr=None, form_start=None, form_end=None):
1.9
1.10 """
1.11 Initialise a period with the given 'start' and 'end' datetimes, together
1.12 @@ -45,15 +45,15 @@
1.13 'origin' indicating the kind of period this object describes.
1.14 """
1.15
1.16 - RecurringPeriod.__init__(self, start, end, origin, start_attr, end_attr)
1.17 + RecurringPeriod.__init__(self, start, end, tzid, origin, start_attr, end_attr)
1.18 self.form_start = form_start
1.19 self.form_end = form_end
1.20
1.21 def as_tuple(self):
1.22 - return self.start, self.end, self.start_attr, self.end_attr, self.form_start, self.form_end, self.origin
1.23 + return self.start, self.end, self.tzid, self.origin, self.start_attr, self.end_attr, self.form_start, self.form_end
1.24
1.25 def __repr__(self):
1.26 - return "EventPeriod(%r, %r, %r, %r, %r, %r, %r)" % self.as_tuple()
1.27 + return "EventPeriod(%r)" % (self.as_tuple(),)
1.28
1.29 def as_event_period(self):
1.30 return self
1.31 @@ -76,6 +76,7 @@
1.32 self.get_form_end(),
1.33 isinstance(self.end, datetime) or self.get_start() != self.get_end(),
1.34 isinstance(self.start, datetime) or isinstance(self.end, datetime),
1.35 + self.tzid,
1.36 self.origin
1.37 )
1.38
1.39 @@ -93,18 +94,19 @@
1.40
1.41 "A period whose information originates from a form."
1.42
1.43 - def __init__(self, start, end, end_enabled=True, times_enabled=True, origin=None):
1.44 + def __init__(self, start, end, end_enabled=True, times_enabled=True, tzid=None, origin=None):
1.45 self.start = start
1.46 self.end = end
1.47 self.end_enabled = end_enabled
1.48 self.times_enabled = times_enabled
1.49 + self.tzid = tzid
1.50 self.origin = origin
1.51
1.52 def as_tuple(self):
1.53 - return self.start, self.end, self.end_enabled, self.times_enabled, self.origin
1.54 + return self.start, self.end, self.end_enabled, self.times_enabled, self.tzid, self.origin
1.55
1.56 def __repr__(self):
1.57 - return "FormPeriod(%r, %r, %r, %r, %r)" % self.as_tuple()
1.58 + return "FormPeriod(%r)" % (self.as_tuple(),)
1.59
1.60 def _get_start(self):
1.61 return self.start.as_datetime(self.times_enabled), self.start.get_attributes(self.times_enabled)
1.62 @@ -158,7 +160,7 @@
1.63 index is not None and ("dtend", index) or "dtend"
1.64 ])
1.65
1.66 - return EventPeriod(dtstart, end_date_to_calendar(dtend), dtstart_attr, dtend_attr, self.start, self.end, self.origin)
1.67 + return EventPeriod(dtstart, end_date_to_calendar(dtend), self.origin, self.tzid, dtstart_attr, dtend_attr, self.start, self.end)
1.68
1.69 # Period data methods.
1.70
1.71 @@ -204,7 +206,7 @@
1.72 return self.date, self.hour, self.minute, self.second, self.tzid, self.dt, self.attr
1.73
1.74 def __repr__(self):
1.75 - return "FormDate(%r, %r, %r, %r, %r, %r, %r)" % self.as_tuple()
1.76 + return "FormDate(%r)" % (self.as_tuple(),)
1.77
1.78 def get_component(self, value):
1.79 return (value or "").rjust(2, "0")[:2]
1.80 @@ -292,7 +294,7 @@
1.81 dtend, dtend_attr = period.get_end_item()
1.82 if not isinstance(period, RecurringPeriod):
1.83 dtend = end_date_to_calendar(dtend)
1.84 - return EventPeriod(dtstart, dtend, dtstart_attr, dtend_attr, origin=period.origin)
1.85 + return EventPeriod(dtstart, dtend, period.tzid, period.origin, dtstart_attr, dtend_attr)
1.86
1.87 def form_period_from_period(period):
1.88 if isinstance(period, EventPeriod):