# HG changeset patch # User Paul Boddie # Date 1427058500 -3600 # Node ID 188404c542da8efef59f35bea5b93c1fc31e2d11 # Parent 65be38056560b4c1123304741be671551bb1ea7a Simplified datetime control generation, making it slightly more general. diff -r 65be38056560 -r 188404c542da imip_manager.py --- a/imip_manager.py Sun Mar 22 22:04:50 2015 +0100 +++ b/imip_manager.py Sun Mar 22 22:08:20 2015 +0100 @@ -1128,12 +1128,11 @@ # Show controls for editing as organiser. if is_organiser: - value = format_datetime(dt) page.td(class_="objectvalue dt%s" % (is_start_datetime and "start" or "end")) if is_start_datetime: page.div(class_="dt enabled") - self._show_date_controls("dtstart", value, attr) + self._show_date_controls("dtstart", dt, attr.get("TZID")) page.br() page.label("Specify times", for_="dttimes-enable", class_="time disabled enable") page.label("Specify dates only", for_="dttimes-disable", class_="time enabled disable") @@ -1144,7 +1143,7 @@ page.label("Specify end date", for_="dtend-enable", class_="enable") page.div.close() page.div(class_="dt enabled") - self._show_date_controls("dtend", value, attr) + self._show_date_controls("dtend", dt, attr.get("TZID")) page.br() page.label("End on same day", for_="dtend-disable", class_="disable") page.div.close() @@ -1904,7 +1903,7 @@ page.option(label, value=v) page.select.close() - def _show_date_controls(self, name, default, attr): + def _show_date_controls(self, name, default, tzid): """ Show date controls for a field with the given 'name' and 'default' value @@ -1914,12 +1913,11 @@ page = self.page args = self.env.get_args() - event_tzid = attr.get("TZID", self.get_tzid()) - dt = get_datetime(default, attr) + event_tzid = tzid or self.get_tzid() # Show dates for up to one week around the current date. - base = get_date(dt) + base = get_date(default) items = [] for i in range(-7, 8): d = base + timedelta(i) @@ -1929,10 +1927,10 @@ # Show time details. - dt_time = isinstance(dt, datetime) and dt or None - hour = args.get("%s-hour" % name, "%02d" % (dt_time and dt_time.hour or 0)) - minute = args.get("%s-minute" % name, "%02d" % (dt_time and dt_time.minute or 0)) - second = args.get("%s-second" % name, "%02d" % (dt_time and dt_time.second or 0)) + default_time = isinstance(default, datetime) and default or None + hour = args.get("%s-hour" % name, "%02d" % (default_time and default_time.hour or 0)) + minute = args.get("%s-minute" % name, "%02d" % (default_time and default_time.minute or 0)) + second = args.get("%s-second" % name, "%02d" % (default_time and default_time.second or 0)) page.span(class_="time enabled") page.input(name="%s-hour" % name, type="text", value=hour, maxlength=2, size=2)