Not Logged In

plone.app.event 1.0.4

plone.app.event

Plone.app.event is the calendaring framework 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.

Installation

Then install plone.app.event via the controlpanel or by depending on the
following GenericSetup profile in metadata.xml:

plone.app.event:default

For Archetypes, use this one:

plone.app.event.at:default

Don’t use the plone.app.event.dx:default profile, which will be removed in
future versions of plone.app.event. Please create your own type based on
plone.app.event’s Dexterity behaviors (Through the web or via a GenericSetup
profile), or install plone.app.contenttypes for ready-to-use Dexterity types.

Plone 4.2 and 4.3 installation

If you want to install plone.app.event before Plone 5.0 (where it’s included in
core), also depend on the ploneintegration extra:

'plone.app.event [dexterity, ploneintegration]'

or:

'plone.app.event [archetypes, ploneintegration]'

Then run this profile along with the dx or at profile (described above):

plone.app.event.ploneintegration:default

Note

plone.app.event depends on plone.app.portlets>=2.4.0. This version allows
the calendar portlet to do AJAX calls without KSS via standard jQuery. For
Plone < 4.3 you have to fix the plone.app.portlets version in your buildout
to a recent 2.4 version (see below).

Currently the package z3c.unconfigure depends on zope.configuration >=
3.8 but Plone still uses zope.configuration 3.7.4. To successfully install
plone.app.event with it’s ploneintegration extra, you have to make a version
fix in your buildout. Wether fix z3c.unconfigure to 1.0.1 (recommended and
included in this buildout) or fix zope.configuration for example to 4.0.2
(not backwards-compatible).

1.0.2 (2013-11-07)

Fix the path for catalog search in ical importer. This fixes an issue, where
no existing events could be found when importing a ical file again in virtual
hosting environments. Also, search for any existing events, not only what the
user is allowed to see.
[thet]

1.0.1 (2013-11-07)

1.0 (2013-11-06)

The ploneintegration setuptools extra and GenericSetup profiles are
deprecated an will be removed with plone.app.event 1.1.

The plone.app.event.dx.event type and plone.app.event.dx:default profile
are deprecated and will be removed in a future version of plone.app.event.

Implement synchronisation strategies for icalendar import.
[thet]

Implement icalendar import/export synchronisation and add sync_uid index and
sync_uid fields for ATEvent and IEventBasic. This follows RFC5545, chapter
“3.8.4.7. Unique Identifier”. The sync_uid index can also be used for any
other synchronisation tasks, where an external universally unique identifier
is used.
[cillianderoiste, thet]

Restore Javascript based edit-form functionality to set end dates depending
on start dates with the same delta of days as initialized, as developed by
vincentfretin back at plone.app.event’s birth.
[thet]

Deprecate the plone.app.event.dx.event type and plone.app.event.dx:default
profile. Please create your own type based on plone.app.event’s Dexterity
behaviors or use the “Event” type from plone.app.contenttypes. The
plone.app.event:default profile is sufficient also for Dexterity-only based
installations.
[thet]

Remove the behaviors plone.app.relationfield.behavior.IRelatedItems adn
plone.app.versioningbehavior.behaviors.IVersionable from the Dexterity
example type. We don’t depend on these packages and won’t introduce an
explicit dependency on it.
[thet]

In portlet calendar and events, don’t use the search_base directly to
constuct calendar urls. The search base always starts from the Plone site
root, which led to wrong urls in Lineage subsites.
[thet]

Don’t validate end dates for open ended events, so open ended events in the
future can be saved via the form. Fixes #97
[gyst]

Ical importer: Fix default value for imported attendees and categories.
Return an empty tuple instead of None so that the edit form can be rendered.
[cillianderoiste]

Don’t show the event_listing_settings view in the object actions for
event_listings on Collections or Topics, as it doesn’t make sense there.
[thet]

Fix case, where the events, which started before a queried timerange and
lasts into the timerange were not included in the list of event occurrences.
[thet]

Fix wrong result set with “limit” applied in get_events. Limiting for
occurrence-expanded events can just happen after all occurrences are picked
up in the result set, otherwise sorting can mess it up.
[petschki]

