[CMF-checkins] CVS: CMF/CMFCore/interfaces - Discussions.py:1.3

Yvo Schubbe schubbe@web.de
Mon, 6 Jan 2003 15:37:54 -0500


Update of /cvs-repository/CMF/CMFCore/interfaces
In directory cvs.zope.org:/tmp/cvs-serv20084/CMFCore/interfaces

Modified Files:
	Discussions.py 
Log Message:
Merged yuppie-collector096-branch:
- Cleaned up Interfaces and API Help. (Collector #96)
- Removed deprecated 'register' module and interface.

=== CMF/CMFCore/interfaces/Discussions.py 1.2 => 1.3 ===
--- CMF/CMFCore/interfaces/Discussions.py:1.2	Wed Nov 28 14:06:24 2001
+++ CMF/CMFCore/interfaces/Discussions.py	Mon Jan  6 15:37:50 2003
@@ -10,64 +10,72 @@
 # FOR A PARTICULAR PURPOSE
 # 
 ##############################################################################
-def HTMLFile( unused ):
-    """
-       Stub for method loaded from DTML document.
-    """
+""" Discussable interface.
 
-class Discussable:
-    """
-    Discussable is the interface for things which can have responses.
-    It is implemented by PTKBase.Discussions.Discussable.  That class
-    is designed to mix-in with a PortalContent-derived class.  It has
-    already been mixed-in with the actual PortalContent class, so at
-    present, any PTK object can support replies.
-
-    This interface contains some bogosity.  Things like replyForm,
-    replyPreview and createReply really shouldn't be done here.  The
-    interface presently assumes that there is only one sort of object
-    which the user would ever want to use to create a reply.  This is
-    a bad assumption, and needs to be addressed!
-    """
+$Id$
+"""
 
-    threadView = HTMLFile('...')
-    """
-    The threadView method should return an HTML page which displays
-    this item's children (and optionally parents, though not all
-    Discussables can have parents).
+try:
+    from Interface import Interface
+except ImportError:
+    # for Zope versions before 2.6.0
+    from Interface import Base as Interface
 
-    Permission: View
-    """
-    
-    replyForm = HTMLFile('...')
-    """
-    The replyForm method should return an HTML page which presents an
-    interface to enter a reply.  It should have buttons for submiting
-    the form contents to replyPreview and createReply.
 
-    Permission: Reply to item
+class Discussable(Interface):
+    """ Discussable is the interface for things which can have responses.
     """
 
-    replyPreview = HTMLFile('...')
-    """
-    This method needs to present the contents submitted from the
-    replyForm form with a template similar to what the actual response
-    object would use.  It should provide submit buttons linked to
-    replyForm (for 'Edit') and createReply (for 'Reply').
+    def createReply(title, text, Creator=None):
+        """
+        Create a reply in the proper place.
 
-    Permission: Reply to item
+        Permission: Reply to item
+        Returns: HTML (directly or via redirect)
+        """
+                       
+    def getReplies():
+        """
+        Return a sequence of the DiscussionResponse objects which are
+        associated with this Discussable
+
+        Permissions: View
+        Returns: sequence of DiscussionResponses
+        """
+
+    def quotedContents():
+        """
+        Return this object's contents in a form suitable for inclusion
+        as a quote in a response.  The default implementation returns
+        an empty string.  It might be overridden to return a '>' quoted
+        version of the item.
+        """
+
+    def _getReplyResults():
+        """
+        Return the ZCatalog results that represent this object's replies.
+
+        Often, the actual objects are not needed.  This is less expensive
+        than fetching the objects.
+
+        Permissions: View
+        Returns: sequence of ZCatalog results representing DiscussionResponses
+        """
+
+
+class OldDiscussable(Interface):
+    """ Oldstyle discussable interface.
     """
-    
-    def createReply(self, title, text, REQUEST, RESPONSE):
+
+    def createReply(title, text, REQUEST, RESPONSE):
         """
-        Create a reply in the proper place.  See the next method for more
-        information.
+        Create a reply in the proper place.
 
         Permission: Reply to item
         Returns: HTML (directly or via redirect)
         """
 
-    def getReplyLocationAndID(self, REQUEST):
+    def getReplyLocationAndID(REQUEST):
         """
         This method determines where a user's reply should be stored, and
         what it's ID should be.
@@ -89,7 +97,7 @@
         Returns: 2-tuple, containing the container object, and a string ID.
         """
 
-    def getReplyResults(self):
+    def getReplyResults():
         """
         Return the ZCatalog results that represent this object's replies.
 
@@ -100,8 +108,7 @@
         Returns: sequence of ZCatalog results representing DiscussionResponses
         """
 
-                       
-    def getReplies(self):
+    def getReplies():
         """
         Return a sequence of the DiscussionResponse objects which are
         associated with this Discussable
@@ -110,7 +117,7 @@
         Returns: sequence of DiscussionResponses
         """
 
-    def quotedContents(self):
+    def quotedContents():
         """
         Return this object's contents in a form suitable for inclusion
         as a quote in a response.  The default implementation returns
@@ -118,27 +125,12 @@
         version of the item.
         """
 
-    def allowReplies(self):
-        """
-        This method must return a logically true value if an object is
-        willing to support replies.
 
-        Permissions: None assigned
-        Returns: truth value
-        """
-        
-class DiscussionResponse:
-    """
-    
-    This interface describes the behaviour of a Discussion Response.
-    It is implemented in PTKBase.Discussions.DiscussionResponse.  This
-    implementation is also designed to be mixed together with
-    PortalContent.  This has been done in the
-    PTK.DiscussionItem.DiscussionItem class, which the PTK presently
-    uses for all replies.
+class DiscussionResponse(Interface):
+    """ This interface describes the behaviour of a Discussion Response.
     """
 
-    def inReplyTo(self, REQUEST=None):
+    def inReplyTo(REQUEST=None):
         """
         Return the Discussable object which this item is associated with
 
@@ -146,7 +138,7 @@
         Returns: a Discussable object
         """
 
-    def setReplyTo(self, reply_to):
+    def setReplyTo(reply_to):
         """
         Make this object a response to the passed object.  (Will also
         accept a path in the form of a string.)  If reply_to does not
@@ -157,7 +149,7 @@
         Returns: None
         """
 
-    def parentsInThread(self, size=0):
+    def parentsInThread(size=0):
         """
         Return the list of object which are this object's parents, from the
         point of view of the threaded discussion.  Parents are ordered