1.1 --- a/imip_manager.py Sun Feb 08 22:15:17 2015 +0100
1.2 +++ b/imip_manager.py Sun Feb 08 22:16:05 2015 +0100
1.3 @@ -703,13 +703,17 @@
1.4 else:
1.5 dtstart, dtstart_attr = obj.get_datetime_item("DTSTART")
1.6
1.7 - dtend, dtend_attr = None, {}
1.8 + dtend_control = args.get("dtend-control", [None])[0]
1.9
1.10 - if args.get("dtend-control", [None])[0] == "enable":
1.11 + if dtend_control == "enable":
1.12 t = self.handle_date_controls("dtend")
1.13 if t:
1.14 dtend, dtend_attr = t
1.15 - elif not args.has_key("dtend-control"):
1.16 + else:
1.17 + dtend, dtend_attr = None, {}
1.18 + elif dtend_control == "disable":
1.19 + dtend, dtend_attr = None, {}
1.20 + else:
1.21 dtend, dtend_attr = obj.get_datetime_item("DTEND")
1.22
1.23 # Change end dates to refer to the actual dates, not the iCalendar
1.24 @@ -718,7 +722,12 @@
1.25 if dtend and not isinstance(dtend, datetime):
1.26 dtend -= timedelta(1)
1.27
1.28 - if dtend and (isinstance(dtend, datetime) or dtstart != dtend):
1.29 + # Show the end datetime controls if already active or if an object needs
1.30 + # them.
1.31 +
1.32 + dtend_control = dtend_control or (isinstance(dtend, datetime) or dtstart != dtend) and "enable" or None
1.33 +
1.34 + if dtend_control == "enable":
1.35 page.input(name="dtend-control", type="radio", value="enable", id="dtend-enable", checked="checked")
1.36 page.input(name="dtend-control", type="radio", value="disable", id="dtend-disable")
1.37 else:
1.38 @@ -746,8 +755,15 @@
1.39
1.40 page.th(label, class_="objectheading %s" % name.lower())
1.41
1.42 + # Obtain the datetime.
1.43 +
1.44 if name == "DTSTART":
1.45 dt, attr, event_tzid = dtstart, dtstart_attr, dtstart_attr.get("TZID", tzid)
1.46 +
1.47 + # Where no end datetime exists, use the start datetime as the
1.48 + # basis of any potential datetime specified if dt-control is
1.49 + # set.
1.50 +
1.51 else:
1.52 dt, attr, event_tzid = dtend or dtstart, dtend_attr or dtstart_attr, (dtend_attr or dtstart_attr).get("TZID", tzid)
1.53