#9288: Improved commenting infrastructure
----------------------------+-----------------------------------------------
 Reporter:  timo            |        Owner:  timo    
     Type:  PLIP            |       Status:  assigned
 Priority:  minor           |    Milestone:  4.0     
Component:  Infrastructure  |   Resolution:          
 Keywords:                  |  
----------------------------+-----------------------------------------------
Description changed by timo:

Old description:

> A proposal for an improved commenting infrastructure for Plone.
>
> == Contents ==
>
>     1. Motivation
>     2. Proposal
>     3. Implementation
>     4. Deliverables
>     5. Risks
>     6. Progress Log
>     7. Participants
>
> == Motivation ==
>
> The current Plone discussion framework is very basic and lacks
> functionality that is common in many Content Management Systems and blogs
> these days. Hence, third party developers feel the need to write their
> own commenting framework (e.g. qPloneComments and iqpp.plone.commenting).
> This leads to two major drawbacks. First, the comments are inconsistent
> within a single Plone site and second, the same administrative works as
> do be done twice.
>
> The motivation for this PLIP is to provide an easy to use and adjustable
> comment system using the existing services of Plone. Additionally to
> provide the possibility to re-use the commenting framework for third
> party products (e.g., if a developers feels the need for independent
> options for their product).
>
> In addition to the main goal, there are requirements for a state-of-the-
> art comment system. The Wordpress system may be used as an example and
> gives guidelines for a new system:
>
>     * Moderation: It should be possible to enable moderation so that
> every comment has to be reviewed before publishing.
>     * E-Mail notification: It should be possible to enable a confirmation
> email to be sent to the commenter to confirm the comment.
>     * Captcha Support: Captchas or math questions should be supported and
> should be an option, e.g. "1+1 = 2"
>     * Spam Protection: Akismet and other means of identifying spam should
> be supported.
>     * Mass Editing Screens: Like in Wordpress, views for handling all
> comments of a subtree are useful to moderate comments or check their spam
> state.
>     * Configurable Commenting Forms: It should be possible to decide
> which fields do actually show up in the form.
>     * Extensibility: It should be possible for components to extend the
> comment form and the comment handling/workflow. An example is a plug-in
> which allows commenters to subscribe to further comments via email.
>

> == Proposal ==
>
> As part of the Google Summer of Code 2009, Timo Stollenwerk (with Martin
> Aspeli as mentor) is developing a new commenting package. Martin set up
> the basic commenting infrastructure and made the basic design decisions
> for a zope3ish commenting framework (forms, views, adapters) which can be
> used by any content type.
>
> == Implementation ==
>
> The plone.app.discussion package already has been created with the
> following
> [http://svn.plone.org/svn/plone/plone.app.discussion/trunk/plone/app/discussion/PRINCIPLES.txt
> architectural principles]:
>
>     * Discussion items have a portal_type
>     * Discussion items are cataloged
>     * Discussion items are subject to workflow and permissions
>     * Discussion items are light weight objects
>     * Optimise for retrieval speed
>     * Settings are stored in plone.registry
>     * Forms are constructed using extensible z3c.form forms
>     * Discussion items are stored in a BTree container
>     * Discussion items are accessed using a dict-like interface
>     * Discussion items are retrieved in reverse creation date order
>     * Discussion items do not need readable ids
>     * Discussion items send events
>
> == Deliverables ==
>
> The basic commenting infrastructure is already in place. On August 24th,
> when Google Summer of Code ends, the plone.app.discussion package will be
> in a state that it can replace the current Plone commenting system. This
> doesn't necessarily mean that the system will be feature complete, but
> that the package will provide the basic features for a state-of-the-art
> commenting system This means, it is well tested and well documented, and
> migration of existing comments is possible.
>

> == Risks ==
>

>     * Already existing comments have to be migrated without restrictions.
>     * There might arise conflicts with other, already installed
> commenting packages. Thus we have to look at these and make them work.
>

> == Progress log ==
>
> We set up a story-based project planning tool, to manage the project and
> to track the progress: http://www.pivotaltracker.com/projects/15135
>
>     * GSoC started (2009-04-23)
>     * Basic commenting infrastructure is in place (2009-05-13)
>     * First alpha release 1.0a1 (2009-06-07)
>

