# HG changeset patch # User Paul Boddie # Date 1238369865 -7200 # Node ID 77ef65cf6512788480813360800c6c5123c2810f # Parent 88b83d2632b3db12752f62fa6695f1ecbe320045 Tidied up event listings, sorting events and showing the principal details. diff -r 88b83d2632b3 -r 77ef65cf6512 macros/EventAggregator.py --- a/macros/EventAggregator.py Sun Mar 29 22:34:33 2009 +0200 +++ b/macros/EventAggregator.py Mon Mar 30 01:37:45 2009 +0200 @@ -416,29 +416,59 @@ output.append(fmt.bullet_list(on=1, attr={"class" : "event-month-listings"})) + # Get the events in order. + + ordered_events = [] + for event_page, event_details in shown_events.get((year, month), []): + ordered_events.append((event_details["start"], event_details["end"], (event_page, event_details))) + ordered_events.sort(lambda x, y: cmp((x[0], x[1]), (y[0], y[1]))) + + # Show the events in order. + + for start, end, (event_page, event_details) in ordered_events: event_summary = EventAggregatorSupport.getEventSummary(event_page, event_details) output.append(fmt.listitem(on=1, attr={"class" : "event-listing"})) # Link to the page using the summary. + output.append(fmt.paragraph(on=1)) output.append(event_page.link_to_raw(request, wikiutil.escape(event_summary))) + output.append(fmt.paragraph(on=0)) + + # Start and end dates. - # Add the event details. + output.append(fmt.paragraph(on=1)) + output.append(fmt.span(on=1)) + output.append(fmt.text("%04d-%02d-%02d" % event_details["start"])) + output.append(fmt.span(on=0)) + output.append(fmt.text(" - ")) + output.append(fmt.span(on=1)) + output.append(fmt.text("%04d-%02d-%02d" % event_details["end"])) + output.append(fmt.span(on=0)) + output.append(fmt.paragraph(on=0)) - output.append(fmt.definition_list(on=1, attr={"class" : "event-details"})) + # Location. - for key, value in event_details.items(): - output.append(fmt.definition_term(on=1)) - output.append(fmt.text(key)) - output.append(fmt.definition_term(on=0)) - output.append(fmt.definition_desc(on=1)) - output.append(fmt.text(unicode(value))) - output.append(fmt.definition_desc(on=0)) + if event_details.has_key("location"): + output.append(fmt.paragraph(on=1)) + output.append(fmt.text(event_details["location"])) + output.append(fmt.paragraph(on=1)) + + # Topics. - output.append(fmt.definition_list(on=0)) + if event_details.has_key("topics") or event_details.has_key("categories"): + output.append(fmt.bullet_list(on=1, attr={"class" : "event-topics"})) + + for topic in event_details.get("topics") or event_details.get("categories"): + output.append(fmt.listitem(on=1)) + output.append(fmt.text(topic)) + output.append(fmt.listitem(on=0)) + + output.append(fmt.bullet_list(on=0)) + output.append(fmt.listitem(on=0)) output.append(fmt.bullet_list(on=0))