Das Kalenderframework plone.app.event

Plone Konferenz 2012, München

Save The Dates

Johannes Raggam, BlueDynamics Alliance

Who am I?

$ whoami

Johannes Raggam, thet.

$ id g24.at

2002: Gründung g24.at

$ id g24.at

2012: Geplanter g24.at Relaunch auf Basis des Plone Frameworks

$ id Kulturserver-graz.at

Veranstaltungskalender der Stadt Graz

Basiert auf Zope

Michael Haubenwallner, d2m (planetzope.org, zope.org)

Aktuelle Situation

>>> from Products.ATContentTypes.content import ATEvent

ATEvent: Termintyp in Plone

>>> from Products.ATContentTypes.content import ATEvent

>>> from Products.CMFCalendar import Event

CMFCalendar

  • Zope Kalenderframework
  • Seit Mai 2001.
  • CalendarTool, Views, Locales, Event Typ
  • Wenig genutzt.

Neu: plone.app.event

>>> dir(plone.app.event)

  • Dexterity und Archetypes
  • Kapselung und Unabhängigkeit
  • Standards Compliance
  • Modernisiertes Date/Time Widget
  • Unterstützung von Ganztagesterminen
  • Recurring Events
  • Zeitzonen Unterstützung
  • Neues Kalenderportlet
  • Modernisierung der Infrastruktur

Dexterity und Archetypes

>>> from plone.app.event.at import content
>>> from plone.app.event.dx import behaviors

  • Archetypes Inhaltstyp
  • Dexterity Behaviors
    • Basistermin, Termin mit Recurrence, Termin mit Location, Termin mit Teilnehmer, Termin mit Kontaktadresse
    • Dexterity Typ auf Basis von Behaviors

Kapselung und Unabhängigkeit

>>> import Products.ATConentTypes.content.event as BBB

  • Optional: Archetypes und Dexterity.
  • Deinstallierbar.
    • Geringe Abhängigkeiten auf plone.app.event.
  • Weniger Legacy Abhängigkeiten.
  • Weniger Zope DateTime.

>>> import plone.app.event

Aktuell:

  • ATContentTypes,
  • CMFPlone (CalendarTool),
  • CMFCalendar.

Dedizierte Pakete für Event bezogene Funktionalitäten

  • plone.app.event,
  • plone.event,
  • Products.DateRecurringIndex,
  • plone.formwidget.datetime,
  • plone.formwidget.recurrence,
  • jquery.recurrenceinput.js,
  • icalendar,
  • python-dateutil,
  • pytz.

Weitere Eigenschaften

>>> dir(plone.app.event)

  • Standards Compliance
  • Modernisiertes Date/Time Widget
  • Unterstützung von Ganztagesterminen

>>> dir(plone.app.event)

  • Recurring Events
  • Zeitzonen Unterstützung

>>> dir(plone.app.event)

  • Neues Kalenderportlet
  • Modernisierung der Infrastruktur

TODOs

$ grep -ri TODO

  • Tests.
  • Migrationspfad.
  • Index Benchmark Analyse.
  • Date/Time Widget.
  • Dokumentation.
  • Submit for review.

Ausblick

>>> import future

  • Abweichende Beginn-/Endzeiten und Texte bei Recurring Events
  • icalendar Standard Typen: Journal, Todo, Alarm
  • CalDAV Schnittstelle - ical Import
  • CardDAV/vCard schnittstelle

Try it!

$ firefox http://github.com/collective/plone.app.event

$ git clone git@github.com:collective/plone.app.event.git

$ python bootstrap.py; ./bin/buildout

Read the README. Read sources.cfg.

Contribute

$ git push

  • Fork me.
  • Submit Pull requests.
  • Sponsor a sprint.

Contributors

Andreas Jung
Jens Klein
Johannes Raggam
Lennart Regebro
Rok Garbas
Tom Gross
Vincent Fretin
+ Many More ...

>>> print('Tnx!')

Tnx!

Made with: http://leaverou.github.com/CSSS/