This was the Buschenschanksprint 2019!

The Buschenschanksprint 2019, held from June 17 to June 21 2019 was again a great opportunity to meet old friends, make new ones and discuss and work together on projects and tasks from the Plone ecosystem.

We had 8 participants who enjoyed the beauty of the south styrian landscape and hospitality during a week with very fine weather. We were been less people than expected - due to pre-summer project obligations many had to cancel their attendance.

Nevertheless, we had a great time, a lot of inspiring discussions, did some fundamental work, helped to remove some Zope 4 / Plone 5.2 blockers and brought the Plone ecosystem forward.

Sprint participants

In order of registration:

Johannes Raggam (programmatic / Syslab, Graz, Austria)

Jens Klein (Klein & Partner KG, Innsbruck, Austria)

Christine Baumgartner (Klein & Partner KG, Innsbruck, Austria)

Peter Holzer (agitator Weblösungen, Zurich, Switzerland)

Franz Reinisch (FGRcon, Vienna, Austria)

Alexander Loechel (LMU, Munich, Germany)

Robert Kuzma (CodeHut Labs, Bogojina, Slovenia)

Roland Fasching (cloud19, Melk, Austria)

Topics we worked on


Johannes worked together with Davi Lima (remote) on the documentation and open pull requests of plone.staticresources, the new Plone 5.2 package which ships all JavaScript and CSS for Plone. The implementation of this PR reduced the Products.CMFPlone payload from about 64MB to only 6 MB. What was missing was some more documentation on what has changed for the development process.


Image Caption Support for TinyMCE

Since Plone 5 we do not have image caption support in Plone anymore.

Johannes worked on extending Mockup with some image caption support related options, added a utility in plone.outputfilters for enabling an image caption transform via the registry and modernized the image caption template to make use of the <figure> and <figcaption> tags.


Prior to the sprint a 2.0 Version of the shop with Python 3 Support and dropping Plone 4.3/ 5.0 support was started. Targeting a project for Rolands customer, Jens added already some basic REST endpoints and refactored large parts of the shop to separate view and application logic code even more. The cart JavaScript is also a bit aged and needs an overhaul. The idea was to use a React based cart and integrate it into Plone. This itself would not be difficult, but our goal was to provide a cart that works in both - classic Plone and Volto. Peter did some research on how to create a standalone react component that can be integrated in both worlds. Jens gave an introduction into React development and we had some video conferences with the sprinters from the Beethoven sprint in Bonn hosted by kitconcept.

Async loading

Peter added an experimental async profile to plone.staticresources which registers all bundles for asynchronous loading. As a prerequisite a plone-base bundle was created. It includes the basic resources which cannot be loaded asynchronously but need to be available before any other resources - which are: RequireJS and jQuery.



Peter, Roland, Robert, Alexander and Maik (remote) worked on bobtemplates.plone.

Sub-templates for indexers and upgrade steps were discussed and started and a Pull Request for black code format support.

Related PRs:

Security Issues Review

Two members of the Plone Security Team - Alexander and Jens - reviewed open Plone security issues.

Integration of the Zope foundation into the Plone foundation

Since the Zope Foundation was closed the name and intellectual property are now managed by the Plone Foundation. The process of transition is still not finished yet, mostly due to an unclear status quo and some legal issues.

There are similar questions for bringing Pyramid/Pylons and Guillotina under the hood of the Plone Foundation.

Christine and Alexander worked on that topic.

Documenting Plone Community Processes

As part of this effort a process map was created which documents the different teams under the Plone Foundation and their processes.

Postgres data handler for Easyform

Franz open sourced his work on a Postgres data storage handler for Easyform, which is available at: and

This addon extends collective.easyform providing means to store form data in a postgresql database. It features a new form action: "Postgres Data" and corresponding PostgresDataHandler. If the database table does not exist in the database it will be created.

The Plugin is compatible with Plone 5.1, 5.2, Python 2.7 and Python 3.6.


Robert is an experienced developer from Slovenia and a Zope/Plone newcomer. He got his fingers dirty with the whole Plone process from buildout over Plone customization and integration to installing, using and customizing of Volto.

Other work

  • An issue was fixed where no behaviors could be managed through the behaviors form for Dexterity content types under Python 2.7.

  • An issue with the Ajax Widget Data Converter in was fixed by Jens.

  • A problem with five.intid in Zope 4 was fixed.

  • The broken allowed_attributes with Zope 4 was fixed as a joint community effort.

  • Jens gave a short tutorial on React and how he integrates it in Plone.

  • Roland presented his take on a page builder for his custom Plone based CMS “Booost”

  • We had some coordination with the Beethoven Sprint in Bonn and with Philip in Munich.

  • Jens reviewed very old Plone issues and closed about 100 of them.

Sprint announcement

Sprint impressions

Google Photos

Google Photos

Google Photos

Google Photos

Google Photos

Google Photos

Google Photos

Google Photos

Google Photos

Google Photos


wish I was there.

Plone Foundation Code of Conduct