plone.app.event is the calendaring implementation for Plone. It provides Event Content Types (Archetypes based as well as Dexterity Behaviors), Timezone support, RFC5545 icalendar export, Recurrence support and a lot more.
The ATContentType and dexterity features are automatically enabled depending on installed packages.
Installation for Plone 4.1
To install plone.app.event for Plone 4.1, please use the plone.app.event-ploneintegration package from pypi. Include it in your buildout config or in your integration package's setup.py and apply the "plone.app.event Plone4 integration" profile. The plone.app.event-ploneintegration package pulls all dependencies, which are needed for plone.app.event.
Warning
!!! Backup! Don't do this on a Plone setups in production, only install plone.app.event for new setups or report any upgrade issues. Upgrading is yet not tested and no upgrade steps are provided - this is still a task to do. Expect weired behavior regarding date/time/timezones and any other bugs. !!!
What to do
Add some events. Add some with recurrence - but limit the occurences or write bug reports. Add some in different timezones and write bug reports. Add the calendar portlet - shows published events. Write bug reports.
Go to the event controlpanel and try different settings. Download events as ical. Install dexterity, apply the plone.app.event dexterity profile and start using the provided behaviors.
If possible, write fix code and write tests.
Please note, allowing pull requests needs that she/he must have signed the contributor agreement.
Bug reporting
Please report bugs here: https://github.com/collective/plone.app.event
This url may change to https://github.com/plone/plone.app.event some time soon!
Installation from the sources
R/W checkout from github: $ git clone git@github.com:collective/plone.app.event.github
R/O checkouts: $ git clone git://github.com/collective/plone.app.event.git
If you want to install plone.app.event from the sources for development, run the provided buildout files - and read the sources.
python bootstrap.cfg -d
For Plone 4.1 and standard ATContentTypes $ ./bin/buildout -c alpha.cfg
Or do a Normal build $ ./bin/buildout -c buildout.cfg
Or do a development build with R/W checkouts $ ./bin/buildout -c dev.cfg
There is also a dexterity.cfg buildout configuration, which can be used to extend another buildout and install the Dexterity flavor of plone.app.event.
Start $ ./bin/instance fg
After fireing up the Zope instance, visit the ZMI and create a Plone site. The plone.app.event's Archetypes profile would automatically be installed due to the Products.CMFPlone branch, but please import plone.app.event's dexterity profile also. This way, the dexterity behaviors are registered and an example Dexterity event type is installed.
Product's homepage
Requirements:
· Python
· Plone CMS
Limitations:
· Incomplete tests.
· There is may be one Unicode/Encoding issue with non-ascii chars when exporting to iCal.
· Allowing unlimited occurences for recurring events break at 30000 iterations and take a long time. Solution: not allowing unlimited occurences, breaking earlier.
What's New in This Release: [ read full changelog ]
· Don't show plone.app.event:default and plone.app.event.ploneintegration:prepare profiles when creating a Plone site with @@plone-addsite. [thet]
· Remove render_cachekey from portlet_events, since it depends on an undocumented internal _data structure, which must contain catalog brains. [thet]
· In tests, use AbstractSampleDataEvents as base class for tests, which depend on AT or DX event content. [thet]
· Introduce create and edit functions in IEventAccessor objects. [thet]
API Refactorings. In base.py:
· get_portal_events and get_occurrences_from_brains combined to get_events.
· get_occurrences_by_date refactored to construct_calendar.
Renamings:
· default_start_dt -> default_start,
· default_end_dt -> default_end,
· cal_to_strftime_wkday -> wkday_to_mon1,
· strftime_to_cal_wkday -> wkday_to_mon0.
Remove:
· default_start_DT (use DT(default_start()) instead),
· default_end_DT (use DT(default_end()) instead),
· first_weekday_sun0 (use wkday_to_mon1(first_weekday()) instead),
· default_tzinfo (use default_timezone(as_tzinfo=True) instead).
In ical:
· Renamed construct_calendar to construct_icalendar to avoid same name as in base.py.
· BBB code will be removed with 1.0. [thet]
· Update translations and translate event_view and event_listing. [thet]
· Configure event_listing to be an available view on Collections, Folders, Plone Sites and Topics. [thet]
· Depend on plone.app.dextterity in ZCML, so that all DublinCore metadata behaviors are set up correctly. [thet]
· Backport from seanupton: IObjectModifiedEvent subscriber returns early on newly created event (Commit c60c8b521c6b1ca219bfeaddb08e26605707e17 on https://github.com/seanupton/plone.app.event). [seanupton]
· Calendar portlet tooltips css optimizations: max-with and z-index. [thet]
· Add Brazilian Portuguese translation [ericof]
· Add ical import feature, register action to enable it and add a object tab to the @@ical_import_settings form. .ics files can be uploaded or fetched from the net from other calendar servers. [thet]
· Since more ical related code is upcoming (importer), add ical subpackage and move ical related code in here. [thet]
· When exporting whole_day/all day events to icalendar, let them end a day after at midnight instead on the defined day one second before midnight. This behavior is the preferred method of exporting all day events to icalendar. [thet]
· Additionally to the 'date' parameter, allow passing of year, month and day query string parameters to the event_listing view and automatically set the mode to 'day' if a date was passed. [thet]
· Backport from plone.app.portlets: Don't fail on invalid (ambigous) date information in request (Commit a322676 on plone.app.portlets). [tomgross]
· Backport from plone.app.portlets: Use str view names for getMultiAdapter calls (commit c296408 on plone.app.portlets). [wichert]