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 in
http://www.mhsoftware.com/caldemo/
this software is closed source and made with php

klick to see full picture


weekly event

mh-recurrence-weekly.png


monthly events

mh-recurrence-monthly.png

annual events

mh-recurrence-annual.png


event on specific dates

mh-recurrence-specific.png


event exceptions

mh-recurrence-exceptions.png




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/

hda-calportlet.png

besides, the content in a div with scrollbars (overflow...) slows down scrolling it a lot. only on firefox and only on linux.

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.

hda-edit.png


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.
g24-edit.png

frontend

categories in colors. interface in german.
g24-kalender.png




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.html
Add notes to a specific recurrence without affecting the others
recurrence realised---
--------with object duplication?
-----without object duplication?

exceptions

http://www.snailsource.com/calpro/index.html
Split 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.html
Additional "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