In test-setup, explicitly install DateRecurringIndex instead of extending
it’s test layer fixture. This should finally fix #81, where other tests
couldn’t be run when not extending the DRI or PAE test fixture layers.
[thet]

Support the @@images view for IOccurrence objects by using a factory, which
returns a AT or DX specific view depending on the Occurrence’s parent.
[thet]

Switch off linkintegrity checks during upgrade from atct to pae.at.
[jensens]

Remove event and calendar portlet assignments on plone.rightcolumn.
Integrators should do assignments themselfes, as they are likely different
from the standard assignment.
[thet]

Don’t fail, if timezone isn’t set.
[gforcada]

1.0rc3 (2013-08-23)

Fix get_events with ret_mode=3, expand=True, without recurrence
It was returning full object instead of IEventAccesor instances.
This also fix event portlet with norecurrent events.
[toutpt]

1.0rc2 (2013-07-21)

Introduce a BrowserLayer and register all views for it. Avoids view
registration conflicts with other packages.
[thet]

For the recurrence behavior In z3c.form based Dexterity forms, use the
RecurrenceField instead of a plain Text field. This ensures that the
recurrence widget is used even for plain z3c.form forms without form schema
hints. This change is forward-compatible and should not break any existing
installations.
[thet]

In z3c.form based Dexterity forms, use plone.autoform form hints for widget
parameters and remove the ParameterizedWidgetFactory. plone.autoform 1.4
supports widget parameter form hints.
[thet]

In the ATEvent migration step, call ObjectModifiedEvent for each migrated
event to call off the data_postprocessing method, which assures correct time
values in respect to timezones. Please note, the timezone must be set
correctly before!
[thet]

Rename the formated_date and formated_start_date content providers to
have the correct spelling of “formatted”. Doing this change now while this
package’s adoption is not too wide spread.
[thet]

Use same i18n field and error message strings for ATEvent and DX behaviors.
[thet]

Let plone.app.event.base.get_events always do a query with a sort definition,
even if we are in expand mode and do a sort afterwards again. We need this to
get stable results when having a sort_limit applied. Fixes an issue where the
events_portlet did show the next events with an offset of some days.
[thet]

For the event and calendar portlets, use UberSelectionWidget to select the
search base path to make this field actually usable.
[thet]

Remove ICalendarLinkbase adapter, which provided URLs to a calendar view.
Instead, for event and calendar portlet links, the searchbase setting path
is used to link to it or as fallback to call event_listing on ISite root.
[thet]

As like in event_view, use the get_location function for supporting location
references in event_listing and portlet_events. Implement get_location just
as a simple wrapper - handling of references must be provided by external
packages, like collective.venue.
[thet]

In event_listing views in “past” or “all” modes, do a reverse sort on the
results, starting with newest events.
[thet]

Create an Python based import step to properly set up the portal catalog.
This avoids clearing the index after importing a catalog.xml. This import
steps obsoletes the ploneintegration catalog.xml import step also.
[thet]

Add a event listing settings form, which allows configuration of the event
listing view via annotations on the context.
[thet]

For the event listing view, accept SearchableText and tags request parameters
for filtering the result set.
[thet]

For default_start and default_end, return a datetime with minute, second and
microsecond set to 0.
[thet]

Don’t overload ATEvent’s subject widget label and help texts but use AT and
DX standard label_tags and help_tags messages.
[thet]

For whole_day events, let dates_for_display return the iso-date
representation from date and not datetime instances.
[thet]

Remove support of microseconds and default to a resolution of one second for
all datetime getter/setter and conversions. Microseconds exactness is not
needed and dateutil does not support microseconds which results in unexpected
results in comparisons.
[thet]

Changing the timezone in events is a corner case, so the timezone field is
moved to the “dates” schemata for AT and DX.
[thet]

Remove font-weight bold for monthdays and font-weight normal for table header
in portlet calendar. Set div.portletCalendar with to auto instead of
unnecessary 100% + margin. Align with plonetheme.sunburst.
[thet]

