Go to file
Maurits van Rees 266d87b3b9
Test-only fix: normalize white space when comparing output of comment.getText().
Needed to not fail with newer `plone.outputfilters` from this PR: https://github.com/plone/plone.outputfilters/pull/49
Comments go through the outputfilters, and the new branch calls `soup.prettify()` from `Beautifulsoup`, leading to more white space.
Sample test failures on Jenkins, see https://jenkins.plone.org/job/plip-plip-image-srcsets-3.8/5/#showFailuresLink

```
'<p>\n Go to http://www.plone.org\n</p>' != '<p>Go to http://www.plone.org</p>'
- <p>
-  Go to http://www.plone.org
? ^                          ^
+ <p>Go to http://www.plone.org</p>? ^^^                          ^^^^
- </p>

  File "/srv/python3.8/lib/python3.8/unittest/case.py", line 60, in testPartExecutor
    yield
  File "/srv/python3.8/lib/python3.8/unittest/case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "/srv/python3.8/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
    method()
  File "/home/jenkins/.buildout/eggs/cp38/plone.app.discussion-4.0.0a7-py3.8.egg/plone/app/discussion/tests/test_comment.py", line 180, in test_getText_doesnt_link
    self.assertEqual(
  File "/srv/python3.8/lib/python3.8/unittest/case.py", line 912, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/srv/python3.8/lib/python3.8/unittest/case.py", line 1292, in assertMultiLineEqual
    self.fail(self._formatMessage(msg, standardMsg))
  File "/srv/python3.8/lib/python3.8/unittest/case.py", line 753, in fail
    raise self.failureException(msg)
```
2022-06-10 13:50:16 +02:00
docs Removed a few more unicode literals. 2022-05-02 17:12:04 +02:00
news Test-only fix: normalize white space when comparing output of comment.getText(). 2022-06-10 13:50:16 +02:00
plone Test-only fix: normalize white space when comparing output of comment.getText(). 2022-06-10 13:50:16 +02:00
.gitattributes Allowed union merge strategy in CHANGES.rst. 2015-10-25 00:00:19 +02:00
.gitignore Updated .gitignore file 2015-05-31 13:40:31 -04:30
CHANGES.rst Preparing release 4.0.0a7 2022-05-14 11:56:23 +02:00
CONTRIBUTING.rst Added CONTRIBUTING.rst. 2015-11-14 00:25:54 +01:00
MANIFEST.in Initialize towncrier 2019-02-08 13:36:13 +01:00
pyproject.toml Initialize towncrier 2019-02-08 13:36:13 +01:00
README.rst Revert "Jenkins test 3." 2015-02-27 15:15:03 +01:00
setup.cfg isort 2022-05-01 23:14:00 +02:00
setup.py Back to development: 4.0.0a8 2022-05-14 11:57:11 +02:00

Introduction
============


plone.app.discussion replaces the old commenting system in Plone 4.1 and is also
available as an add-on product for Plone 3 and 4. It was initially developed as
part of the Google Summer of Code 2009 by Timo Stollenwerk (student) and Martin
Aspeli (mentor).

.. note::

  Make sure you pin down plone.app.discussion to versions < 2.0 if you want to
  install it as an add-on product (see install instructions below for more
  details).

Please report bugs to the `Plone bug tracker`_.

.. _`Plone bug tracker`: http://dev.plone.org/plone/


For the roadmap of the project see our `Pivotal Tracker`_.

.. _`Pivotal Tracker`: http://www.pivotaltracker.com/projects/15135


Requirements
============

Plone 3.3 or later.


Plone 3.3.x Buildout Installation
=================================

To install plone.app.discussion, add the following code to your buildout.cfg::

    [buildout]
    ...
    extends =
        ...
        http://good-py.appspot.com/release/plone.app.discussion/1.0

    ...

    [versions]
    plone.app.discussion = 1.0

    ...

    [instance]
    ...
    eggs =
        ...
        plone.app.discussion

    ...


Plone 4.0 Buildout Installation
===============================

To install plone.app.discussion, add the following code to your buildout.cfg::

    [buildout]

    ...

    versions = versions

    [versions]
    plone.app.discussion = 1.0
    zope.schema = 3.6.4

    ...

    [instance]
    ...
    eggs =
        ...
        plone.app.discussion

    ...


Add-on Products
===============

- `collective.autoresizetextarea
  <http://pypi.python.org/pypi/collective.autoresizetextarea/>`_
  (for auto-resizing the comment textarea while typing)

- `plone.formwidget.captcha
  <http://pypi.python.org/pypi/plone.formwidget.captcha/>`_
  (for Captcha spam protection)

- `plone.formwidget.recaptcha
  <http://pypi.python.org/pypi/plone.formwidget.recaptcha/>`_
  (for ReCaptcha spam protection)

- `collective.akismet
  <http://pypi.python.org/pypi/collective.akismet/>`_
  (for Akismet spam protection)

- `collective.z3cform.norobots
  <http://pypi.python.org/pypi/collective.z3cform.norobots/1.1/>`_
  (provides a "human" captcha widget based on a list of questions/answers)


Documentation
=============

- For developer documentation see
  `http://packages.python.org/plone.app.discussion
  <http://packages.python.org/plone.app.discussion>`_.

- For integrator/end-user documentation see
  `http://plone.org/products/plone.app.discussion/documentation
  <http://plone.org/products/plone.app.discussion/documentation>`_.


Known Issues
============

- **ImportError: No module named owner**: You are trying to install
  plone.app.discussion 2.x on Plone < 4.1. Pin plone.app.discussion to a version
  < 2.0.

- **KeyError: 'Interface `plone.app.discussion.interfaces.IDiscussionSettings`
  defines a field `moderator_email`, for which there is no record.'**: An
  upgrade step was unsuccessful. Reinstall plone.app.discussion to fix this.


Credits
=======

- Timo Stollenwerk
- Martin Aspeli

Many thanks to:

- Jon Stahl (for acting as "the customer" during GSoC)
- David Glick (for technical expertise and advice during GSoC)
- Lennart Regebro (for writing the portal_discussion tool and initial unit tests)
- Carsten Senger (for fixing the comment z3c.form form and pizza)
- Hanno Schlichting (for making p.a.d work with Zope 2.12)
- Alan Hoey (for providing fixes)
- Maik Roeder (for providing and setting up a buildbot)