# HG changeset patch # User Paul Boddie # Date 1444839781 -7200 # Node ID d220d0bbecdcbaccfcdf5b98ef48daa0aa6df06e # Parent 49e786eda736e8b623f1ca7319db6af04740f4c3 Present suggested attendees and periods only when new attendees and different periods are actually provided. diff -r 49e786eda736 -r d220d0bbecdc imipweb/event.py --- a/imipweb/event.py Wed Oct 14 18:00:04 2015 +0200 +++ b/imipweb/event.py Wed Oct 14 18:23:01 2015 +0200 @@ -565,85 +565,89 @@ # Get suggested periods. - suggested_periods[attendee] = self.get_periods(obj) + periods = self.get_periods(obj) + if set(periods).difference(self.get_periods(self.obj)): + suggested_periods[attendee] = periods # Present the suggested attendees. - page.p("The following attendees have been suggested for this event:") + if suggested_attendees: + page.p("The following attendees have been suggested for this event:") - page.table(cellspacing=5, cellpadding=5, class_="counters") - page.thead() - page.tr() - page.th("Attendee") - page.th("Suggested by...") - page.tr.close() - page.thead.close() - page.tbody() + page.table(cellspacing=5, cellpadding=5, class_="counters") + page.thead() + page.tr() + page.th("Attendee") + page.th("Suggested by...") + page.tr.close() + page.thead.close() + page.tbody() - suggested_attendees = list(suggested_attendees.items()) - suggested_attendees.sort() + suggested_attendees = list(suggested_attendees.items()) + suggested_attendees.sort() - for suggested, attendees in suggested_attendees: - page.tr() - page.td(suggested) - page.td(", ".join(attendees)) - page.tr.close() + for suggested, attendees in suggested_attendees: + page.tr() + page.td(suggested) + page.td(", ".join(attendees)) + page.tr.close() - page.tbody.close() - page.table.close() + page.tbody.close() + page.table.close() # Present the suggested periods. - page.p("The following periods have been suggested for this event:") + if suggested_periods: + page.p("The following periods have been suggested for this event:") - page.table(cellspacing=5, cellpadding=5, class_="counters") - page.thead() - page.tr() - page.th("Periods", colspan=2) - page.th("Suggested by...", rowspan=2) - page.tr.close() - page.tr() - page.th("Start") - page.th("End") - page.tr.close() - page.thead.close() - page.tbody() + page.table(cellspacing=5, cellpadding=5, class_="counters") + page.thead() + page.tr() + page.th("Periods", colspan=2) + page.th("Suggested by...", rowspan=2) + page.tr.close() + page.tr() + page.th("Start") + page.th("End") + page.tr.close() + page.thead.close() + page.tbody() - suggested_periods = list(suggested_periods.items()) - suggested_periods.sort() + suggested_periods = list(suggested_periods.items()) + suggested_periods.sort() - for attendee, periods in suggested_periods: - first = True - for p in periods: - identifier = "%s-%s" % (format_datetime(p.get_start_point()), format_datetime(p.get_end_point())) - css = identifier == counter and "selected" or "" - - page.tr(class_=css) + for attendee, periods in suggested_periods: + first = True + for p in periods: + identifier = "%s-%s" % (format_datetime(p.get_start_point()), format_datetime(p.get_end_point())) + css = identifier == counter and "selected" or "" + + page.tr(class_=css) - start = self.format_datetime(to_timezone(p.get_start(), tzid), "long") - end = self.format_datetime(to_timezone(p.get_end(), tzid), "long") + start = self.format_datetime(to_timezone(p.get_start(), tzid), "long") + end = self.format_datetime(to_timezone(p.get_end(), tzid), "long") - # Show each period. + # Show each period. - page.td(start) - page.td(end) + page.td(start) + page.td(end) - # Show attendees and controls alongside the first period in each - # attendee's collection. + # Show attendees and controls alongside the first period in each + # attendee's collection. - if first: - page.td(attendee, rowspan=len(periods)) - page.td(rowspan=len(periods)) - self.control("accept-%d" % i, "submit", "Accept") - self.control("decline-%d" % i, "submit", "Decline") - self.control("counter", "hidden", attendee) - page.td.close() + if first: + page.td(attendee, rowspan=len(periods)) + page.td(rowspan=len(periods)) + self.control("accept-%d" % i, "submit", "Accept") + self.control("decline-%d" % i, "submit", "Decline") + self.control("counter", "hidden", attendee) + page.td.close() - page.tr.close() - first = False + page.tr.close() + first = False - page.tbody.close() - page.table.close() + page.tbody.close() + page.table.close() def show_conflicting_events(self):