1.1 --- a/imip_manager.py Tue Mar 10 22:11:41 2015 +0100
1.2 +++ b/imip_manager.py Tue Mar 10 22:11:50 2015 +0100
1.3 @@ -938,34 +938,7 @@
1.4 else:
1.5 dt, attr = dtend or dtstart, dtend_attr or dtstart_attr
1.6
1.7 - # Show controls for editing as organiser.
1.8 -
1.9 - if is_organiser:
1.10 - value = format_datetime(dt)
1.11 -
1.12 - page.td(class_="objectvalue %s" % field)
1.13 - if name == "DTEND":
1.14 - page.div(class_="dt disabled")
1.15 - page.label("Specify end date", for_="dtend-enable", class_="enable")
1.16 - page.div.close()
1.17 -
1.18 - page.div(class_="dt enabled")
1.19 - self._show_date_controls(field, value, attr)
1.20 - if name == "DTSTART":
1.21 - page.br()
1.22 - page.label("Specify times", for_="dttimes-enable", class_="time disabled enable")
1.23 - page.label("Specify dates only", for_="dttimes-disable", class_="time enabled disable")
1.24 - elif name == "DTEND":
1.25 - page.br()
1.26 - page.label("End on same day", for_="dtend-disable", class_="disable")
1.27 - page.div.close()
1.28 -
1.29 - page.td.close()
1.30 -
1.31 - # Show a label as attendee.
1.32 -
1.33 - else:
1.34 - page.td(self.format_datetime(dt, "full"))
1.35 + self.show_datetime_controls(obj, dt, attr, name == "DTSTART")
1.36
1.37 page.tr.close()
1.38
1.39 @@ -1056,6 +1029,49 @@
1.40
1.41 page.form.close()
1.42
1.43 + def show_datetime_controls(self, obj, dt, attr, is_start_datetime):
1.44 +
1.45 + """
1.46 + Show datetime details from the given 'obj' for the datetime 'dt' and
1.47 + attributes 'attr', showing start details if 'is_start_datetime' is set
1.48 + to a true value. Details will appear as controls for organisers and
1.49 + labels for attendees.
1.50 + """
1.51 +
1.52 + page = self.page
1.53 + is_organiser = get_uri(obj.get_value("ORGANIZER")) == self.user
1.54 +
1.55 + # Show controls for editing as organiser.
1.56 +
1.57 + if is_organiser:
1.58 + value = format_datetime(dt)
1.59 + page.td(class_="objectvalue dt%s" % (is_start_datetime and "start" or "end"))
1.60 +
1.61 + if is_start_datetime:
1.62 + page.div(class_="dt enabled")
1.63 + self._show_date_controls("dtstart", value, attr)
1.64 + page.br()
1.65 + page.label("Specify times", for_="dttimes-enable", class_="time disabled enable")
1.66 + page.label("Specify dates only", for_="dttimes-disable", class_="time enabled disable")
1.67 + page.div.close()
1.68 +
1.69 + else:
1.70 + page.div(class_="dt disabled")
1.71 + page.label("Specify end date", for_="dtend-enable", class_="enable")
1.72 + page.div.close()
1.73 + page.div(class_="dt enabled")
1.74 + self._show_date_controls("dtend", value, attr)
1.75 + page.br()
1.76 + page.label("End on same day", for_="dtend-disable", class_="disable")
1.77 + page.div.close()
1.78 +
1.79 + page.td.close()
1.80 +
1.81 + # Show a label as attendee.
1.82 +
1.83 + else:
1.84 + page.td(self.format_datetime(dt, "full"))
1.85 +
1.86 def handle_new_attendees(self, obj):
1.87
1.88 "Add or remove new attendees. This does not affect the stored object."