Skip to main content

Web board for the Plone Content Management System

Project description Egg Status Latest Version License


This is an experimental Plone add-on product to rewrite the functionality of Products.Ploneboard from the scratch with Dexterity types and


  • Add message board

  • Add Topic

  • Add conversation

  • Reply to a conversation

  • Add an attachment to a conversation


This add-on can be seen in action at the following sites: - Is there a page on the internet where everybody can see the features?


This product has been translated into

  • Klingon (thanks, K’Plai)


Install collective.ploneboard by adding it to your buildout:



eggs =

and then running bin/buildout



If you are having issues, please let us know.

If you require professional support, or want to sponsor new features, feel free to drop us a note at


The project is licensed under the GPLv2.

Test Setup

>>> app = layer['app']
>>> from plone.testing.z2 import Browser
>>> browser = Browser(app)
>>> browser.handleErrors = False
>>> browser.addHeader('Authorization', 'Basic admin:secret')
>>> portal = layer['portal']
>>> portal_url = 'http://nohost/plone'

Add message board

“As an administrator I can add a message board.”

>>> + '/++add++Message Board')
>>> browser.getControl(name='form.widgets.IDublinCore.title').value = "My Message Board"
>>> browser.getControl("Save").click()
>>> "My Message Board" in browser.contents

Add Topic

“As an administrator I can add a topic to an existing message board”

>>> + '/my-message-board')
>>> browser.getLink('Topic').click()
>>> browser.getControl(name='form.widgets.IBasic.title').value = "My First Topic"
>>> browser.getControl("Save").click()
>>> "My First Topic" in browser.contents

Add Conversation

“As a member I can add a conversation to an existing topic.”

>>> + '/my-message-board/my-first-topic')
>>> browser.getLink('Conversation').click()
>>> browser.getControl(name='form.widgets.IBasic.title').value = "My First Conversation"
>>> browser.getControl(name='form.widgets.text').value = "This is my first conversation"
>>> browser.getControl("Save").click()
>>> "My First Conversation" in browser.contents


As a member I can add a reply to an existing conversation.

>>> browser.getControl(name='form.widgets.text').value = "This is my first reply."
>>> browser.getControl(name="form.buttons.comment").click()
>>> "This is my first reply" in browser.contents


Note: place names and roles of the people who contribute to this package

in this file, one to a line, like so:

  • Joe Schmoe, Original Author

  • Bob Slob, contributed monkey patches

  • Jane Main, wrote flibberty module


1.0.0a1 (2018-11-28)

  • Initial release. [timo]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.ploneboard-1.0.0a1.tar.gz (31.1 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page