Web board for the Plone Content Management System
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src/collective
.gitignore
.travis.yml
CHANGES.rst
CONTRIBUTORS.rst
MANIFEST.in
Makefile
README.rst
TUTORIAL.txt
USER-STORIES.txt
base.cfg
buildout.cfg
kitconcept.png
plone-5.1.x.cfg
plone-5.2.x.cfg
requirements.txt
setup.cfg
setup.py
travis.cfg

README.rst

collective.ploneboard

https://travis-ci.org/collective/collective.ploneboard.svg?branch=master Egg Status Latest Version License

kitconcept

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.

Features

  • 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

Examples

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?

Translations

This product has been translated into

  • Klingon (thanks, K'Plai)

Installation

Install collective.ploneboard by adding it to your buildout:

[buildout]

...

eggs =
    collective.ploneboard

and then running bin/buildout

Contribute

Support

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 info@kitconcept.com.

License

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."

>>> 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

Add Topic

"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

Add Conversation

"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

Reply

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