Experiences with commenting solutions

14 Messages Forum Options Options
Permalink
Martin Aspeli-2
Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Hi,

I've been testing out iqpp.plone.commenting and qPloneComments for a Plone 3.1 site. Both require a little bit of UI work for this project, but feature wise seem a decent fit.

I'd like to hear from people who may've used these (or other) solutions in practice. Any reason to choose one over the other? Any caveats?

Cheers,
Martin
Andreas Jung-5
Re: [Product-Developers] Experiences with commenting solutions
Reply Threaded More
Print post
Permalink


--On 30. Juni 2008 10:12:06 -0700 Martin Aspeli <optilude@...> wrote:

>
> Hi,
>
> I've been testing out iqpp.plone.commenting and qPloneComments for a Plone
> 3.1 site. Both require a little bit of UI work for this project, but
> feature wise seem a decent fit.
>

I can only say that iqpp.p.c works like a charm. The only thing I am
missing is that it does respect the "allow comments" setting within the
Types control panel.

Andreas

_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers

attachment0 (201 bytes) Download Attachment
Martin Aspeli-2
[Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Andreas Jung wrote:

>
> --On 30. Juni 2008 10:12:06 -0700 Martin Aspeli <optilude@...> wrote:
>
>> Hi,
>>
>> I've been testing out iqpp.plone.commenting and qPloneComments for a Plone
>> 3.1 site. Both require a little bit of UI work for this project, but
>> feature wise seem a decent fit.
>>
>
> I can only say that iqpp.p.c works like a charm. The only thing I am
> missing is that it does respect the "allow comments" setting within the
> Types control panel.

Thanks Andreas!

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Jon Stahl
RE: [Product-Developers] Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Martin

What's the state of plone.app.commenting?  




> -----Original Message-----
> From: product-developers-bounces@...
[mailto:product-developers-
> bounces@...] On Behalf Of Martin Aspeli
> Sent: Monday, June 30, 2008 10:12 AM
> To: product-developers@...
> Subject: [Product-Developers] Experiences with commenting solutions
>
>
> Hi,
>
> I've been testing out iqpp.plone.commenting and qPloneComments for a
Plone
> 3.1 site. Both require a little bit of UI work for this project, but
feature
> wise seem a decent fit.
>
> I'd like to hear from people who may've used these (or other)
solutions in

> practice. Any reason to choose one over the other? Any caveats?
>
> Cheers,
> Martin
> --
> View this message in context: http://www.nabble.com/Experiences-with-
> commenting-solutions-tp18200103s20094p18200103.html
> Sent from the Product Developers mailing list archive at Nabble.com.
>
>
> _______________________________________________
> Product-Developers mailing list
> Product-Developers@...
> http://lists.plone.org/mailman/listinfo/product-developers

_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
-----
Jon Stahl
ONE/Northwest
http://www.onenw.org
Martin Aspeli-2
[Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Jon Stahl wrote:
> Martin
>
> What's the state of plone.app.commenting?  

I looked at the openplans project, but it doesn't look very far along. :-/

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Hedley Roos
Re: [Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Martin Aspeli wrote:
> Jon Stahl wrote:
>> Martin
>>
>> What's the state of plone.app.commenting?  
>
> I looked at the openplans project, but it doesn't look very far along. :-/
>
> Martin
>

I have also looked at it quite a bit and I think it needs mostly UI. It
would be a shame to ignore it since it follows your thoughts / pattern
you set out in an earlier discussion (about 3 weeks ago I think).

The only problem I found with the version in trunk is with nesting
comments not rendering at all.

I think of p.a.c as a commenting framework and not a commenting product
in its current state. I'm still waiting for Contributor access then I'll
do a few commits.

Having said all that - if you need a solution right now you're probably
better of with Andreas' suggestion.

Hedley

_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Martin Aspeli-2
Re: [Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink

Hedley Roos wrote:
Martin Aspeli wrote:
> Jon Stahl wrote:
>> Martin
>>
>> What's the state of plone.app.commenting?  
>
> I looked at the openplans project, but it doesn't look very far along. :-/
>
> Martin
>

I have also looked at it quite a bit and I think it needs mostly UI. It
would be a shame to ignore it since it follows your thoughts / pattern
you set out in an earlier discussion (about 3 weeks ago I think).
Heh, I'm not ignoring it, but it's not "production ready" yet, so I can't use it for this project.

The only problem I found with the version in trunk is with nesting
comments not rendering at all.

I think of p.a.c as a commenting framework and not a commenting product
in its current state. I'm still waiting for Contributor access then I'll
do a few commits.
What's standing in your way? Did you mail the contrib agreement?

Having said all that - if you need a solution right now you're probably
better of with Andreas' suggestion.
Right. :)

Martni
Hedley Roos
Re: [Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink

>>
>> I think of p.a.c as a commenting framework and not a commenting product
>> in its current state. I'm still waiting for Contributor access then I'll
>> do a few commits.
>>
>
> What's standing in your way? Did you mail the contrib agreement?
>
>

Yep, I did mail it.

_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Martin Aspeli-2
Re: [Product-Developers] Experiences with commenting solutions
Reply Threaded More
Print post
Permalink

Andreas Jung-5 wrote:
I can only say that iqpp.p.c works like a charm. The only thing I am
missing is that it does respect the "allow comments" setting within the
Types control panel.
It's working well for us now as well.

There are a couple of things about iqpp.plone.commenting that I think warrants fixing if people are still working on it. None are very big, though.

A minor niggle is that the fields in the custom templates don't use class="field" on their divs, making them look funny. :) Another is that the ICommentingOptions adapter seems to create annotations on the fly in __init__() (i.e. when it's adapted) which is pretty bad since it could lead to write-on-read situations. Oh, and it installs an action called "options" that is available even on types where the view it links to are not. Using the schema extender on ICommentable would be better.

Not respecting the FTI option and registering a blanket adapter on for BaseContent is the biggest problem, though. This means that you get comments on things that aren't really content and there's no per-type setting. I fixed it with an override adapter like this:

from zope.interface import implements
from zope.component import adapts

from iqpp.plone.commenting.interfaces import ICommentingOptions
from iqpp.plone.commenting.interfaces import ICommentable

from iqpp.plone.commenting.adapters.options import CommentingOptions

class SaneCommentingOptions(CommentingOptions):
    adapts(ICommentable)
   
    def getGlobalOption(self, name):
        if name == "is_enabled":
            try:
                fti = self.context.getTypeInfo()
                return fti.allowDiscussion()
            except AttributeError:
                pass
       
        return super(SaneCommentingOptions, self).getGlobalOption(name)

I think it's a bit annoying that these things are using string-based option checking, but oh well. All in all, the product is very good.

Martin
Martin Aspeli-2
Re: [Product-Developers] Experiences with commenting solutions
Reply Threaded More
Print post
Permalink

Martin Aspeli wrote:
Not respecting the FTI option and registering a blanket adapter on for BaseContent is the biggest problem, though. This means that you get comments on things that aren't really content and there's no per-type setting. I fixed it with an override adapter like this:
... or rather:

from zope.interface import implements
from zope.component import adapts

from iqpp.plone.commenting.interfaces import ICommentingOptions
from iqpp.plone.commenting.interfaces import ICommentable

from iqpp.plone.commenting.adapters.options import CommentingOptions

class SaneCommentingOptions(CommentingOptions):
    adapts(ICommentable)
   
    def getGlobalOption(self, name):
        if name == "is_enabled":
            try:
                return self.context.isDiscussable()
            except AttributeError:
                pass
       
        return super(SaneCommentingOptions, self).getGlobalOption(name)

Martin
Kai Diefenbach
[Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Hi Martin,

Martin Aspeli <optilude@...> wrote:

> Andreas Jung-5 wrote:
> >
> > I can only say that iqpp.p.c works like a charm. The only thing I am
> > missing is that it does respect the "allow comments" setting within the
> > Types control panel.
> >
>
> It's working well for us now as well.

Great.

> There are a couple of things about iqpp.plone.commenting that I think
> warrants fixing if people are still working on it. None are very big,
> though.

I'm going to do that.

> A minor niggle is that the fields in the custom templates don't use
> class="field" on their divs, making them look funny. :) Another is that the
> ICommentingOptions adapter seems to create annotations on the fly in
> __init__() (i.e. when it's adapted) which is pretty bad since it could lead
> to write-on-read situations. Oh, and it installs an action called "options"
> that is available even on types where the view it links to are not. Using
> the schema extender on ICommentable would be better.

I never used schema extender yet so I'm not really sure what you mean.

Do you mean to use schema extender to add the options field into the
schema of the ICommentable rather than use a own form available via an
action?

> Not respecting the FTI option and registering a blanket adapter on for
> BaseContent is the biggest problem, though. This means that you get comments
> on things that aren't really content and there's no per-type setting. I
> fixed it with an override adapter like this:

> [snip]

Point taken.

> I think it's a bit annoying that these things are using string-based option
> checking, but oh well. All in all, the product is very good.

What would be the better approach? Defining constants in config.py and
using that?

Kai

--
iqplusplus - http://iqpp.de
EasyShop - http://www.geteasyshop.com


_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Wichert Akkerman
Re: [Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Previously Kai Diefenbach wrote:

> Hi Martin,
>
> Martin Aspeli <optilude@...> wrote:
>
> > Andreas Jung-5 wrote:
> > >
> > > I can only say that iqpp.p.c works like a charm. The only thing I am
> > > missing is that it does respect the "allow comments" setting within the
> > > Types control panel.
> > >
> >
> > It's working well for us now as well.
>
> Great.
>
> > There are a couple of things about iqpp.plone.commenting that I think
> > warrants fixing if people are still working on it. None are very big,
> > though.
>
> I'm going to do that.
>
> > A minor niggle is that the fields in the custom templates don't use
> > class="field" on their divs, making them look funny. :) Another is that the
> > ICommentingOptions adapter seems to create annotations on the fly in
> > __init__() (i.e. when it's adapted) which is pretty bad since it could lead
> > to write-on-read situations. Oh, and it installs an action called "options"
> > that is available even on types where the view it links to are not. Using
> > the schema extender on ICommentable would be better.
>
> I never used schema extender yet so I'm not really sure what you mean.
>
> Do you mean to use schema extender to add the options field into the
> schema of the ICommentable rather than use a own form available via an
> action?

Adding forms is rarely a good thing: it adds extra options to the normal
view page where there are already too many. With schemaextender it is
possible to add fields to the standard edit form which makes the user
interface more consistent and gives people a single place to make
changes.

Wichert.

--
Wichert Akkerman <wichert@...>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.

_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Martin Aspeli-2
[Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Hi Kai,

>> A minor niggle is that the fields in the custom templates don't use
>> class="field" on their divs, making them look funny. :) Another is that the
>> ICommentingOptions adapter seems to create annotations on the fly in
>> __init__() (i.e. when it's adapted) which is pretty bad since it could lead
>> to write-on-read situations. Oh, and it installs an action called "options"
>> that is available even on types where the view it links to are not. Using
>> the schema extender on ICommentable would be better.
>
> I never used schema extender yet so I'm not really sure what you mean.
>
> Do you mean to use schema extender to add the options field into the
> schema of the ICommentable rather than use a own form available via an
> action?

I don't think the "options" action (bad name, btw, since it's too
generic) is all that useful. In most cases, you just want to be able to
turn comments on or off, which we already have a field for in
Archetype's ExtensibleMetadata - see my second attempt at an adapter
below - that an ICommentable adapter can just use.

The only other option I think would be useful, would be whether to
override the "enable moderation" status, and *possibly* to be able to
have an email address for new comments, although that's probably
overkill and may mean that a global policy is harder to enforce.

For all other options, the global control panel will suffice.

I'd use schema extender to add a new tickbox like the "allow comments"
one that acts like an on/off switch but reflects the global default if
not explicitly set. You can save the actual value in the annotation you
use anyway.

>> Not respecting the FTI option and registering a blanket adapter on for
>> BaseContent is the biggest problem, though. This means that you get comments
>> on things that aren't really content and there's no per-type setting. I
>> fixed it with an override adapter like this:
>
>> [snip]
>
> Point taken.
>
>> I think it's a bit annoying that these things are using string-based option
>> checking, but oh well. All in all, the product is very good.
>
> What would be the better approach? Defining constants in config.py and
> using that?

No, I meant ... the adapter has fields is_enabled or whatever. However,
those just check the local value. You have to call getEffectiveOption()
to get the real value, as far as I can tell.

The natural interaction pattern would be:

  options = ICommentingOptions(context)
  if options.is_enabled:
     ...

In that sense the propery getters should act as getEffectiveOption does
now. The very notion of an "effective" option and the global/local
hybrid is too much of an implementation detail for me. If you look at my
override, I had to hack around it with an explicit string check, because
all the framework code that's doing something with this adapter calls
the method with the string, rather than calling the attribute getters.

I should be able to plug in a different policy and customise the
behaviour of the individual properties easily. The fact that the default
adapter has a global default and a local override is an implementation
detail.

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers
Kai Diefenbach
[Product-Developers] Re: Experiences with commenting solutions
Reply Threaded More
Print post
Permalink
Hi Martin,

Martin Aspeli <optilude@...> wrote:

> >> Oh, and it installs an action called "options"
> >> that is available even on types where the view it links to are not. Using
> >> the schema extender on ICommentable would be better.
> >
> > I never used schema extender yet so I'm not really sure what you mean.
> >
> > Do you mean to use schema extender to add the options field into the
> > schema of the ICommentable rather than use a own form available via an
> > action?
>
> I don't think the "options" action (bad name, btw, since it's too
> generic) is all that useful. In most cases, you just want to be able to
> turn comments on or off, which we already have a field for in
> Archetype's ExtensibleMetadata - see my second attempt at an adapter
> below - that an ICommentable adapter can just use.
>
> The only other option I think would be useful, would be whether to
> override the "enable moderation" status, and *possibly* to be able to
> have an email address for new comments, although that's probably
> overkill and may mean that a global policy is harder to enforce.
>
> For all other options, the global control panel will suffice.
>
> I'd use schema extender to add a new tickbox like the "allow comments"
> one that acts like an on/off switch but reflects the global default if
> not explicitly set. You can save the actual value in the annotation you
> use anyway.

I see.

> >> I think it's a bit annoying that these things are using string-based option
> >> checking, but oh well. All in all, the product is very good.
> >
> > What would be the better approach? Defining constants in config.py and
> > using that?
>
> No, I meant ... the adapter has fields is_enabled or whatever. However,
> those just check the local value. You have to call getEffectiveOption()
> to get the real value, as far as I can tell.
>
> The natural interaction pattern would be:
>
>   options = ICommentingOptions(context)
>   if options.is_enabled:
>      ...
>
> In that sense the propery getters should act as getEffectiveOption does
> now. The very notion of an "effective" option and the global/local
> hybrid is too much of an implementation detail for me. If you look at my
> override, I had to hack around it with an explicit string check, because
> all the framework code that's doing something with this adapter calls
> the method with the string, rather than calling the attribute getters.
>
> I should be able to plug in a different policy and customise the
> behaviour of the individual properties easily. The fact that the default
> adapter has a global default and a local override is an implementation
> detail.

I've got it!

I will take your advice into account for future releases. Thanks for
this elaborations.

Kai

--
iqplusplus - http://iqpp.de
EasyShop - http://www.geteasyshop.com


_______________________________________________
Product-Developers mailing list
Product-Developers@...
http://lists.plone.org/mailman/listinfo/product-developers