# HG changeset patch # User Paul Boddie # Date 1423670781 -3600 # Node ID b0faee5590f9c4f5bdce058d47cc7cfdd197ffe2 # Parent 2b465291b6c848ae0da2774dbbe4cb63ac56d4f9 Handle events with no initial attendees. diff -r 2b465291b6c8 -r b0faee5590f9 imip_manager.py --- a/imip_manager.py Wed Feb 11 17:05:36 2015 +0100 +++ b/imip_manager.py Wed Feb 11 17:06:21 2015 +0100 @@ -253,7 +253,7 @@ to_cancel = [] if added or removed: - attendees = uri_items(self.obj.get_items("ATTENDEE")) + attendees = uri_items(self.obj.get_items("ATTENDEE") or []) if removed: remaining = [] @@ -698,12 +698,12 @@ "Show form controls for a request concerning 'obj'." page = self.page + args = self.env.get_args() is_organiser = get_uri(obj.get_value("ORGANIZER")) == self.user - attendees = uri_dict(obj.get_value_map("ATTENDEE")) - is_attendee = attendees.has_key(self.user) - attendee_attr = attendees.get(self.user) + attendees = uri_values((obj.get_values("ATTENDEE") or []) + args.get("attendee", [])) + is_attendee = self.user in attendees is_request = obj.get_value("UID") in self._get_requests() @@ -733,6 +733,8 @@ page.input(name="cancel", type="submit", value="Cancel") page.p.close() else: + page.p("As attendee, you can perform the following:") + page.p() page.input(name="save", type="submit", value="Save") page.add(" ") @@ -776,7 +778,7 @@ # Add or remove new attendees. # This does not affect the stored object. - existing_attendees = uri_values(obj.get_values("ATTENDEE")) + existing_attendees = uri_values(obj.get_values("ATTENDEE") or []) new_attendees = args.get("added", []) new_attendee = args.get("attendee", [""])[0] @@ -921,14 +923,13 @@ # Handle potentially many values. else: - items = obj.get_items(name) - if not items: - continue - + items = obj.get_items(name) or [] rowspan = len(items) if name == "ATTENDEE": rowspan += len(new_attendees) + 1 + elif not items: + continue page.th(label, class_="objectheading", rowspan=rowspan) @@ -943,7 +944,7 @@ if name in ("ATTENDEE", "ORGANIZER"): value = get_uri(value) - page.td(class_="objectattribute") + page.td(class_="objectvalue") page.add(value) page.add(" ") @@ -962,7 +963,7 @@ page.label("Uninvited", for_="remove-%d" % i, class_="removed") else: - page.td(class_="objectattribute") + page.td(class_="objectvalue") page.add(value) page.td.close() @@ -972,14 +973,21 @@ if is_organiser and name == "ATTENDEE": for i, attendee in enumerate(new_attendees): - page.tr() + if not first: + page.tr() + else: + first = False + page.td() page.input(name="added", type="value", value=attendee) page.input(name="removenew", type="submit", value=attendee, id="removenew-%d" % i, class_="remove") page.label("Remove", for_="removenew-%d" % i, class_="remove") page.td.close() page.tr.close() - page.tr() + + if not first: + page.tr() + page.td() page.input(name="attendee", type="value", value=new_attendee) page.input(name="add", type="submit", value="add", id="add-%d" % i, class_="add")