# HG changeset patch # User Paul Boddie # Date 1427222851 -3600 # Node ID 6fc9622132463717f167210dca0b0a15fb9b7610 # Parent 259dd95cb0a062c5d5a3c31a4f0192963ab139ea Fixed end/time control value interpretation for recurring periods. Tidied interpretation of active main period details. diff -r 259dd95cb0a0 -r 6fc962213246 imip_manager.py --- a/imip_manager.py Tue Mar 24 18:18:53 2015 +0100 +++ b/imip_manager.py Tue Mar 24 19:47:31 2015 +0100 @@ -986,9 +986,8 @@ # Configure the start and end datetimes. - dtend_control = args.get("dtend-control", [None])[0] - dttimes_control = args.get("dttimes-control", [None])[0] - with_time = dttimes_control == "enable" + dtend_enabled = args.get("dtend-control", [None])[0] == "enable" + dttimes_enabled = args.get("dttimes-control", [None])[0] == "enable" # Start with the object's original details, overriding them with request # information. @@ -996,19 +995,17 @@ (dtstart, dtstart_attr), (dtend, dtend_attr) = self.get_event_period(obj) d = self.get_date_control_values("dtstart") - t = self.handle_date_control_values(d, with_time) + t = self.handle_date_control_values(d, dtend_enabled) if t: dtstart, dtstart_attr = t - if dtend_control == "enable": + if dtend_enabled: d = self.get_date_control_values("dtend") - t = self.handle_date_control_values(d, with_time) + t = self.handle_date_control_values(d, dtend_enabled) if t: dtend, dtend_attr = t else: dtend, dtend_attr = None, {} - elif dtend_control == "disable": - dtend, dtend_attr = None, {} return (dtstart, dtstart_attr), (dtend, dtend_attr) @@ -1279,11 +1276,11 @@ page.style.close() - dtend_control = args.get(ssn("dtend-control", "recur", index), [None])[0] - dttimes_control = args.get(ssn("dttimes-control", "recur", index), [None])[0] - - dtend_enabled = dtend_control == "enable" or isinstance(end, datetime) or start != end - timedelta(1) - dttimes_enabled = dttimes_control == "enable" or isinstance(start, datetime) or isinstance(end, datetime) + dtend_control = args.get(ssn("dtend-control", "recur", index), [None])[index or 0:] + dttimes_control = args.get(ssn("dttimes-control", "recur", index), [None])[index or 0:] + + dtend_enabled = dtend_control and dtend_control[0] == "enable" or isinstance(end, datetime) or start != end - timedelta(1) + dttimes_enabled = dttimes_control and dttimes_control[0] == "enable" or isinstance(start, datetime) or isinstance(end, datetime) if dtend_enabled: page.input(name=ssn("dtend-control", "recur", index), type="checkbox", value="enable", id=sn("dtend-enable", index), checked="checked")