Last Preparations for PloneConf

erstellt von pgerken — zuletzt geändert: 2012-10-02T12:52:07+01:00
Philip and I are doing our last steps for the plone training. Also, we ask each other what else we could forget, did you miss any of these?

We are in the last steps for our two-day Training "Mastering Plone". As far as I can tell we'd still welcome more people. We just sent our a mail to the participants about how to prepare a virtual machine with vagrant for the conference. It installs Plone's unified installer in a ubuntu 12.4-box with puppet using the systems python 2.7. Hopefully everyone should have the same Plone running on their laptops even before the training starts on Monday morning.

Apart from that, don't forget:

  1. Internet in Hotels can be slow. It might be better to get a local card than to disable roaming on your phone. Here is a list of dutch sim card providers with data plans:
  2. Don't trust WiFi! From what I have heard, it has happened in the past that Wifi routers have been stolen during the conference, hacked for data sniffing and reinserted into the conference LAN, probably with key loggers. I am pretty sure you access your customers plone sites via https only (wink, wink!), but what about your phone apps, you know they won't transmit your password in clear text? Don't take any risks, use a VPN!
    I have had bad experiences with HideMyAss btw, as soon as I was in brazil, they thought my VPN account was used for fraud and asked for some details I didn't have with me, to not cancel my account. Apparently they want you to use HMA from home only.
  3. Sleep as much as you can before you go. You won't get any sleep during the conference.

See you in Arnhem!

Back from the Plone Open Garden in Sorrento

erstellt von Philip Bauer zuletzt geändert: 2013-04-09T19:08:30+01:00
If you do Plone, come to PLOG next year. Bring your family.

A poster I once designed for World Plone Day said "There is no place like Plone".


The community surrounding Plone is in fact like family for many of us. The Plone Open Garden in Sorrento is one of the events where the Plone-family meets the Plonistas family. It was a near-perfect mixture between a holiday, a sprint and a conference.

Imaging sitting under palmtrees drinking a nice cappucino and doing some light coding while the former president of the Plone foundations splashed around in the pool with his daughter. Add to that the sight of Vesuvius, loads of italian food, great presentations and many people to have engaged discussions with. Bliss.


You can even go hiking in the hills above Sorrento

It was also a very productive week. We managed to get a lot of work done  in that should make it ready for Plone 4.4. I gave a short talk about its state. The slides are not too informative without the demo. But I encourage everyone to use it for your next project or even try migrating a website. A new release will be out in a couple of days.

Thanks to the guys from Abstract for organizing PLOG, special thanks go to Maurizio for his infectious enthusiasm and optimism.

In short: If you do Plone, come to PLOG next year. Bring your family.

See you next year. Be prepared to meet my family :-)

Report from the Munich-leg of the Wine-and-Beer-Sprint

erstellt von Philip Bauer zuletzt geändert: 2013-01-30T13:39:12+01:00
tl;dr: Successful Plone Sprint roundup mentioning wormhole, beer, white sausages and huge progress in the plone.* namespace :)

Last week about 40 people met from Thursday to Sunday in Syslab's Office in Munich for the Wine and Beer Sprint to push Plone forward. I was awed by the large number of people willing to attend, we actually had to close the list a few days before the event since having more than 40 people in the office would have been too bad for air-quality. As it turned out, Syslabs office is a great location to host a sprint since it not only has one huge room but also several smaller ones where groups of people could work in conclave.

We had a mixed crowd of seasoned (2/3) and first-time (1/3) sprinters. What was especially great was the attendance of some people from the local Python user group (that recently merged with the Plone user group), one of them a django-guy who took his first steps with Plone.

Munich was frozen solid during the sprint, a fact that was driven home by the people from the other leg of the sprint (in Capetown, South Africa) who were sitting in the sun wearing t-shirts grinning at us through the wormhole we set up to link the sprints. From what we could understand (wormhole-technology is still only in alpha-state) they had a great time even though they could not get ice for their drinks by stepping outside.

The sprint was very productive, here are some noteable results:

  • The team working on managed to get a release-candidate out. The next-generation translation machinery (that works for Dexterity and Archetypes) is production-ready. At we've been using early stages of it in production together with for over a year now and are very happy.
  • Together with Timo Stollenwerk I was trying to get people to work on since I believe that Plone with dexterity-based default-types is a huge win for users (who can extend their types without paying a developer) and developers (who can focus on more challenging tasks than creating simple content-types). We managed to release 1.0b1, although not all features made it into the release and the documention needs more love. Thanks to the work of many (inluding Carsten Senger, Pavel Bogdanovic, Manuel Reinhardt, Tom Blockley, David Glick and my dear coworkers Patrick Gerken and Steffen Lindner) the package now has migrations from Archetypes, working indexes, robot-framework-tests and much more. Timo and me will work on a PLIP for it.
  • A group around the tireless Nejc Zupan managed to release Version 1.0rc1 of plone.api, an effort started at the Plone Konferenz 2012 in Munich (with a "k").
  • Some people worked on Patterns, a javascript-framework aiming to bring webdesign and development together. They fixed a ton of bugs and revamped their website. Rok Garbas worked on making patterns useable in Plone, most noteably and
  • Domen Kožar worked on mr.bob [], a successor to paster.
  • Besides working on Timo Stollenwerk also worked on getting rid of formlib and portal tools. Now all control panels have been migrated to either plone.autoform or Timo also held a tutorial on test-driven-development in which he started collective.ploneboard, a rewrite of Products.Ploneboard from scratch with Dexterity and Plus: Timo learned that Augustiner Edelstoff is really good beer :-)
  • and the Website of the Python Software Verband have been updated, enhanced and their code moved to github.
  • We saw a very promising sneak preview of new designs and mockups for and
  • After the last report-out with South-Africa I even managed to give a short plone-development tutorial by showing a workspace-ish behavior for Dexterity-folders, that sadly did not see any progress during the sprint.

