thet "wiki" recurring/events
by
johannes raggam
—
last modified
Jan 30, 2007 01:45 PM
the document describes some recurring related use-cases and gives some examples how other project solved it in the UI. at the end there are also some other ideas, quick-notes of events and calenders in general.
recurrence is a difficult use case.
like...
...an exhibition in a gallery:
date: exhibition from 27.01 until 10.02, except sundays
and mondays,
time: 10:00am to 20:00pm except saturday:11:00am-18:00pm
even with a vernissage and finissage, special events at opening and closing. but these could also be special events and/or extra text
...the playing dates of a theater group:
12.01, 15.01, 16.01, 18.01, 20.01, 21.01, 22.01, 05.02, 08.02
thats common. could be solved with exceptions.
input of events
here is how reccurence from the UI point of view is solved inhttp://www.mhsoftware.com/caldemo/
this software is closed source and made with php
klick to see full picture
weekly event

monthly events

annual events

event on specific dates

event exceptions

this is how i solved it for a architecture gallery in graz
here is plones built in recurring mode used (start and end date on diff. days. ---- so events between become all day events)events are in background-green and with border, events after startdate (recuring) are only links, the current week is background-green.
i mmmonkeypatched the pagetemplates with python code
http://hda-graz.at/

input
note the "veranstaltungsort" - venue - its a reference to a address-card.this is actually an custom product made with archetypes. has also picute upload. registered portal-events, so they are shown in the calendar.

data input form on g24.at
g24.at is a community site in graz with 2000user and 4000events. it uses postnuke (a popular nuke fork) which runs with php and mysql.the calendar is postcalendar (it was a long time a reference for calendars --> for me). interface in german.
fields regarding recurring:
wiederholung: recurring
field and how they are set:
- no recurring (selected)
- repeat every 2nd (1 means every day - 2nd, 3rd, 4th,.. day) day (week/month,...)
- every first sunday every 2nd month
- recur until 2007-01-01
- no enddate (selected)
whoo, expensive sql calls.

frontend
categories in colors. interface in german.
calendar feature ideas
anything can be an event
like a forum post: http://www.snailsource.com/calpro/ --- this is a calendar add on for phpBB discussion board.think of an forum entry, which announces an event. the community wants to comment on that. this forum entry could have a checkbox/button which gives it in start/enddate and let it show up in the calendar.
specific notes on the recurring event
http://www.snailsource.com/calpro/index.htmlAdd notes to a specific recurrence without affecting the othersrecurrence realised---
--------with object duplication?
-----without object duplication?
exceptions
http://www.snailsource.com/calpro/index.htmlSplit a specific recurrence out of a "chain" (useful if for example a normal Monday meeting has been moved to Tuesday for one week only)---exceptions
-- values in tuples -> efficient data structure ...>indexing?,representation in zodb --> is it serialized and hard to index? (maybe not)
-- oject duplication -> hard to handle
--- hard to query, bad for zodb performance
overlapping, validation of recurrence
http://www.snailsource.com/calpro/index.htmlAdditional "sanity checks" to make sure recurring events don't overlap, etc..----validation at edit/save
granulation of recurrence
- finest granulation of date/time of an event: minutes- finest granulation of recurrence: days
this is a limitation - i don't really know how important this is.
--------
schema of an event content type (or derivative, subclass)
- address via reference addressbook- picture
- many pictures / album -> via reference or directly in folderish event
links
http://www.mhsoftware.com/caldemo/http://www.mhsoftware.com/caldemo/manual/en/291.htm
http://www.mhsoftware.com/caldemo/manual/en/298.htm
http://www.mhsoftware.com/caldemo/manual/en/BulkExceptionAdd.htm
http://www.mhsoftware.com/caldemo/manual/en/300.htm
http://www.mhsoftware.com/features.html
http://wiki.typo3.org/index.php/Calendar
http://www.snailsource.com/calpro/index.html
