1.1 --- a/imipweb/resource.py Fri Sep 15 00:03:38 2017 +0200
1.2 +++ b/imipweb/resource.py Mon Sep 18 20:34:43 2017 +0200
1.3 @@ -542,85 +542,48 @@
1.4
1.5 # Show controls for editing.
1.6
1.7 - if not period.replaced:
1.8 - page.td(class_="objectvalue dt%s" % (show_start and "start" or "end"))
1.9 + page.td(class_="objectvalue dt%s" % (show_start and "start" or "end"))
1.10
1.11 - read_only = period.origin == "RRULE"
1.12 + read_only = period.origin == "RRULE"
1.13
1.14 - if show_start:
1.15 + if show_start:
1.16 + page.div(class_="dt enabled")
1.17 + self.date_controls(_name("dtstart", "recur", index), period.get_form_start(), read_only=read_only)
1.18 + if not read_only:
1.19 + page.br()
1.20 + page.label("Specify times", for_=_id("dttimes-enable", index), class_="time disabled enable")
1.21 + page.label("Specify dates only", for_=_id("dttimes-enable", index), class_="time enabled disable")
1.22 + page.div.close()
1.23 +
1.24 + self.show_period_state(index, period)
1.25 + else:
1.26 + self.date_controls(_name("dtend", "recur", index), period.get_form_end(), show_tzid=False, read_only=read_only)
1.27 + if not read_only:
1.28 + page.div(class_="dt disabled")
1.29 + page.label("Specify end date", for_=_id("dtend-enable", index), class_="enable")
1.30 + page.div.close()
1.31 page.div(class_="dt enabled")
1.32 - self.date_controls(_name("dtstart", "recur", index), period.get_form_start(), read_only=read_only)
1.33 - if not read_only:
1.34 - page.br()
1.35 - page.label("Specify times", for_=_id("dttimes-enable", index), class_="time disabled enable")
1.36 - page.label("Specify dates only", for_=_id("dttimes-enable", index), class_="time enabled disable")
1.37 + page.label("End on same day", for_=_id("dtend-enable", index), class_="disable")
1.38 page.div.close()
1.39
1.40 - self.show_recurrence_state(index, period)
1.41 - else:
1.42 - self.date_controls(_name("dtend", "recur", index), period.get_form_end(), show_tzid=False, read_only=read_only)
1.43 - if not read_only:
1.44 - page.div(class_="dt disabled")
1.45 - page.label("Specify end date", for_=_id("dtend-enable", index), class_="enable")
1.46 - page.div.close()
1.47 - page.div(class_="dt enabled")
1.48 - page.label("End on same day", for_=_id("dtend-enable", index), class_="disable")
1.49 - page.div.close()
1.50 -
1.51 - page.td.close()
1.52 -
1.53 - # Show label as attendee.
1.54 -
1.55 - else:
1.56 - self.show_recurrence_label(index, period, recurrenceid, show_start)
1.57 -
1.58 - def show_recurrence_label(self, index, period, recurrenceid, show_start):
1.59 -
1.60 - """
1.61 - Show datetime details from the current object for the recurrence having
1.62 - the given 'index', for the given recurrence 'period', employing any
1.63 - 'recurrenceid' for the object to configure the displayed information.
1.64 -
1.65 - If 'show_start' is set to a true value, the start details will be shown;
1.66 - otherwise, the end details will be shown.
1.67 - """
1.68 + page.td.close()
1.69
1.70 - page = self.page
1.71 - _name = self.element_name
1.72 -
1.73 - try:
1.74 - p = event_period_from_period(period)
1.75 - except PeriodError, exc:
1.76 - affected = False
1.77 - else:
1.78 - affected = p.is_affected(recurrenceid)
1.79 -
1.80 - period = form_period_from_period(period)
1.81 -
1.82 - css = " ".join([
1.83 - period.replaced and "replaced" or "",
1.84 - affected and "affected" or ""
1.85 - ])
1.86 -
1.87 - formdate = show_start and period.get_form_start() or period.get_form_end()
1.88 - dt = formdate.as_datetime()
1.89 - if dt:
1.90 - page.td(class_=css)
1.91 - if show_start:
1.92 - self.date_controls(_name("dtstart", "recur", index), period.get_form_start(), read_only=True)
1.93 - self.show_recurrence_state(index, period)
1.94 - else:
1.95 - self.date_controls(_name("dtend", "recur", index), period.get_form_end(), show_tzid=False, read_only=True)
1.96 - page.td.close()
1.97 - else:
1.98 - page.td("(Unrecognised date)")
1.99 -
1.100 - def show_recurrence_state(self, index, period):
1.101 + def show_period_state(self, index, period):
1.102
1.103 "Insert at 'index' additional state held by 'period'."
1.104
1.105 - self.control("recur-origin", "hidden", period.origin or "")
1.106 - self.control("recur-replaced", "hidden", period.replaced and str(index) or "")
1.107 - self.control("recur-id", "hidden", period.recurrenceid or "")
1.108 + if index is not None:
1.109 + prefix = "recur"
1.110 + index = str(index)
1.111 + else:
1.112 + prefix = "main"
1.113 + index = "0"
1.114 +
1.115 + if index is not None:
1.116 + self.control("%s-origin" % prefix, "hidden", period.origin or "")
1.117 +
1.118 + self.control("%s-cancelled" % prefix, "hidden", period.cancelled and index or "")
1.119 + self.control("%s-replacement" % prefix, "hidden", period.replacement and index or "")
1.120 + self.control("%s-id" % prefix, "hidden", period.recurrenceid or "")
1.121
1.122 # vim: tabstop=4 expandtab shiftwidth=4