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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user