UI help needed: Recurring events form usability
As a part of the effort of getting a good solid implementation of recurring events into Plone, we need a user interface to enter the date, time and recurring events information. Not only does the current UI of p4a.plonevent lack important recurrence features, the Plone event ui for entering the start and end times of an event is in itself way to primitive. So this is an opportunity for non-coders to help the Plone community with a development issue.
The start/end day UI should support the following four scenarios, and show different inputs depending on scenario:
- Events that have only a start time
- Events that have both a start and an end time on the same day
- Events that spans one or several days, and
- All day events that have only date and no time information.
One way to do this is to have checkboxes, like “no duration” to turn off the end-time inputs, and and another for “ends on the same day” (checked by default) and nother for “all-day event”. Or, maybe that should be a list of radio-buttons. “No end time/ends same day/ends another day/all-day event”. I’m not a usability guy, I don’t know which is best. You decide. Maybe there is a third better option.
Also, you should be able to somehow expand the recurrence information for recurring events, for example by checking a “This even recurs” checkbox or something similar. The recurrence features that are needed are
- Recurrence frequency: daily/weekly/monthly/yearly (no, per hour, minute or seconds are not supported)
- Recurrence interval: if it’s every day/week/month year or just every Nth
- The recurrence type: For monthly and yearly recurrences we need to be able to select between some rules for recurrence, for example: should a monthly recurrence always be the 3rd, or always the 1st tuesday. Should the yearly recurrence be always on the specific date, or on the specific day of the year (not the same thing on leap years) or if it should always be on the same offset relative to easter sunday
- An end-time for the recurrencs or a recurrence count.
Nice things, but completely optional, would be a way to manage recurrence exceptions.
So, make your suggestion, you are wlecome to rip off existing solutions if you want. Design a UI for this that has the above features and is nice and usable. It doesn’t have to be pretty, it’s not a design competion, but a usability competition. We’ll then get somebody to implement a widget that implements your form, and I’ll put it into p4a.plonevent.