> == Participants ==
>
>     * Timo Stollenwerk
>     * Martin Aspeli
>     * Jon Stahl ???
>     * David Glick ???
>     * Lennart Regebro ???

New description:

 A proposal for an improved commenting infrastructure for Plone.

 == Contents ==

     1. Motivation
     2. Proposal
     3. Implementation
     4. Deliverables
     5. Risks
     6. Progress Log
     7. Participants

 == Motivation ==

 The current Plone discussion framework is very basic and lacks
 functionality that is common in many Content Management Systems and blogs
 these days. Hence, third party developers feel the need to write their own
 commenting framework (e.g. qPloneComments and iqpp.plone.commenting). This
 leads to two major drawbacks. First, the comments are inconsistent within
 a single Plone site and second, the same administrative works as do be
 done twice.

 The motivation for this PLIP is to provide an easy to use and adjustable
 comment system using the existing services of Plone. Additionally to
 provide the possibility to re-use the commenting framework for third party
 products (e.g., if a developers feels the need for independent options for
 their product).

 In addition to the main goal, there are requirements for a state-of-the-
 art comment system. The Wordpress system may be used as an example and
 gives guidelines for a new system:

     * Moderation: It should be possible to enable moderation so that every
 comment has to be reviewed before publishing.
     * E-Mail notification: It should be possible to enable a confirmation
 email to be sent to the commenter to confirm the comment.
     * Captcha Support: Captchas or math questions should be supported and
 should be an option, e.g. "1+1 = 2"
     * Spam Protection: Akismet and other means of identifying spam should
 be supported.
     * Mass Editing Screens: Like in Wordpress, views for handling all
 comments of a subtree are useful to moderate comments or check their spam
 state.
     * Configurable Commenting Forms: It should be possible to decide which
 fields do actually show up in the form.
     * Extensibility: It should be possible for components to extend the
 comment form and the comment handling/workflow. An example is a plug-in
 which allows commenters to subscribe to further comments via email.


 == Proposal ==

 As part of the Google Summer of Code 2009, Timo Stollenwerk (with Martin
 Aspeli as mentor) is developing a new commenting package. Martin set up
 the basic commenting infrastructure and made the basic design decisions
 for a zope3ish commenting framework (forms, views, adapters) which can be
 used by any content type.

 == Implementation ==

 The plone.app.discussion package already has been created with the
 following
 
[http://svn.plone.org/svn/plone/plone.app.discussion/trunk/plone/app/discussion/PRINCIPLES.txt
 architectural principles]:

     * Discussion items have a portal_type
     * Discussion items are cataloged
     * Discussion items are subject to workflow and permissions
     * Discussion items are light weight objects
     * Optimise for retrieval speed
     * Settings are stored in plone.registry
     * Forms are constructed using extensible z3c.form forms
     * Discussion items are stored in a BTree container
     * Discussion items are accessed using a dict-like interface
     * Discussion items are retrieved in reverse creation date order
     * Discussion items do not need readable ids
     * Discussion items send events

 == Deliverables ==

 The basic commenting infrastructure is already in place. On August 24th,
 when Google Summer of Code ends, the plone.app.discussion package will be
 in a state that it can replace the current Plone commenting system. This
 doesn't necessarily mean that the system will be feature complete, but
 that the package will provide the basic features for a state-of-the-art
 commenting system This means, it is well tested and well documented, and
 migration of existing comments is possible.


 == Risks ==


     * Already existing comments have to be migrated without restrictions.
     * There might arise conflicts with other, already installed commenting
 packages. Thus we have to look at these and make them work.


 == Progress log ==

 We set up a story-based project planning tool, to manage the project and
 to track the progress: http://www.pivotaltracker.com/projects/15135

     * GSoC started (2009-04-23)
     * Basic commenting infrastructure is in place (2009-05-13)
     * First alpha release 1.0a1 (2009-06-07)


 == Participants ==

     * Timo Stollenwerk
     * Martin Aspeli
     * Jon Stahl
     * David Glick
     * Lennart Regebro

--

-- 
Ticket URL: <http://dev.plone.org/plone/ticket/9288#comment:22>
Plone <http://plone.org>
Plone Content Management System
_______________________________________________
PLIP-Advisories mailing list
plip-advisor...@lists.plone.org
http://lists.plone.org/mailman/listinfo/plip-advisories

Reply via email to