The Plone calendar framework
Plone.app.event is the calendaring framework for Plone. It provides Dexterity behaviors and an Archetypes type, Timezone support, RFC5545 icalendar export, Recurrence support, event views and a lot more.
For a Dexterity event type using plone.app.event, use plone.app.contenttypes 1.1 or newer.
The complete documentation can be found on: https://ploneappevent.readthedocs.org
For Standalone installation follow the standard buildout procedure:
$ virtualenv . $ ./bin/pip install -U zc.buildout setuptools pip $ ./bin/buildout
Note, both commands will install a test and development environment.
plone.app.event only provides Dexterity behaviors to build own types based on them. If you want to install a Dexterity based Event type, you can simply use plone.app.contenttypes 1.2a3 or up.
Depend on one (or both) of these setuptools dependencies:
The zcml dependency is be loaded automatically by z3c.autoinclude.
Then install plone.app.event via the controlpanel or by depending on the following GenericSetup profile in metadata.xml:
There are upgrade steps in plone.app.contenttypes for 1.x to 2.0. That has to be revisited and refactored.
The “ploneintegration” setuptools extra, subpackage and GenericSetup profile have been gone. You just need to remove these dependencies from your setup and use the “plone.app.event.at:default” profile instead, if you plan to use the Archetypes based ATEvent type.
Use the provided upgrade steps to upgrade Dexterity behaviors: Attribute storage (Migrate fields from annotation storage to attribute storage) and New IRichText behavior (Enable the new IRichText instead of the IEventSummary behavior).
Please backup before upgrading and check the upgraded contents for validity!
If you want to upgrade Products.ATContentTypes based ATEvents to plone.app.event ones, there is an upgrade step for that: “Upgrades old AT events to plone.app.events” (Metadata version 1 to 2). In order to use it, go to Plone Control Center -> ZMI -> portal_setup -> Upgrades. Select “plone.app.event.at:default” profile and click “Show old upgrades”. Select the upgrade step and run it.
You might also need to “clear and rebuild” the catalog after upgrading. You can do so at Plone Control Center -> ZMI -> portal_catalog -> Advanced (this may take a while)
Upgrade steps to migrate Products.ATContentTypes based ATEvents, plone.app.event based ATEvents or plone.app.event Dexterity example types (plone.app.event.dx.event) to plone.app.contenttypes Dexterity Events can be found within plone.app.contenttypes. This package utilizes plone.app.event’s Dexterity behaviors for it’s Event type.
Don’t forget to set the portal timezone!
After installation, please set your timezone in the @@event-settings controlpanel. Otherwise time calculations are based on UTC and likely wrong for your timezone. Also set the first weekday setting for correct display of the first weekday in calendar views.
This release depends on plone.app.z3cform >= 2.0.1, which is only available for Plone 5.1. This is a backwards incompatible change, which satisfy a major version change for plone.app.event. Consequently, Plone 4 compatibility code will be removed in this release.
[thet, yenzenz, garbas]
Methods used for the event_summary view have has been moved from the event_view to plone.app.event.browser.event_summary. The occurrence_parent_url method has been removed.
The ploneintegration setuptools extra and GenericSetup profile have been removed for this version. This makes an integration into Plone and plone.app.contenttypes easier. Please remove them also in your setup and be sure to depend on plone.app.portlets>=2.5a1!
In the event_view template, the event summary has changed from a table to a definition list layout. The event_view’s next_occurrences method does not return a dictionary anymore, but only a list of next events. Also, the index_html template for Occurrences is renamed to event_view. If you have custom view templates for IEvent or IOccurrence objects, you have to update them.
The plone.app.event.dx.event type has been moved to the plone.app.event:testing profile and the plone.app.event.dx:default profile has been removed. Use plone.app.contenttypes for a Dexterity based Event type, which utilizes plone.app.event’s Dexterity behaviors.
Please note, the next release will have all deprections removed.
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]
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]