collective.ploneboard is a message board for the Plone content management system. It is an attempt to rewrite the functionality of Products.Ploneboard from the scratch. It uses the Dexterity content types framework and plone.app.discussion for implementing conversations.
The add-on is tested with Plone 5.1 and 5.2. It should work with older Plone versions (5.0 and 4.3) as well. Though, we can not give any guarantee for this.
- Add a message board
- Add a topic to a message board
- Add a conversation to a topic
- Add a 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:
[buildout] ... eggs = collective.ploneboard
and then running
- Issue Tracker: https://github.com/collective/collective.ploneboard/issues
- Source Code: https://github.com/collective/collective.ploneboard
- Documentation: https://docs.plone.org/foo/bar
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 email@example.com.
The project is licensed under the GPLv2.
>>> 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."
>>> browser.open(portal_url + '/++add++Message Board') >>> browser.getControl(name='form.widgets.IDublinCore.title').value = "My Message Board" >>> browser.getControl("Save").click() >>> "My Message Board" in browser.contents True
"As an administrator I can add a topic to an existing message board"
>>> browser.open(portal_url + '/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 True
"As a member I can add a conversation to an existing topic."
>>> browser.open(portal_url + '/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 True
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 True