The non-coding part of the sprint was also a success. The mountain of white sausages that we prepared for the Weisswurstfrühstück will stay in my memory forever. Contrary to the title of the sprint, coffee, Club Mate and Single Malt Whiskey were more popular than beer.

Thanks to Alex Pilz and Florian Friesdorf who not only volunteered their offices to the sprint but also did most of the organizing and were great hosts. Thanks to the Python Software Verband for sponsoring beverages and food.

The biggest thanks goes to the many sprinters who chose to spend their time to come to the sprint to improve Plone when they could have done so many other things. The spirit of friendship and the dedication of people in the Plone Community to give back continues to humble me and makes me glad and greatful to be part of that.

wpd.countdown portlet - Counting days to World Plone Day

erstellt von Steffen Lindner zuletzt geändert: 2013-02-22T19:58:00+01:00
wpd.countdown is a portlet for promoting the upcoming World Plone Day 2013.

To support the upcoming World Plone Day, we created wpd.countdown, a portlet counting down the days to the World Plone Day - 24.4.2013.

Help us spread the word about the World Plone Day and embed the portlet into your Plone site. The installation is easy and documented on PyPi. The portlet has a nice configlet for customizing the date and the linked URL. If you host an WPD Event, put your link in.

The code is in the collective on Github. We already added the Portlet on and :)

wpd.countdown was developed by based on wpd.mmxi.countdown by Simples Consultoria.

How to get a different look for some pages of a plone-site

erstellt von Philip Bauer zuletzt geändert: 2014-06-30T13:03:27+01:00
It's pretty easy to attach a special look to whole sections. Styling only some pages is a different story.

I'm currently working on a site where the customer wanted some pages to look differently than others.

(I should really not do the "Hey you could also do this and that" when my time is limited!)

The pages should have a additional css and a line of text above the heading. I wanted it to look like this:


Here "what if foo..." is the Name of the folder that contains the document "...hits the bar?", being the h1.

Since the old trick with body.section-foo only works for whole sections and I needed the additional text (what if foo...) anyway I decided to go with the beloved marker interfaces.

Here is how it works:

1. Add a marker interface

In your theme-product edit your browser/ and add:

class IMySpecialStyle(Interface): 
    """Marker Interface for  Documents with a special style


2. Register a viewlet pinned to the Interface

In your browser/configure.zcml add:

   name="myspecialstyle.viewlet " 


The line for=".interfaces.MySpecialStyle" activates the viewlet only for content which have the marker-interface. The viewlet-manager IAboveContentTitle inserts the viewlet just before the h1-tag of the targeted document.


3. Add content and styles

Now add a file browser/templates/ containing:

<link href="myspecialstyle.css" rel="stylesheet" type="text/css" 
      tal:attributes="href string:${context/portal_url}/++resource++myspecialstyle.css"/>

<div id="myspecialstyle-viewlet">
   <h2 class="myspecialstyle-header" 
       tal:content="python: context.getParentNode().title">
          what if foo ...

Instead of "getParentNode.title" I could also enter the expected line of text by hand. But like this I can reuse it for other folders.

Keep in mind that for default-pages you might want the 'grandparent‘, so you could use this

tal:define="is_default_page context/@@plone_context_state/is_default_page"

to check if it's a default page, and

tal:content="python context.getParentNode().getParentNode().title"

to get the grandparents title.

Now create browser/resources/myspecialstyle.css and add:

#myspecialstyle-viewlet {
	position: absolute;

.myspecialstyle-header {
	font-family: "Arial Black";
	font-size: 500%;
	font-weight: bold;
	color: #e1e1e1 !important;
	z-index: 0;

h1.documentFirstHeading {
	z-index: 1;
	position: relative;
	padding-top: 10px;


4. Use it

Restart Zope. In ZMI go to the page in question (or rather add /manage_interfaces to it's url), select IMySpecialStyle from the available Marker Interfaces and add it.

If you remove everything from the viewlet except for the <link ...>-stuff you get a really simple way to style some selected pages.