Let the IRecurrenceSupport adapter return the event itself, when the event
starts before and ends after a given range_start. Fixes a case, where
get_events didn’t return a long lasting event for a given timeframe with
expand set to True.
[thet]

Let the @@event_listing view work on IATTopic and ICollection contexts.
[thet]

In event_view, handle the case that the location field is not of type
basestring but a reference to another object, for example provided by
collective.venue.
[thet]

Add Event profile definition for ATEvent completly in order to remove it from
Products.CMFPlone. ATEvent is installed by ATContentTypes automatically as
part of upcoming plone.app.contenttypes merge.
[thet]

Optimize css by using common classes for event_listing and event_view.
[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]

1.0b2 (2012-10-29)

Align ATEvent more to Archetypes standards and avoid AnnotationStorage and
ATFieldProperty. We needed to remove the ATFieldProperty for the timezone
field for a custom setter. By doing so, the other two ATFieldProperties were
changed too. This way, the ATEvent API gets more consistent. For a convenient
access to ATEvent as well as dextterity based event types, use the
IEventAccessor from plone.event.interfaces. Upgrade step from pre 1.0b2 based
ATEvent types is provided.
[thet]

1.0b1 (2012-10-12)

Add the calendar portlet by default when installing plone.app.event.
[thet]

Backport changes from “merge plip-10888-kss branch” in plone.app.portlets.
KSS attributes still left in place for backwards compatibility.
[thet]

Buildout infrastructure update.
[thet]

Icalendar export of attendees almost according to the RFC5545 standard. At
the moment, we do not distinguish between CN and CAL-ADDRESS in Plone, so we
just put the attendee value to the CN and CAL-ADDRESS parameter. Fixes #24.
[thet]

Support microseconds for DateTime conversions. For recurrence rules,
timezones are not supported due to a python-datetime limitation.
[thet]

Don’t allow ambiguous timezones like ‘CET’, which also have implementation
errors in DateTime. Force them to another zone. Timezones should be set
explicitly anyways.
[thet]

Let EventOccurrenceAccessor return its own URL instead of its parent.
Once again fixes #58.
[thet]

Fix calendar portlet header, which day names were shifted by one day since a
incompatibility between the calendar module (0 is Monday) and the strftime
function (0 is Sunday).
[thet]

Create an formated_date content provider, which takes an occurrence or event
object when called and formats the start/end date and times for display. This
content provider can be overridden for other contexts. E.g. the events
portlet uses just shows the start date and not the end date.
[thet]

Create adapter ICalendarLinkbase which returns links to calendar views and
can be overridden through a more specific implementation by addon products.
For example, the portlet_calendar and portlet_events links to the @@search
view can be changed to URLs to a real calendar view, if one is installed.
[thet]

For portlet_calendar and portlet_events configuration, make the workflow
state selection optional. If nothing is selected, all states are searched.
[thet]

Add search_base (select path to search for events) and state (select review
state for events to search) to portlet_calendar settings and search_base to
portlet_events.
[thet]

Limit the amount of occurrences in the event view if the event yields
more than 7 occurrences. Show only 6 occurrences and the last
occurrence.
[romanofski]

Integrate the plone.app.event-ploneintegration functionality for Plone
versions without plone.app.event core integration (all current version)
into this package for simplification.
[thet]

IEventSummary behavior added for body text on Dexterity event type,
as well as a SearchableText indexer adapter for the Dexterity event
type.
[seanupton]

Filter calendar portlet search URLs for each day to a whitelist of
event portal_type values. Prevents non-event add-on types with
start/end fields from showing up in calendar, as defense against
unintended consequences (add-ons could explicitly override this
template if they define additional Event types).
[seanupton]

API refactoring:
* Move all generic interfaces to plone.event,
* Extend IEventAccessor adapters to also be able to set attributes.
[thet]

Copy plonetheme.sunburst styles for the calendar portlet to event.css. This
way, the calendar portlet is nicely styled, even without sunburst theme
applied.
[thet]

For Dexterity behaviors, use IEventRecurrence adapter to store attributes
directly on the context. This fixes that recurrence occurrences start and
end dates were not indexed, because the DateRecurringIndex had not access to
the recurrence attribute.
[thet]