[Zope-PTK] Refactoring Discussable

Dan L. Pierson dan@sol.control.com
Thu, 27 Jul 2000 15:06:19 -0400 (EDT)

Steve Alexander writes:
 > Thinking about this, there's no reason why PTK can't ship with an
 > "Immuatble Discussable" base class. This meets many needs.
 > If I want a site where discussion items are owned, in a stronger sense,
 > by contributors, then I can make my own base-class for this.


 > Can we define an interface that abstracts over different implementations
 > of discussable content?

The current Discussable is a bit of a motly collection of features,
IMHO.  Most of them may be useful, but I think we can remove some of
the UI features from a (all!) PTKBase class.  Here's a quick cut:

class Discussable(Base):
    def createReply(self, title, text, REQUEST, RESPONSE):

       This forces the reply to be a DiscussionItem with text format
of structured-text.  This should be configurable.

    def getReplyResults(self):

    def getReplies(self):

That's it.  Of the other methods currently in Discussable:

    def getReplyLocationAndID(self, REQUEST):

       Shouldn't be a method of the base class.  Might be a method of
a derived class, but I think it should be in the portal itself, which
may choose to implement it by calling a derived class method.

    def quotedContents(self):

       Needs to be user configurable, thus shouldn't be in the base.
Of course, a default method should be provided.

    def allowReplies(self):

       I think that this should at least be a switch that can be set
by a portal manager.

    def toolbox_actions(self):

       I don't think that portal UI details should be part of classes
like this.  For example, if my portal UI always shows replies below
the main item, why should I have to have a redundant show replies
toolbox item.