paul@6 | 1 | Introduction
|
paul@6 | 2 | ------------
|
paul@6 | 3 |
|
paul@6 | 4 | The EventAggregator macro for MoinMoin can be used to display event calendars
|
paul@6 | 5 | or listings which obtain their data from pages belonging to specific
|
paul@20 | 6 | categories (such as CategoryEvents). The start and end dates are read from the
|
paul@6 | 7 | page describing each event, and the calendar is automatically filled out with
|
paul@6 | 8 | the details of each event, colouring each event period in a specially
|
paul@6 | 9 | generated colour.
|
paul@6 | 10 |
|
paul@44 | 11 | The EventAggregatorSummary action can be used to provide iCalendar and RSS
|
paul@44 | 12 | summaries of event data based on pages belonging to specific categories, as
|
paul@44 | 13 | described above. The category, start and end parameters are read directly from
|
paul@44 | 14 | the request as URL or form parameters: these restrict the extent of each
|
paul@44 | 15 | generated summary.
|
paul@10 | 16 |
|
paul@47 | 17 | The EventAggregatorNewEvent action can be used to conveniently create new
|
paul@47 | 18 | event pages, displaying a simple form which can be filled out in order to
|
paul@47 | 19 | provide elementary event details such as the event title or summary, the
|
paul@47 | 20 | categories to which the page will be assigned, and the start and end dates of
|
paul@47 | 21 | the event.
|
paul@47 | 22 |
|
paul@88 | 23 | The eventfeed script can be used to import events from RSS feeds, inserting
|
paul@88 | 24 | new pages into a Wiki.
|
paul@88 | 25 |
|
paul@80 | 26 | Important Notices
|
paul@80 | 27 | -----------------
|
paul@80 | 28 |
|
paul@148 | 29 | Release 0.6.2 fixes various bugs in HTML production done by the actions. It is
|
paul@153 | 30 | strongly recommended to upgrade from earlier versions to this or a later
|
paul@153 | 31 | release.
|
paul@137 | 32 |
|
paul@148 | 33 | In release 0.6.2, support for MoinMoin 1.5.x has been dropped. Since usage of
|
paul@117 | 34 | the Xapian search software is practically a necessary part of deploying this
|
paul@117 | 35 | solution, and yet Xapian only became integrated with MoinMoin from version 1.6
|
paul@117 | 36 | onwards, few deployments should have involved MoinMoin 1.5.x.
|
paul@117 | 37 |
|
paul@102 | 38 | In release 0.6, support for event times has been introduced. Due to the
|
paul@102 | 39 | complicated nature of times, time zones, time regimes, and so on, the
|
paul@102 | 40 | behaviour of the software may change in future versions to support common
|
paul@102 | 41 | use-cases in a more convenient fashion. Please be aware that implicitly chosen
|
paul@102 | 42 | or generated time or time zone information may change for events, particularly
|
paul@106 | 43 | those whose times are ambiguous or ill-defined. It is highly recommended that
|
paul@106 | 44 | the pytz library be installed - see the documentation regarding dependencies
|
paul@106 | 45 | for more information.
|
paul@102 | 46 |
|
paul@80 | 47 | In release 0.5, the "download this calendar" and "subscribe to this calendar"
|
paul@80 | 48 | links have been fixed to return only events within the specified period and to
|
paul@80 | 49 | work with day- and month-relative calendars. Users who have bookmarks in their
|
paul@80 | 50 | Web browser or feed reader should replace these bookmarks by visiting the
|
paul@88 | 51 | bookmarked page and acquiring new versions of these links, once
|
paul@88 | 52 | EventAggregator has been upgraded.
|
paul@80 | 53 |
|
paul@6 | 54 | Installation
|
paul@6 | 55 | ------------
|
paul@6 | 56 |
|
paul@90 | 57 | To install the support library and MoinMoin-related scripts, consider using
|
paul@144 | 58 | the moinsetup tool. See the "Recommended Software" section below for more
|
paul@144 | 59 | information.
|
paul@144 | 60 |
|
paul@144 | 61 | With moinsetup and a suitable configuration file, the installation is done as
|
paul@144 | 62 | follows with $EADIR referring to the EventAggregator distribution directory
|
paul@144 | 63 | containing this README.txt file:
|
paul@10 | 64 |
|
paul@144 | 65 | python moinsetup.py -f moinsetup.cfg install_extension_package $EADIR
|
paul@144 | 66 | python moinsetup.py -f moinsetup.cfg install_actions $EADIR/actions
|
paul@144 | 67 | python moinsetup.py -f moinsetup.cfg install_macros $EADIR/macros
|
paul@144 | 68 | python moinsetup.py -f moinsetup.cfg install_theme_resources $EADIR
|
paul@144 | 69 | python moinsetup.py -f moinsetup.cfg edit_theme_stylesheet screen.css event-aggregator.css
|
paul@144 | 70 | python moinsetup.py -f moinsetup.cfg edit_theme_stylesheet print.css event-aggregator.css
|
paul@144 | 71 | python moinsetup.py -f moinsetup.cfg edit_theme_stylesheet print.css event-aggregator-print.css
|
paul@10 | 72 |
|
paul@144 | 73 | The first command above uses the setup.py script provided as follows:
|
paul@10 | 74 |
|
paul@10 | 75 | python setup.py install --prefix=path-to-moin-prefix
|
paul@10 | 76 |
|
paul@144 | 77 | The second and third commands install the actions and macros respectively.
|
paul@6 | 78 |
|
paul@144 | 79 | The fourth command installs the theme resources in the available theme
|
paul@144 | 80 | directories.
|
paul@10 | 81 |
|
paul@144 | 82 | The remaining commands activate the styles provided by EventAggregator by
|
paul@144 | 83 | editing the screen.css and print.css files which are typically provided by
|
paul@144 | 84 | themes. These commands add imports of the following form to the theme
|
paul@144 | 85 | stylesheets:
|
paul@10 | 86 |
|
paul@10 | 87 | @import "event-aggregator.css";
|
paul@10 | 88 |
|
paul@27 | 89 | Useful Pages
|
paul@27 | 90 | ------------
|
paul@27 | 91 |
|
paul@27 | 92 | The pages directory contains a selection of useful pages using a syntax
|
paul@27 | 93 | appropriate for use with MoinMoin 1.6 or later. These pages can be created
|
paul@144 | 94 | through the Wiki and their contents copied in from each of the files. An
|
paul@144 | 95 | easier installation method is to issue the following commands:
|
paul@144 | 96 |
|
paul@144 | 97 | python moinsetup.py -f moinsetup.cfg make_page_package pages pages.zip
|
paul@144 | 98 | python moinsetup.py -f moinsetup.cfg install_page_package pages.zip
|
paul@144 | 99 |
|
paul@144 | 100 | You may need to switch user in order to have sufficient privileges to copy the
|
paul@144 | 101 | page package into the Wiki.
|
paul@27 | 102 |
|
paul@203 | 103 | Resource Pages
|
paul@203 | 104 | --------------
|
paul@203 | 105 |
|
paul@203 | 106 | For the map view, some resource pages are provided with EventAggregator.
|
paul@203 | 107 | Unlike the help pages which are most likely to be left unedited, the resource
|
paul@203 | 108 | pages should be modified and updated with additional map and place details.
|
paul@203 | 109 | Consequently, upgrading these pages is not necessarily desirable when new
|
paul@203 | 110 | releases of EventAggregator are made available, and thus these pages are kept
|
paul@203 | 111 | separate from the help pages.
|
paul@203 | 112 |
|
paul@203 | 113 | To install the resource pages, use the following commands:
|
paul@203 | 114 |
|
paul@203 | 115 | python moinsetup.py -f moinsetup.cfg make_page_package resource_pages resource_pages.zip
|
paul@203 | 116 | python moinsetup.py -f moinsetup.cfg install_page_package resource_pages.zip
|
paul@203 | 117 |
|
paul@203 | 118 | You may need to switch user in order to have sufficient privileges to copy the
|
paul@203 | 119 | page package into the Wiki.
|
paul@203 | 120 |
|
paul@10 | 121 | Using the Macro
|
paul@10 | 122 | ---------------
|
paul@10 | 123 |
|
paul@117 | 124 | It should now be possible to edit pages and use the macro as follows:
|
paul@6 | 125 |
|
paul@20 | 126 | <<EventAggregator(CategoryEvents)>>
|
paul@6 | 127 |
|
paul@6 | 128 | As arguments to the macro, you must indicate a comma-separated list of
|
paul@6 | 129 | categories to be inspected for event data. For example:
|
paul@6 | 130 |
|
paul@20 | 131 | <<EventAggregator(CategoryEvents,CategoryTraining)>>
|
paul@6 | 132 |
|
paul@6 | 133 | By default, this should display a calendar in a collection of tables, one for
|
paul@6 | 134 | each month containing events. To show a collection of month-by-month listings,
|
paul@6 | 135 | use the 'mode' argument as follows:
|
paul@6 | 136 |
|
paul@20 | 137 | <<EventAggregator(CategoryEvents,mode=list)>>
|
paul@20 | 138 |
|
paul@20 | 139 | See pages/HelpOnEventAggregator for more detailed information.
|
paul@6 | 140 |
|
paul@47 | 141 | Using the Actions
|
paul@47 | 142 | -----------------
|
paul@6 | 143 |
|
paul@20 | 144 | To obtain an iCalendar summary, the EventAggregatorSummary action can be
|
paul@20 | 145 | selected from the actions menu on any page. Alternatively, a collection of
|
paul@24 | 146 | parameters can be specified in the URL of any Wiki page.
|
paul@6 | 147 |
|
paul@24 | 148 | See pages/HelpOnEventAggregatorSummary for more detailed information.
|
paul@6 | 149 |
|
paul@47 | 150 | To create new events using the EventAggregatorNewEvent action, the appropriate
|
paul@47 | 151 | menu entry can be selected in the actions menu. Alternatively, clicking on a
|
paul@47 | 152 | day number in a calendar view will invoke the action and pre-fill the form
|
paul@47 | 153 | with the start date set to the selected day from the calendar.
|
paul@47 | 154 |
|
paul@47 | 155 | See pages/HelpOnEventAggregatorNewEvent for more detailed information.
|
paul@47 | 156 |
|
paul@88 | 157 | Running the Scripts
|
paul@88 | 158 | -------------------
|
paul@88 | 159 |
|
paul@88 | 160 | To import events from an RSS feed, the eventfeed script integrated with the
|
paul@88 | 161 | moin program can be used as follows:
|
paul@88 | 162 |
|
paul@88 | 163 | moin --config-dir=path-to-wiki --wiki-url=example.com/ \
|
paul@88 | 164 | import eventfeed --url=url-of-events-feed
|
paul@88 | 165 |
|
paul@88 | 166 | Thus, to import events from the FSFE events RSS feed, the following command
|
paul@88 | 167 | could be used:
|
paul@88 | 168 |
|
paul@88 | 169 | moin --config-dir=path-to-wiki --wiki-url=example.com/ \
|
paul@88 | 170 | import eventfeed --url=http://www.fsfe.org/events/events.en.rss
|
paul@88 | 171 |
|
paul@88 | 172 | If this command is being used with sudo, make sure to use the -u option so
|
paul@88 | 173 | that the script can operate as the appropriate user. For example:
|
paul@88 | 174 |
|
paul@88 | 175 | sudo -u www-data moin --config-dir=path-to-wiki --wiki-url=example.com/ \
|
paul@88 | 176 | import eventfeed --url=http://www.fsfe.org/events/events.en.rss
|
paul@88 | 177 |
|
paul@88 | 178 | It may also be necessary to set PYTHONPATH directly before the moin program
|
paul@88 | 179 | name and even to explicitly use the path to that program.
|
paul@88 | 180 |
|
paul@6 | 181 | Recommended Software
|
paul@6 | 182 | --------------------
|
paul@6 | 183 |
|
paul@144 | 184 | The moinsetup tool is recommended for installation since it aims to support
|
paul@144 | 185 | all versions of MoinMoin that are supported for use with this software.
|
paul@144 | 186 |
|
paul@144 | 187 | See the following page for information on moinsetup:
|
paul@144 | 188 |
|
paul@144 | 189 | http://moinmo.in/ScriptMarket/moinsetup
|
paul@144 | 190 |
|
paul@6 | 191 | The Xapian search software is highly recommended, if not technically
|
paul@6 | 192 | essential, for the acceptable performance of the EventAggregator macro since
|
paul@6 | 193 | the macro makes use of search routines in MoinMoin that can dominate the time
|
paul@6 | 194 | spent processing requests.
|
paul@6 | 195 |
|
paul@6 | 196 | See the following page for information on Xapian and MoinMoin:
|
paul@6 | 197 |
|
paul@6 | 198 | http://moinmo.in/HelpOnXapian
|
paul@6 | 199 |
|
paul@6 | 200 | Troubleshooting
|
paul@6 | 201 | ---------------
|
paul@6 | 202 |
|
paul@6 | 203 | See here for a bug related to category recognition:
|
paul@6 | 204 |
|
paul@6 | 205 | http://moinmo.in/MoinMoinBugs/1.7TemplatesNotAppearing
|
paul@6 | 206 |
|
paul@6 | 207 | This affects installations where migrations between versions have occurred,
|
paul@6 | 208 | yet the Wiki configuration retains old regular expression details.
|
paul@6 | 209 |
|
paul@6 | 210 | Contact, Copyright and Licence Information
|
paul@6 | 211 | ------------------------------------------
|
paul@6 | 212 |
|
paul@10 | 213 | See the following Web pages for more information about this work:
|
paul@6 | 214 |
|
paul@6 | 215 | http://moinmo.in/MacroMarket/EventAggregator
|
paul@10 | 216 | http://moinmo.in/ActionMarket/EventAggregator
|
paul@6 | 217 |
|
paul@6 | 218 | The author can be contacted at the following e-mail address:
|
paul@6 | 219 |
|
paul@6 | 220 | paul@boddie.org.uk
|
paul@6 | 221 |
|
paul@6 | 222 | Copyright and licence information can be found in the docs directory - see
|
paul@6 | 223 | docs/COPYING.txt and docs/LICENCE.txt for more information.
|
paul@6 | 224 |
|
paul@106 | 225 | Dependencies
|
paul@106 | 226 | ------------
|
paul@106 | 227 |
|
paul@106 | 228 | EventAggregator has the following basic dependencies:
|
paul@106 | 229 |
|
paul@106 | 230 | Packages Release Information
|
paul@106 | 231 | -------- -------------------
|
paul@106 | 232 |
|
paul@106 | 233 | pytz Tested with 2007k (specifically 2007k-0ubuntu2)
|
paul@106 | 234 | Source: http://pytz.sourceforge.net/
|
paul@106 | 235 |
|
paul@106 | 236 | If time zone handling is not required, pytz need not be installed, but this
|
paul@106 | 237 | may result in iCalendar summaries being produced that provide insufficient
|
paul@106 | 238 | time zone information for the correct interpretation of time information in
|
paul@106 | 239 | those summaries. Thus, it is highly recommended that pytz be installed.
|
paul@106 | 240 |
|
paul@180 | 241 | New in EventAggregator 0.7 (Changes since EventAggregator 0.6.4)
|
paul@153 | 242 | ----------------------------------------------------------------
|
paul@153 | 243 |
|
paul@153 | 244 | * Added a day view which shows events ordered according to their timespans
|
paul@153 | 245 | within each day.
|
paul@192 | 246 | * Added a map view which shows events according to their location. This
|
paul@192 | 247 | requires map images to be uploaded to a designated page, and map locations
|
paul@192 | 248 | to be defined on a designated page.
|
paul@153 | 249 | * Switched to using moinsetup for the installation procedure.
|
paul@180 | 250 | * Introduced formatting of description, location and topic information in
|
paul@180 | 251 | the list and table views and in RSS format summaries.
|
paul@180 | 252 |
|
paul@180 | 253 | New in EventAggregator 0.6.4 (Changes since EventAggregator 0.6.3)
|
paul@180 | 254 | ------------------------------------------------------------------
|
paul@180 | 255 |
|
paul@180 | 256 | * Fixed pop-up element labels where one limit of a calendar has not been
|
paul@180 | 257 | specified.
|
paul@180 | 258 |
|
paul@180 | 259 | New in EventAggregator 0.6.3 (Changes since EventAggregator 0.6.2)
|
paul@180 | 260 | ------------------------------------------------------------------
|
paul@180 | 261 |
|
paul@180 | 262 | * Fixed category membership parsing.
|
paul@180 | 263 | * Fixed open-ended calendars and their pop-up summaries.
|
paul@153 | 264 |
|
paul@148 | 265 | New in EventAggregator 0.6.2 (Changes since EventAggregator 0.6.1)
|
paul@148 | 266 | ------------------------------------------------------------------
|
paul@109 | 267 |
|
paul@136 | 268 | * Fixed HTML encoding in the forms generated by the actions.
|
paul@117 | 269 | * Dropped MoinMoin 1.5.x support, since Xapian search is not available for
|
paul@117 | 270 | that version and is virtually a necessity.
|
paul@109 | 271 | * Fixed form handling to be compatible with MoinMoin 1.9.x, since that
|
paul@109 | 272 | particular release series introduced an incompatible request API that
|
paul@109 | 273 | breaks existing code (no longer providing access to query string
|
paul@109 | 274 | parameters via the form attribute, and only returning single values
|
paul@109 | 275 | unless the new getlist method on form-like objects is used).
|
paul@110 | 276 | * Fixed the direct writing of requests to be compatible with MoinMoin 1.9.
|
paul@113 | 277 | * Added pop-up elements showing information about the calendar/view
|
paul@113 | 278 | resources available for download or subscription.
|
paul@113 | 279 | * Added download/subscription links which open the form associated with the
|
paul@113 | 280 | EventAggregatorSummary action and permit editing of the supplied values.
|
paul@109 | 281 |
|
paul@137 | 282 | New in EventAggregator 0.6.1 (Changes since EventAggregator 0.6)
|
paul@137 | 283 | ----------------------------------------------------------------
|
paul@137 | 284 |
|
paul@137 | 285 | * Fixed HTML encoding in the forms generated by the actions.
|
paul@137 | 286 |
|
paul@82 | 287 | New in EventAggregator 0.6 (Changes since EventAggregator 0.5)
|
paul@82 | 288 | --------------------------------------------------------------
|
paul@82 | 289 |
|
paul@82 | 290 | * Added print stylesheet rules in order to improve the printed versions of
|
paul@82 | 291 | calendars.
|
paul@84 | 292 | * Fixed definition list parsing to handle completely empty definitions
|
paul@84 | 293 | (having no space after the "::" token) which previously captured text from
|
paul@84 | 294 | subsequent lines, and merely empty definitions which previously would have
|
paul@84 | 295 | produced a single empty value for definitions providing lists of values.
|
paul@88 | 296 | * Added a script to import events from RSS feeds.
|
paul@88 | 297 | * Added support for a link entry in event pages, although this does not
|
paul@88 | 298 | replace the link information provided by the RSS and iCalendar summaries.
|
paul@89 | 299 | * Fixed the production of the summaries when pages with no available edit
|
paul@89 | 300 | log information are to be included.
|
paul@102 | 301 | * Added support for event times and time zone/regime information. This is
|
paul@102 | 302 | subject to revision.
|
paul@82 | 303 |
|
paul@65 | 304 | New in EventAggregator 0.5 (Changes since EventAggregator 0.4)
|
paul@65 | 305 | --------------------------------------------------------------
|
paul@65 | 306 |
|
paul@65 | 307 | * Changed the EventAggregatorNewEvent action to substitute only the stated
|
paul@65 | 308 | title, not the full page title, into the new page.
|
paul@66 | 309 | * Changed event colouring to use the event summary as the basis for
|
paul@66 | 310 | calculating the colour used in the calendar. This means that related
|
paul@66 | 311 | events can be coloured identically if their summaries are the same.
|
paul@71 | 312 | * Added support for multiple events on a single event page.
|
paul@71 | 313 | * Introduced EventPage and Event abstractions in order to better support new
|
paul@71 | 314 | features.
|
paul@78 | 315 | * Introduced basic and advanced modes to the EventAggregatorNewEvent action,
|
paul@78 | 316 | along with date swapping to correct cases where the start is given as
|
paul@78 | 317 | being later than the end of an event.
|
paul@77 | 318 | * Fixed the "download this calendar" and "subscribe to this calendar" links
|
paul@77 | 319 | by propagating the "raw" calendar start and end values within the macro.
|
paul@77 | 320 | These links should yield events only within the period defined for a
|
paul@77 | 321 | calendar, not all events in a calendar's categories. This fix also ensures
|
paul@77 | 322 | that the links for year- and month-relative calendars are correct, rather
|
paul@77 | 323 | than the specific links generated previously. Thus, a "this year's events"
|
paul@77 | 324 | link will now continue to produce a resource with the current year's
|
paul@77 | 325 | events, rather than the events from the year when the link was generated.
|
paul@65 | 326 |
|
paul@51 | 327 | New in EventAggregator 0.4 (Changes since EventAggregator 0.3)
|
paul@51 | 328 | --------------------------------------------------------------
|
paul@51 | 329 |
|
paul@51 | 330 | * Added a table view in the macro, using special topic/category styles to
|
paul@51 | 331 | provide background colours for events.
|
paul@56 | 332 | * Added category propagation from calendars to the new event form provided
|
paul@56 | 333 | by the EventAggregatorNewEvent action.
|
paul@56 | 334 | * Added a default template parameter to the macro, employed by the new event
|
paul@56 | 335 | form.
|
paul@56 | 336 | * Added a parent page parameter which is used by the new event form to place
|
paul@56 | 337 | new event pages in a particular location specific to a calendar or
|
paul@56 | 338 | collection of events.
|
paul@56 | 339 | * Improved the presentation of pop-up event information elements.
|
paul@59 | 340 | * Added navigation between display modes (calendar, list and table views).
|
paul@59 | 341 | * Ensured that calendar settings are retained when creating new events for a
|
paul@59 | 342 | calendar.
|
paul@59 | 343 | * Fixed various problems with events not having topics.
|
paul@51 | 344 |
|
paul@45 | 345 | New in EventAggregator 0.3 (Changes since EventAggregator 0.2)
|
paul@45 | 346 | --------------------------------------------------------------
|
paul@45 | 347 |
|
paul@45 | 348 | * Added a parameter to the EventAggregatorSummary action to select the
|
paul@45 | 349 | source of event descriptions for the RSS feed.
|
paul@45 | 350 | * Updated the documentation to cover the RSS support.
|
paul@47 | 351 | * Added the EventAggregatorNewEvent action.
|
paul@45 | 352 |
|
paul@41 | 353 | New in EventAggregator 0.2 (Changes since EventAggregator 0.1)
|
paul@41 | 354 | --------------------------------------------------------------
|
paul@41 | 355 |
|
paul@41 | 356 | * Improved the calendar view in the macro to use the fixed table layout
|
paul@41 | 357 | algorithm and to provide cells spanning potentially many columns for
|
paul@41 | 358 | continuing events. Introduced pop-up elements in order to show truncated
|
paul@41 | 359 | event names.
|
paul@41 | 360 | * Made the "weekly" naming policy the default in the calendar view.
|
paul@41 | 361 | * Improved the list view in the macro.
|
paul@41 | 362 | * Introduced RSS 2.0 feed support.
|
paul@41 | 363 | * Improved the help pages.
|
paul@41 | 364 |
|
paul@6 | 365 | Release Procedures
|
paul@6 | 366 | ------------------
|
paul@6 | 367 |
|
paul@18 | 368 | Update the EventAggregatorSupport.py __version__ attribute and the setup.py
|
paul@18 | 369 | version details.
|
paul@6 | 370 | Change the version number and package filename/directory in the documentation.
|
paul@51 | 371 | Update the setup.py and PKG-INFO files.
|
paul@6 | 372 | Update the release notes (see above).
|
paul@6 | 373 | Tag, export.
|
paul@6 | 374 | Archive, upload.
|
paul@10 | 375 | Update the MacroMarket and ActionMarket (see above for the URLs).
|