1.1 --- a/imip_manager.py Tue Mar 24 20:39:21 2015 +0100
1.2 +++ b/imip_manager.py Tue Mar 24 20:41:10 2015 +0100
1.3 @@ -1379,7 +1379,7 @@
1.4
1.5 if show_start:
1.6 page.div(class_="dt enabled")
1.7 - self._show_date_controls(ssn("dtstart", "recur", index), start, None)
1.8 + self._show_date_controls(ssn("dtstart", "recur", index), start, None, index)
1.9 page.br()
1.10 page.label("Specify times", for_=sn("dttimes-enable", index), class_="time disabled enable")
1.11 page.label("Specify dates only", for_=sn("dttimes-enable", index), class_="time enabled disable")
1.12 @@ -1390,7 +1390,7 @@
1.13 page.label("Specify end date", for_=sn("dtend-enable", index), class_="enable")
1.14 page.div.close()
1.15 page.div(class_="dt enabled")
1.16 - self._show_date_controls(ssn("dtend", "recur", index), end, None)
1.17 + self._show_date_controls(ssn("dtend", "recur", index), end, None, index)
1.18 page.br()
1.19 page.label("End on same day", for_=sn("dtend-enable", index), class_="disable")
1.20 page.div.close()
1.21 @@ -2135,7 +2135,7 @@
1.22 identifier = "slot-%s" % value
1.23 return value, identifier
1.24
1.25 - def _show_menu(self, name, default, items, class_=""):
1.26 + def _show_menu(self, name, default, items, class_="", index=None):
1.27
1.28 """
1.29 Show a select menu having the given 'name', set to the given 'default',
1.30 @@ -2145,6 +2145,10 @@
1.31
1.32 page = self.page
1.33 values = self.env.get_args().get(name, [default])
1.34 + if index is not None:
1.35 + values = values[index:]
1.36 + values = values and values[0:1] or [default]
1.37 +
1.38 page.select(name=name, class_=class_)
1.39 for v, label in items:
1.40 if v is None:
1.41 @@ -2155,7 +2159,7 @@
1.42 page.option(label, value=v)
1.43 page.select.close()
1.44
1.45 - def _show_date_controls(self, name, default, tzid):
1.46 + def _show_date_controls(self, name, default, tzid, index=None):
1.47
1.48 """
1.49 Show date controls for a field with the given 'name' and 'default' value
1.50 @@ -2175,14 +2179,18 @@
1.51 d = base + timedelta(i)
1.52 items.append((format_datetime(d), self.format_date(d, "full")))
1.53
1.54 - self._show_menu("%s-date" % name, format_datetime(base), items)
1.55 + self._show_menu("%s-date" % name, format_datetime(base), items, index=index)
1.56
1.57 # Show time details.
1.58
1.59 default_time = isinstance(default, datetime) and default or None
1.60 - hour = args.get("%s-hour" % name, "%02d" % (default_time and default_time.hour or 0))
1.61 - minute = args.get("%s-minute" % name, "%02d" % (default_time and default_time.minute or 0))
1.62 - second = args.get("%s-second" % name, "%02d" % (default_time and default_time.second or 0))
1.63 +
1.64 + hour = args.get("%s-hour" % name, [])[index or 0:]
1.65 + hour = hour and hour[0] or "%02d" % (default_time and default_time.hour or 0)
1.66 + minute = args.get("%s-minute" % name, [])[index or 0:]
1.67 + minute = minute and minute[0] or "%02d" % (default_time and default_time.minute or 0)
1.68 + second = args.get("%s-second" % name, [])[index or 0:]
1.69 + second = second and second[0] or "%02d" % (default_time and default_time.second or 0)
1.70
1.71 page.span(class_="time enabled")
1.72 page.input(name="%s-hour" % name, type="text", value=hour, maxlength=2, size=2)
1.73 @@ -2191,10 +2199,10 @@
1.74 page.add(":")
1.75 page.input(name="%s-second" % name, type="text", value=second, maxlength=2, size=2)
1.76 page.add(" ")
1.77 - self._show_timezone_menu("%s-tzid" % name, event_tzid)
1.78 + self._show_timezone_menu("%s-tzid" % name, event_tzid, index)
1.79 page.span.close()
1.80
1.81 - def _show_timezone_menu(self, name, default):
1.82 + def _show_timezone_menu(self, name, default, index=None):
1.83
1.84 """
1.85 Show timezone controls using a menu with the given 'name', set to the
1.86 @@ -2202,7 +2210,7 @@
1.87 """
1.88
1.89 entries = [(tzid, tzid) for tzid in pytz.all_timezones]
1.90 - self._show_menu(name, default, entries)
1.91 + self._show_menu(name, default, entries, index=index)
1.92
1.93 # Incoming HTTP request direction.
1.94