Remove docs/html directory. There is no need to keep the HTML documentation inside the package itself, since it is available on packages.python.org/plone.app.discussion.
svn path=/plone.app.discussion/trunk/; revision=36875
This commit is contained in:
parent
125a1beb7e
commit
518b89b043
25
docs/html/_sources/api.txt
Normal file
25
docs/html/_sources/api.txt
Normal file
@ -0,0 +1,25 @@
|
||||
API/Interfaces
|
||||
--------------
|
||||
|
||||
The conversation and replies adapters.
|
||||
|
||||
The conversation is responsible for storing all comments. It provides a
|
||||
dict-like API for accessing comments, where keys are integers and values
|
||||
are IComment objects. It also provides features for finding comments quickly.
|
||||
|
||||
The IReplies adapter provides an API for finding and manipulating the comments
|
||||
directly in reply to a particular comment (implemented by the CommentReplies
|
||||
adpater) or at the top level of the conversation (implemented by the
|
||||
ConversationReplies adapter).
|
||||
|
||||
.. autointerface:: plone.app.discussion.interfaces.IConversation
|
||||
:members:
|
||||
|
||||
.. autointerface:: plone.app.discussion.interfaces.IReplies
|
||||
:members:
|
||||
|
||||
.. autointerface:: plone.app.discussion.interfaces.IComment
|
||||
:members:
|
||||
|
||||
|
||||
|
@ -10,7 +10,7 @@ plone.app.discussion.
|
||||
CMF and Plone UI constructs.
|
||||
|
||||
**Discussion items are cataloged**
|
||||
It is be possible to search for discussion items like any other type of
|
||||
It is possible to search for discussion items like any other type of
|
||||
content.
|
||||
|
||||
**Discussion items are subject to workflow and permission**
|
||||
@ -19,26 +19,26 @@ plone.app.discussion.
|
||||
permissions.
|
||||
|
||||
**Discussion items are light weight objects**
|
||||
Discussion item objects are as light weight as possible.
|
||||
Ideally, a discussion item should be as lightweight as a catalog brain.
|
||||
This may mean that we forego convenience base classes and re-implement
|
||||
certain interfaces. Comments should not provide the full set of dublin
|
||||
core metadata, though custom indexers can be used to provide values for
|
||||
standard catalog indexes.
|
||||
Discussion item objects are as light weight as possible. Ideally, a
|
||||
discussion item should be as lightweight as a catalog brain. This may mean
|
||||
that we forego convenience base classes and re-implement certain interfaces.
|
||||
Comments should not provide the full set of dublin core metadata, though
|
||||
custom indexers can be used to provide values for standard catalog indexes.
|
||||
|
||||
**Optimise for retrival speed**
|
||||
HTML filtering and other processing should happen on save, not on render,
|
||||
to make rendering quick.
|
||||
|
||||
**Settings are stored using plone.registry**
|
||||
Any global setting should be stored in plone.registry records
|
||||
Any global setting should be stored in plone.registry records.
|
||||
|
||||
**Forms are constructed using extensible z3c.form forms**
|
||||
This allows plugins (such as spam protection algorithms) to provide
|
||||
additional validation
|
||||
additional validation. It also allows integrators to write add-ons that add
|
||||
new fields to the comment form.
|
||||
|
||||
**Discussion items are stored in a BTree container**
|
||||
This allows faster lookup and manipulation
|
||||
This allows faster lookup and manipulation.
|
||||
|
||||
**Discussion items are accessed using a dict-like interface**
|
||||
This makes iteration and manipulation more natural. Even if comments are
|
||||
|
30
docs/html/_sources/captcha.txt
Normal file
30
docs/html/_sources/captcha.txt
Normal file
@ -0,0 +1,30 @@
|
||||
===========================
|
||||
Captcha Plugin Architecture
|
||||
===========================
|
||||
|
||||
This document contains design notes for the plone.app.discussion Captcha plugin
|
||||
architecture. It also explains how to write your own Captcha plugin (???).
|
||||
|
||||
Currently there are two plugins that work with plone.app.discussion:
|
||||
|
||||
1) plone.formwidget.captcha
|
||||
2) plone.formwidget.recaptcha
|
||||
|
||||
1) Captcha plugin must provide the feature "plone.app.discussion-captcha":
|
||||
|
||||
Add this to your configure.zcml::
|
||||
|
||||
<configure ...
|
||||
xmlns:meta="http://namespaces.zope.org/meta">
|
||||
<!-- Declare that plone.formwidget.captcha provides a Captcha field that
|
||||
can be used by plone.app.discussion to add a Captcha field to comment
|
||||
forms. -->
|
||||
<meta:provides feature="plone.app.discussion-captcha" />
|
||||
|
||||
...
|
||||
</configure>
|
||||
|
||||
For examples have a look at plone.formwidget.captcha
|
||||
|
||||
https://svn.plone.org/svn/plone/plone.formwidget.captcha/trunk/plone/formwidget/captcha/configure.zcml
|
||||
|
@ -150,20 +150,18 @@ an auto-moderation 'white-list', e.g. by email address or username.
|
||||
Forms and UI
|
||||
------------
|
||||
|
||||
The basic commenting display/reply form should be placed in a viewlet.
|
||||
The basic commenting display/reply form is placed in a viewlet.
|
||||
|
||||
Ideally, the reply form should be inline, perhaps revealed with JavaScript
|
||||
if enabled. This allows full contextualisation of replies. The current
|
||||
solution, with a separate form that shows some context, is brittle and
|
||||
over-complicated.
|
||||
The reply form is dynamically created right under the comment when the user hits
|
||||
the reply button. To do so, we copy the standard comment form with a jQuery
|
||||
function. This function sets the form's hidden in_reply_to field to the id of
|
||||
the comment the user wants to reply to. This also makes is possible to use
|
||||
z3c.form validation for the reply forms, because we can uniquely identify the
|
||||
a reply form request and return the reply form with validation errors.
|
||||
|
||||
If we support quoting of comments in replies, we can load the text to quote
|
||||
using JavaScript as well.
|
||||
Since we rely on JavaScript for the reply form creation, the reply button is
|
||||
removed for nonJavaScript enabled browsers.
|
||||
|
||||
As a fall-back for non-JavaScript enabled browsers, it is probably OK not to
|
||||
support quoting and/or viewing of context, e.g. the user is taken to a standalone
|
||||
'comment reply' form.
|
||||
|
||||
All actual forms should be handled using z3c.form and plone.z3cform's
|
||||
ExtensibleForm support. This makes it possible to plug in additional fields
|
||||
declaratively, e.g. to include spam protection.
|
||||
The comment form uses z3c.form and plone.z3cform's ExtensibleForm support. This
|
||||
makes it possible to plug in additional fields declaratively, e.g. to include
|
||||
SPAM protection.
|
||||
|
@ -16,18 +16,9 @@ Contents:
|
||||
|
||||
architecture.txt
|
||||
design.txt
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
.. automodule:: plone.app.discussion
|
||||
|
||||
.. autoclass:: plone.app.discussion.conversation.Conversation
|
||||
|
||||
.. automethod:: plone.app.discussion.conversation.Conversation.enabled
|
||||
|
||||
api.txt
|
||||
.. include:: ../../CHANGES.txt
|
||||
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
306
docs/html/api.html
Normal file
306
docs/html/api.html
Normal file
@ -0,0 +1,306 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>API/Interfaces — plone.app.discussion v1.0b4 documentation</title>
|
||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '#',
|
||||
VERSION: '1.0b4',
|
||||
COLLAPSE_MODINDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="top" title="plone.app.discussion v1.0b4 documentation" href="index.html" />
|
||||
<link rel="prev" title="Design Notes" href="design.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="design.html" title="Design Notes"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="api-interfaces">
|
||||
<h1>API/Interfaces<a class="headerlink" href="#api-interfaces" title="Permalink to this headline">¶</a></h1>
|
||||
<p>The conversation and replies adapters.</p>
|
||||
<p>The conversation is responsible for storing all comments. It provides a
|
||||
dict-like API for accessing comments, where keys are integers and values
|
||||
are IComment objects. It also provides features for finding comments quickly.</p>
|
||||
<p>The IReplies adapter provides an API for finding and manipulating the comments
|
||||
directly in reply to a particular comment (implemented by the CommentReplies
|
||||
adpater) or at the top level of the conversation (implemented by the
|
||||
ConversationReplies adapter).</p>
|
||||
<dl class="interface">
|
||||
<dt id="plone.app.discussion.interfaces.IConversation">
|
||||
<em class="property">interface </em><tt class="descclassname">plone.app.discussion.interfaces.</tt><tt class="descname">IConversation</tt><a class="headerlink" href="#plone.app.discussion.interfaces.IConversation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Extends: <tt class="xref docutils literal"><span class="pre">zope.interface.common.mapping.IIterableMapping</span></tt></p>
|
||||
<p>A conversation about a content object.</p>
|
||||
<p>This is a persistent object in its own right and manages all comments.</p>
|
||||
<p>The dict interface allows access to all comments. They are stored by
|
||||
long integer key, in the order they were added.</p>
|
||||
<p>Note that __setitem__() is not supported - use addComment() instead.
|
||||
However, comments can be deleted using __delitem__().</p>
|
||||
<p>To get replies at the top level, adapt the conversation to IReplies.</p>
|
||||
<p>The conversation can be traversed to via the ++comments++ namespace.
|
||||
For example, path/to/object/++comments++/123 retrieves comment 123.</p>
|
||||
<p>The __parent__ of the conversation (and the acquisition parent during
|
||||
traversal) is the content object. The conversation is the __parent__
|
||||
(and acquisition parent) for all comments, regardless of threading.</p>
|
||||
<dl class="method">
|
||||
<dt id="IConversation.__delitem__">
|
||||
<tt class="descname">__delitem__</tt><big>(</big><em>key</em><big>)</big><a class="headerlink" href="#IConversation.__delitem__" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Delete the comment with the given key. The key is a long id.</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IConversation.last_comment_date">
|
||||
<tt class="descname">last_comment_date</tt><a class="headerlink" href="#IConversation.last_comment_date" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Date of the most recent comment</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IConversation.total_comments">
|
||||
<tt class="descname">total_comments</tt><a class="headerlink" href="#IConversation.total_comments" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Total number of comments on this item</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="IConversation.getComments">
|
||||
<tt class="descname">getComments</tt><big>(</big><em>start=0</em>, <em>size=None</em><big>)</big><a class="headerlink" href="#IConversation.getComments" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return an iterator of comment objects for rendering.</p>
|
||||
<p>The ‘start’ parameter is the id of the comment from which to start the
|
||||
batch. If no such comment exists, the next higher id will be used.
|
||||
This means that you can use max key from a previous batch + 1 safely.</p>
|
||||
<p>The ‘size’ parameter is the number of comments to return in the
|
||||
batch.</p>
|
||||
<p>The comments are returned in creation date order, in the exact batch
|
||||
size specified.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="IConversation.enabled">
|
||||
<tt class="descname">enabled</tt><big>(</big><big>)</big><a class="headerlink" href="#IConversation.enabled" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns True if discussion is enabled for this conversation.</p>
|
||||
<p>This method checks five different settings in order to figure out if
|
||||
discussion is enable on a specific content object:</p>
|
||||
<ol class="arabic simple">
|
||||
<li>Check if discussion is enabled globally in the plone.app.discussion
|
||||
registry/control panel.</li>
|
||||
<li>If the current content object is a folder, always return False, since
|
||||
we don’t allow comments on a folder. This setting is used to allow/
|
||||
disallow comments for all content objects inside a folder, not for
|
||||
the folder itself.</li>
|
||||
<li>Check if the allow_discussion boolean flag on the content object is
|
||||
set. If it is set to True or False, return the value. If it set to
|
||||
None, try further.</li>
|
||||
<li>Traverse to a folder with allow_discussion set to either True or
|
||||
False. If allow_discussion is not set (None), traverse further until
|
||||
we reach the PloneSiteRoot.</li>
|
||||
<li>Check if discussion is allowed for the content type.</li>
|
||||
</ol>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="IConversation.getThreads">
|
||||
<tt class="descname">getThreads</tt><big>(</big><em>start=0</em>, <em>size=None</em>, <em>root=0</em>, <em>depth=None</em><big>)</big><a class="headerlink" href="#IConversation.getThreads" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return a batch of comment objects for rendering.</p>
|
||||
<p>The ‘start’ parameter is the id of the comment from which to start
|
||||
the batch. If no such comment exists, the next higher id will be used.
|
||||
This means that you can use max key from a previous batch + 1 safely.
|
||||
This should be a root level comment.</p>
|
||||
<p>The ‘size’ parameter is the number of threads to return in the
|
||||
batch. Full threads are always returned (although you can stop
|
||||
consuming the iterator if you want to abort).</p>
|
||||
<p>‘root’, if given, is the id of the comment to which reply
|
||||
threads will be found. ‘root’ itself is not included. If not given,
|
||||
all threads are returned.</p>
|
||||
<p>If ‘depth’ is given, it can be used to limit the depth of threads
|
||||
returned. For example, depth=1 will return only direct replies.</p>
|
||||
<p>Comments are returned as an iterator of dicts with keys ‘comment’,
|
||||
the comment, ‘id’, the comment id, and ‘depth’, which is 0 for
|
||||
top-level comments, 1 for their replies, and so on. The list is
|
||||
returned in depth-first order.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="IConversation.addComment">
|
||||
<tt class="descname">addComment</tt><big>(</big><em>comment</em><big>)</big><a class="headerlink" href="#IConversation.addComment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Adds a new comment to the list of comments, and returns the
|
||||
comment id that was assigned. The comment_id property on the comment
|
||||
will be set accordingly.</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IConversation.commentators">
|
||||
<tt class="descname">commentators</tt><a class="headerlink" href="#IConversation.commentators" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>The set of unique commentators (usernames)</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="interface">
|
||||
<dt id="plone.app.discussion.interfaces.IReplies">
|
||||
<em class="property">interface </em><tt class="descclassname">plone.app.discussion.interfaces.</tt><tt class="descname">IReplies</tt><a class="headerlink" href="#plone.app.discussion.interfaces.IReplies" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Extends: <tt class="xref docutils literal"><span class="pre">zope.interface.common.mapping.IIterableMapping</span></tt></p>
|
||||
<p>A set of related comments in reply to a given content object or
|
||||
another comment.</p>
|
||||
<p>Adapt a conversation or another comment to this interface to obtain the
|
||||
direct replies.</p>
|
||||
<dl class="method">
|
||||
<dt id="IReplies.__delitem__">
|
||||
<tt class="descname">__delitem__</tt><big>(</big><em>key</em><big>)</big><a class="headerlink" href="#IReplies.__delitem__" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Delete the comment with the given key. The key is a long id.</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="IReplies.addComment">
|
||||
<tt class="descname">addComment</tt><big>(</big><em>comment</em><big>)</big><a class="headerlink" href="#IReplies.addComment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Adds a new comment as a child of this comment, and returns the
|
||||
comment id that was assigned. The comment_id property on the comment
|
||||
will be set accordingly.</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="interface">
|
||||
<dt id="plone.app.discussion.interfaces.IComment">
|
||||
<em class="property">interface </em><tt class="descclassname">plone.app.discussion.interfaces.</tt><tt class="descname">IComment</tt><a class="headerlink" href="#plone.app.discussion.interfaces.IComment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A comment.</p>
|
||||
<p>Comments are indexed in the catalog and subject to workflow and security.</p>
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.author_username">
|
||||
<tt class="descname">author_username</tt><a class="headerlink" href="#IComment.author_username" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Name</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.modification_date">
|
||||
<tt class="descname">modification_date</tt><a class="headerlink" href="#IComment.modification_date" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Modification date</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.title">
|
||||
<tt class="descname">title</tt><a class="headerlink" href="#IComment.title" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Subject</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.author_email">
|
||||
<tt class="descname">author_email</tt><a class="headerlink" href="#IComment.author_email" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Email</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.text">
|
||||
<tt class="descname">text</tt><a class="headerlink" href="#IComment.text" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Comment</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.portal_type">
|
||||
<tt class="descname">portal_type</tt><a class="headerlink" href="#IComment.portal_type" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Portal type</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.comment_id">
|
||||
<tt class="descname">comment_id</tt><a class="headerlink" href="#IComment.comment_id" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>A comment id unique to this conversation</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.author_name">
|
||||
<tt class="descname">author_name</tt><a class="headerlink" href="#IComment.author_name" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Name</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.creation_date">
|
||||
<tt class="descname">creation_date</tt><a class="headerlink" href="#IComment.creation_date" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Creation date</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.mime_type">
|
||||
<tt class="descname">mime_type</tt><a class="headerlink" href="#IComment.mime_type" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>MIME type</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.__name__">
|
||||
<tt class="descname">__name__</tt><a class="headerlink" href="#IComment.__name__" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Name</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.in_reply_to">
|
||||
<tt class="descname">in_reply_to</tt><a class="headerlink" href="#IComment.in_reply_to" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Id of comment this comment is in reply to</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.creator">
|
||||
<tt class="descname">creator</tt><a class="headerlink" href="#IComment.creator" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Author name (for display)</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="IComment.__parent__">
|
||||
<tt class="descname">__parent__</tt><a class="headerlink" href="#IComment.__parent__" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>Conversation</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="design.html"
|
||||
title="previous chapter">Design Notes</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/api.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="design.html" title="Design Notes"
|
||||
>previous</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2010, Timo Stollenwerk.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -30,9 +30,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
accesskey="M">modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="design.html" title="Design Notes"
|
||||
accesskey="N">next</a> |</li>
|
||||
@ -58,29 +55,29 @@ plone.app.discussion.</p>
|
||||
<dd>This makes it easier to search for them and manage them using existing
|
||||
CMF and Plone UI constructs.</dd>
|
||||
<dt><strong>Discussion items are cataloged</strong></dt>
|
||||
<dd>It is be possible to search for discussion items like any other type of
|
||||
<dd>It is possible to search for discussion items like any other type of
|
||||
content.</dd>
|
||||
<dt><strong>Discussion items are subject to workflow and permission</strong></dt>
|
||||
<dd>Moderation, anonymous commenting, and auto approve/reject should be
|
||||
handled using workflow states, automatic and manual transitions, and
|
||||
permissions.</dd>
|
||||
<dt><strong>Discussion items are light weight objects</strong></dt>
|
||||
<dd>Discussion item objects are as light weight as possible.
|
||||
Ideally, a discussion item should be as lightweight as a catalog brain.
|
||||
This may mean that we forego convenience base classes and re-implement
|
||||
certain interfaces. Comments should not provide the full set of dublin
|
||||
core metadata, though custom indexers can be used to provide values for
|
||||
standard catalog indexes.</dd>
|
||||
<dd>Discussion item objects are as light weight as possible. Ideally, a
|
||||
discussion item should be as lightweight as a catalog brain. This may mean
|
||||
that we forego convenience base classes and re-implement certain interfaces.
|
||||
Comments should not provide the full set of dublin core metadata, though
|
||||
custom indexers can be used to provide values for standard catalog indexes.</dd>
|
||||
<dt><strong>Optimise for retrival speed</strong></dt>
|
||||
<dd>HTML filtering and other processing should happen on save, not on render,
|
||||
to make rendering quick.</dd>
|
||||
<dt><strong>Settings are stored using plone.registry</strong></dt>
|
||||
<dd>Any global setting should be stored in plone.registry records</dd>
|
||||
<dd>Any global setting should be stored in plone.registry records.</dd>
|
||||
<dt><strong>Forms are constructed using extensible z3c.form forms</strong></dt>
|
||||
<dd>This allows plugins (such as spam protection algorithms) to provide
|
||||
additional validation</dd>
|
||||
additional validation. It also allows integrators to write add-ons that add
|
||||
new fields to the comment form.</dd>
|
||||
<dt><strong>Discussion items are stored in a BTree container</strong></dt>
|
||||
<dd>This allows faster lookup and manipulation</dd>
|
||||
<dd>This allows faster lookup and manipulation.</dd>
|
||||
<dt><strong>Discussion items are accessed using a dict-like interface</strong></dt>
|
||||
<dd>This makes iteration and manipulation more natural. Even if comments are
|
||||
not stored threaded, the dict interface should act as if they are, i.e.
|
||||
@ -139,9 +136,6 @@ discussion items are added, removed, or modified.</dd>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="design.html" title="Design Notes"
|
||||
>next</a> |</li>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Global Module Index — plone.app.discussion v1.0b4 documentation</title>
|
||||
<title>Captcha Plugin Architecture — plone.app.discussion v1.0b4 documentation</title>
|
||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
@ -19,10 +19,7 @@
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="top" title="plone.app.discussion v1.0b4 documentation" href="index.html" />
|
||||
|
||||
|
||||
|
||||
<link rel="top" title="plone.app.discussion v1.0b4 documentation" href="index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
@ -31,9 +28,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="#" title="Global Module Index"
|
||||
accesskey="M">modules</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -43,23 +37,34 @@
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="captcha-plugin-architecture">
|
||||
<h1>Captcha Plugin Architecture<a class="headerlink" href="#captcha-plugin-architecture" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This document contains design notes for the plone.app.discussion Captcha plugin
|
||||
architecture. It also explains how to write your own Captcha plugin (???).</p>
|
||||
<p>Currently there are two plugins that work with plone.app.discussion:</p>
|
||||
<blockquote>
|
||||
<ol class="arabic simple">
|
||||
<li>plone.formwidget.captcha</li>
|
||||
<li>plone.formwidget.recaptcha</li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<ol class="arabic simple">
|
||||
<li>Captcha plugin must provide the feature “plone.app.discussion-captcha”:</li>
|
||||
</ol>
|
||||
<p>Add this to your configure.zcml:</p>
|
||||
<div class="highlight-python"><pre><configure ...
|
||||
xmlns:meta="http://namespaces.zope.org/meta">
|
||||
<!-- Declare that plone.formwidget.captcha provides a Captcha field that
|
||||
can be used by plone.app.discussion to add a Captcha field to comment
|
||||
forms. -->
|
||||
<meta:provides feature="plone.app.discussion-captcha" />
|
||||
|
||||
<h1 id="global-module-index">Global Module Index</h1>
|
||||
<a href="#cap-P"><strong>P</strong></a>
|
||||
<hr/>
|
||||
|
||||
<table width="100%" class="indextable" cellspacing="0" cellpadding="2"><tr class="pcap"><td></td><td> </td><td></td></tr>
|
||||
<tr class="cap"><td></td><td><a name="cap-P"><strong>P</strong></a></td><td></td></tr><tr>
|
||||
<td><img src="_static/minus.png" id="toggle-1"
|
||||
class="toggler" style="display: none" alt="-" /></td>
|
||||
<td>
|
||||
<tt class="xref">plone</tt></td><td>
|
||||
<em></em></td></tr><tr class="cg-1">
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="index.html#module-plone.app.discussion"><tt class="xref">plone.app.discussion</tt></a></td><td>
|
||||
<em></em></td></tr>
|
||||
</table>
|
||||
...
|
||||
</configure></pre>
|
||||
</div>
|
||||
<p>For examples have a look at plone.formwidget.captcha</p>
|
||||
<p><a class="reference external" href="https://svn.plone.org/svn/plone/plone.formwidget.captcha/trunk/plone/formwidget/captcha/configure.zcml">https://svn.plone.org/svn/plone/plone.formwidget.captcha/trunk/plone/formwidget/captcha/configure.zcml</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
@ -67,6 +72,11 @@
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/captcha.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
@ -90,9 +100,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="#" title="Global Module Index"
|
||||
>modules</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
@ -20,6 +20,7 @@
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="top" title="plone.app.discussion v1.0b4 documentation" href="index.html" />
|
||||
<link rel="next" title="API/Interfaces" href="api.html" />
|
||||
<link rel="prev" title="Architectural Principles" href="architecture.html" />
|
||||
</head>
|
||||
<body>
|
||||
@ -30,8 +31,8 @@
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
accesskey="M">modules</a> |</li>
|
||||
<a href="api.html" title="API/Interfaces"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="architecture.html" title="Architectural Principles"
|
||||
accesskey="P">previous</a> |</li>
|
||||
@ -219,19 +220,18 @@ an auto-moderation ‘white-list’, e.g. by email address or username.<
|
||||
</div>
|
||||
<div class="section" id="forms-and-ui">
|
||||
<h2>Forms and UI<a class="headerlink" href="#forms-and-ui" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The basic commenting display/reply form should be placed in a viewlet.</p>
|
||||
<p>Ideally, the reply form should be inline, perhaps revealed with JavaScript
|
||||
if enabled. This allows full contextualisation of replies. The current
|
||||
solution, with a separate form that shows some context, is brittle and
|
||||
over-complicated.</p>
|
||||
<p>If we support quoting of comments in replies, we can load the text to quote
|
||||
using JavaScript as well.</p>
|
||||
<p>As a fall-back for non-JavaScript enabled browsers, it is probably OK not to
|
||||
support quoting and/or viewing of context, e.g. the user is taken to a standalone
|
||||
‘comment reply’ form.</p>
|
||||
<p>All actual forms should be handled using z3c.form and plone.z3cform’s
|
||||
ExtensibleForm support. This makes it possible to plug in additional fields
|
||||
declaratively, e.g. to include spam protection.</p>
|
||||
<p>The basic commenting display/reply form is placed in a viewlet.</p>
|
||||
<p>The reply form is dynamically created right under the comment when the user hits
|
||||
the reply button. To do so, we copy the standard comment form with a jQuery
|
||||
function. This function sets the form’s hidden in_reply_to field to the id of
|
||||
the comment the user wants to reply to. This also makes is possible to use
|
||||
z3c.form validation for the reply forms, because we can uniquely identify the
|
||||
a reply form request and return the reply form with validation errors.</p>
|
||||
<p>Since we rely on JavaScript for the reply form creation, the reply button is
|
||||
removed for nonJavaScript enabled browsers.</p>
|
||||
<p>The comment form uses z3c.form and plone.z3cform’s ExtensibleForm support. This
|
||||
makes it possible to plug in additional fields declaratively, e.g. to include
|
||||
SPAM protection.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -258,6 +258,9 @@ declaratively, e.g. to include spam protection.</p>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="architecture.html"
|
||||
title="previous chapter">Architectural Principles</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="api.html"
|
||||
title="next chapter">API/Interfaces</a></p>
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/design.txt"
|
||||
@ -287,8 +290,8 @@ declaratively, e.g. to include spam protection.</p>
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
>modules</a> |</li>
|
||||
<a href="api.html" title="API/Interfaces"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="architecture.html" title="Architectural Principles"
|
||||
>previous</a> |</li>
|
||||
|
@ -28,9 +28,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="#" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
accesskey="M">modules</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -43,30 +40,100 @@
|
||||
|
||||
<h1 id="index">Index</h1>
|
||||
|
||||
<a href="#C"><strong>C</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#P"><strong>P</strong></a>
|
||||
<a href="#_"><strong>_</strong></a> | <a href="#A"><strong>A</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#G"><strong>G</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#P"><strong>P</strong></a> | <a href="#T"><strong>T</strong></a>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
<h2 id="_">_</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#IConversation.__delitem__">__delitem__() (IConversation method)</a></dt>
|
||||
<dd><dl>
|
||||
<dt><a href="api.html#IReplies.__delitem__">(IReplies method)</a></dt>
|
||||
</dl></dd>
|
||||
<dt><a href="api.html#IComment.__name__">__name__ (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IComment.__parent__">__parent__ (IComment attribute)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="A">A</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#IConversation.addComment">addComment() (IConversation method)</a></dt>
|
||||
<dd><dl>
|
||||
<dt><a href="api.html#IReplies.addComment">(IReplies method)</a></dt>
|
||||
</dl></dd>
|
||||
<dt><a href="api.html#IComment.author_email">author_email (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IComment.author_name">author_name (IComment attribute)</a></dt>
|
||||
<dt><a href="api.html#IComment.author_username">author_username (IComment attribute)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="C">C</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#plone.app.discussion.conversation.Conversation">Conversation (class in plone.app.discussion.conversation)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IComment.comment_id">comment_id (IComment attribute)</a></dt>
|
||||
<dt><a href="api.html#IConversation.commentators">commentators (IConversation attribute)</a></dt>
|
||||
<dt><a href="api.html#IComment.creation_date">creation_date (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IComment.creator">creator (IComment attribute)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="E">E</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#plone.app.discussion.conversation.Conversation.enabled">enabled() (plone.app.discussion.conversation.Conversation method)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IConversation.enabled">enabled() (IConversation method)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="G">G</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#IConversation.getComments">getComments() (IConversation method)</a></dt>
|
||||
<dt><a href="api.html#IConversation.getThreads">getThreads() (IConversation method)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="I">I</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#plone.app.discussion.interfaces.IComment">IComment (interface in plone.app.discussion.interfaces)</a></dt>
|
||||
<dt><a href="api.html#plone.app.discussion.interfaces.IConversation">IConversation (interface in plone.app.discussion.interfaces)</a></dt>
|
||||
<dt><a href="api.html#IComment.in_reply_to">in_reply_to (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#plone.app.discussion.interfaces.IReplies">IReplies (interface in plone.app.discussion.interfaces)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="L">L</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#IConversation.last_comment_date">last_comment_date (IConversation attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="M">M</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#IComment.mime_type">mime_type (IComment attribute)</a></dt>
|
||||
<dt><a href="api.html#IComment.modification_date">modification_date (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="P">P</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#module-plone.app.discussion">plone.app.discussion (module)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IComment.portal_type">portal_type (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="T">T</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="api.html#IComment.text">text (IComment attribute)</a></dt>
|
||||
<dt><a href="api.html#IComment.title">title (IComment attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="api.html#IConversation.total_comments">total_comments (IConversation attribute)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
|
||||
@ -102,9 +169,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="#" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
>modules</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -29,9 +29,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
accesskey="M">modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="architecture.html" title="Architectural Principles"
|
||||
accesskey="N">next</a> |</li>
|
||||
@ -59,31 +56,44 @@
|
||||
<li class="toctree-l2"><a class="reference external" href="design.html#forms-and-ui">Forms and UI</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="api.html">API/Interfaces</a></li>
|
||||
</ul>
|
||||
<div class="section" id="module-plone.app.discussion">
|
||||
<h2>API<a class="headerlink" href="#module-plone.app.discussion" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="class">
|
||||
<dt id="plone.app.discussion.conversation.Conversation">
|
||||
<em class="property">class </em><tt class="descclassname">plone.app.discussion.conversation.</tt><tt class="descname">Conversation</tt><big>(</big><em>id='++conversation++default'</em><big>)</big><a class="headerlink" href="#plone.app.discussion.conversation.Conversation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A conversation is a container for all comments on a content object.</p>
|
||||
<p>It manages internal data structures for comment threading and efficient
|
||||
comment lookup.</p>
|
||||
<dl class="method">
|
||||
<dt id="plone.app.discussion.conversation.Conversation.enabled">
|
||||
<tt class="descname">enabled</tt><big>(</big><big>)</big><a class="headerlink" href="#plone.app.discussion.conversation.Conversation.enabled" title="Permalink to this definition">¶</a></dt>
|
||||
<dd>hi world</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="changelog">
|
||||
<h1>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="b4-unreleased">
|
||||
<h2>1.0b4 (unreleased)<a class="headerlink" href="#b4-unreleased" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="b5-unreleased">
|
||||
<h2>1.0b5 (unreleased)<a class="headerlink" href="#b5-unreleased" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Fix #662654: As an administrator, I can configure a Collection to show recent comments.
|
||||
Comment.Type() now correctly returns the FTI title (‘Comment’)
|
||||
<li>Fix encoding error in migration procedure, otherwise migration procedure
|
||||
breaks on joining output list in case we have there any non-ascii characters.
|
||||
[piv]</li>
|
||||
<li>plone.z3cform 0.6.0 compatibility (fix maximum recursion depth error which
|
||||
appears with plone.z3cform higher than 0.5.10).
|
||||
[piv]</li>
|
||||
<li>Removed moderation.js from js registry and include it only in moderation.pt as
|
||||
that is the only place where it is used.
|
||||
[ggozad]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="b4-2010-04-04">
|
||||
<h2>1.0b4 (2010-04-04)<a class="headerlink" href="#b4-2010-04-04" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>New feature: As a moderator, I am notified when new comments require my
|
||||
attention.
|
||||
[timo]</li>
|
||||
<li>Sphinx-based developer documentation added. See
|
||||
<a class="reference external" href="http://packages.python.org/plone.app.discussion">http://packages.python.org/plone.app.discussion</a>.
|
||||
[timo]</li>
|
||||
<li>Rename “Single State Workflow” to “Comment Single State Workflow”.
|
||||
[timo]</li>
|
||||
<li>Rename ‘publish comment’ to ‘approve comment’. This fixes #1608470.
|
||||
[timo]</li>
|
||||
<li>Show a warning in the moderation view if the moderation workflow is disabled.
|
||||
[timo]</li>
|
||||
<li>Move ‘Moderate comments’ link from site actions to user actions.
|
||||
[timo]</li>
|
||||
<li>Fix #662654: As an administrator, I can configure a Collection to show recent
|
||||
comments. Comment.Type() now correctly returns the FTI title (‘Comment’)
|
||||
[chaoflow]</li>
|
||||
<li>German translation updated.
|
||||
[juh]</li>
|
||||
@ -97,15 +107,15 @@ translated button titles can differ in size from the English titles.
|
||||
<li>Fix unicode error when non-ASCII characters are typed into the name field of a
|
||||
comment by anonymous users.
|
||||
[regebro]</li>
|
||||
<li>New feature: As a moderator, I am notified when new comments require my
|
||||
attention.
|
||||
[timo]</li>
|
||||
<li>Make p.a.d. work with the recent version of plone.z3cform (0.5.10)
|
||||
[timo]</li>
|
||||
<li>Make p.a.d. styles less generic. This fixes #10253.
|
||||
[timo]</li>
|
||||
<li>Added greek translation.
|
||||
[ggozad]</li>
|
||||
<li>A bug in the moderator panel meant you couldn’t delete items in a virtual
|
||||
host, if your portal was named “plone”.
|
||||
[regebro]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="b3-2010-01-28">
|
||||
@ -158,42 +168,58 @@ have this workflow installed.
|
||||
<h2>1.0b2 (2010-01-22)<a class="headerlink" href="#b2-2010-01-22" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Bugfix for #2010181: The name of a commenter who commented while not logged in
|
||||
should not appear as a link.</li>
|
||||
should not appear as a link.
|
||||
[timo]</li>
|
||||
<li>Bugfix for #2010078: Comments that await moderation are visually distinguished
|
||||
from published comments.</li>
|
||||
from published comments.
|
||||
[timo]</li>
|
||||
<li>Bugfix for #2010085: Use object_provides instead of portal_type to query the
|
||||
catalog for comment.</li>
|
||||
catalog for comment.
|
||||
[timo]</li>
|
||||
<li>Bugfix for #2010071: p.a.d. works with plone.z3cform 0.5.7 and
|
||||
plone.app.z3cform 0.4.9 now.</li>
|
||||
plone.app.z3cform 0.4.9 now.
|
||||
[timo]</li>
|
||||
<li>Bugfix for #1513398: Show “anonymous” when name field is empty in comment
|
||||
form.</li>
|
||||
form.
|
||||
[timo]</li>
|
||||
<li>Migration view: Dry run option added, abort transaction when something goes
|
||||
wrong during migration, be more verbose about errors.</li>
|
||||
wrong during migration, be more verbose about errors.
|
||||
[timo]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="b1-2009-12-08">
|
||||
<h2>1.0b1 (2009-12-08)<a class="headerlink" href="#b1-2009-12-08" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Fix redirect after a adding a comment</li>
|
||||
<li>Replace yes/no widgets with check boxes in the discussion control panel</li>
|
||||
<li>Make comments viewlet show up in Plone 4</li>
|
||||
<li>Apply Plone 4 styles to comment form</li>
|
||||
<li>Simplify moderation view by removing the filters</li>
|
||||
<li>Fix redirect after a adding a comment
|
||||
[timo]</li>
|
||||
<li>Replace yes/no widgets with check boxes in the discussion control panel
|
||||
[timo]</li>
|
||||
<li>Make comments viewlet show up in Plone 4
|
||||
[timo]</li>
|
||||
<li>Apply Plone 4 styles to comment form
|
||||
[timo]</li>
|
||||
<li>Simplify moderation view by removing the filters
|
||||
[timo]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="a2-2009-10-18">
|
||||
<h2>1.0a2 (2009-10-18)<a class="headerlink" href="#a2-2009-10-18" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Plone 4 / Zope 2.12 support</li>
|
||||
<li>Comment migration script added</li>
|
||||
<li>Pluggable plone.z3cform comment forms</li>
|
||||
<li>Captcha and ReCaptcha support added</li>
|
||||
<li>Plone 4 / Zope 2.12 support
|
||||
[timo]</li>
|
||||
<li>Comment migration script added
|
||||
[timo]</li>
|
||||
<li>Pluggable plone.z3cform comment forms
|
||||
[timo]</li>
|
||||
<li>Captcha and ReCaptcha support added
|
||||
[timo]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="a1-2009-06-07">
|
||||
<h2>1.0a1 (2009-06-07)<a class="headerlink" href="#a1-2009-06-07" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Basic commenting functionality and batch moderation.</li>
|
||||
<li>Basic commenting functionality and batch moderation.
|
||||
[timo]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -215,11 +241,11 @@ wrong during migration, be more verbose about errors.</li>
|
||||
<h3><a href="#">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference external" href="#">Welcome to plone.app.discussion’s documentation!</a><ul>
|
||||
<li><a class="reference external" href="#module-plone.app.discussion">API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference external" href="#changelog">Changelog</a><ul>
|
||||
<li><a class="reference external" href="#b4-unreleased">1.0b4 (unreleased)</a></li>
|
||||
<li><a class="reference external" href="#b5-unreleased">1.0b5 (unreleased)</a></li>
|
||||
<li><a class="reference external" href="#b4-2010-04-04">1.0b4 (2010-04-04)</a></li>
|
||||
<li><a class="reference external" href="#b3-2010-01-28">1.0b3 (2010-01-28)</a></li>
|
||||
<li><a class="reference external" href="#b2-2010-01-22">1.0b2 (2010-01-22)</a></li>
|
||||
<li><a class="reference external" href="#b1-2009-12-08">1.0b1 (2009-12-08)</a></li>
|
||||
@ -261,9 +287,6 @@ wrong during migration, be more verbose about errors.</li>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="architecture.html" title="Architectural Principles"
|
||||
>next</a> |</li>
|
||||
|
@ -1,6 +1,30 @@
|
||||
# Sphinx inventory version 1
|
||||
# Project: plone.app.discussion
|
||||
# Version: 1.0b4
|
||||
plone.app.discussion mod index.html
|
||||
plone.app.discussion.conversation.Conversation class index.html
|
||||
plone.app.discussion.conversation.Conversation.enabled method index.html
|
||||
IConversation.getComments method api.html
|
||||
IComment.title attribute api.html
|
||||
IComment.modification_date attribute api.html
|
||||
IConversation.getThreads method api.html
|
||||
IComment.comment_id attribute api.html
|
||||
plone.app.discussion.interfaces.IReplies interface api.html
|
||||
IConversation.enabled method api.html
|
||||
plone.app.discussion.interfaces.IComment interface api.html
|
||||
IComment.creator attribute api.html
|
||||
IComment.author_email attribute api.html
|
||||
IComment.author_name attribute api.html
|
||||
IConversation.__delitem__ method api.html
|
||||
IComment.creation_date attribute api.html
|
||||
IConversation.total_comments attribute api.html
|
||||
IComment.__parent__ attribute api.html
|
||||
IComment.in_reply_to attribute api.html
|
||||
IComment.__name__ attribute api.html
|
||||
IComment.text attribute api.html
|
||||
plone.app.discussion.interfaces.IConversation interface api.html
|
||||
IComment.author_username attribute api.html
|
||||
IConversation.last_comment_date attribute api.html
|
||||
IComment.portal_type attribute api.html
|
||||
IComment.mime_type attribute api.html
|
||||
IReplies.addComment method api.html
|
||||
IConversation.commentators attribute api.html
|
||||
IConversation.addComment method api.html
|
||||
IReplies.__delitem__ method api.html
|
||||
|
@ -29,9 +29,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
accesskey="M">modules</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -80,9 +77,6 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="modindex.html" title="Global Module Index"
|
||||
>modules</a> |</li>
|
||||
<li><a href="index.html">plone.app.discussion v1.0b4 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user