[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/ Add a comment and test.

Charlie Clark cvs-admin at zope.org
Thu Sep 6 20:43:25 UTC 2012


Log message for revision 127758:
  Add a comment and test.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/discussion.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/tests/discussion.txt

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/discussion.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/discussion.py	2012-09-06 16:56:48 UTC (rev 127757)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/discussion.py	2012-09-06 20:43:21 UTC (rev 127758)
@@ -15,11 +15,11 @@
 
 
     title = TextLine(
-        title=_("Title")
+        title=_("Subject (Title)")
     )
 
     text = Text(
-        title=_("Text")
+        title=_("Reply body")
     )
 
 
@@ -33,25 +33,49 @@
         form.Action(
             name="add",
             label=_("Add"),
+            condition=1,
+            validator="validate",
             success="handle_add"
             ),
         form.Action(
             name="edit",
             label=_("Edit"),
+            condition=1,
             success="handle_edit",
             ),
         form.Action(
             name="preview",
             label=_("Preview"),
+            condition=1,
             success="handle_preview",
             )
     )
 
+    redirect = ("portal_actions", "object/view")
+
     @property
     @memoize
-    def atool(self):
-        return getUtility(IActionsTool)
+    def dtool(self):
+        return getUtility(IDiscussionTool)
 
+    @property
+    def is_preview(self):
+        pass
+
+    def handle_add(self, action, data):
+        talkback = self.dtool.getDiscussionFor(self.context)
+        replyID = talkback.createReply(title=data['title'], text=data['text'])
+        reply = talkback.getReply(replyID)
+
+        self.status = _(u"Reply added.")
+        import pdb
+        #pdb.set_trace()
+        self.context.setRedirect(reply, "object/view")
+
+    def handle_preview(self, action, data):
+        pass
+
+
     #form = context.REQUEST.form
     #is_preview = False
     #if add and \

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/tests/discussion.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/tests/discussion.txt	2012-09-06 16:56:48 UTC (rev 127757)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/discussion/tests/discussion.txt	2012-09-06 20:43:21 UTC (rev 127758)
@@ -18,6 +18,22 @@
     >>> uf = app.site.acl_users
     >>> _ignored = uf._doAddUser('mgr', 'mgrpw', ['Manager'], [])
 
+Make superuser
+    >>> from AccessControl.SecurityManagement import newSecurityManager
+    >>> user = app.site.acl_users.getUser('mgr')
+    >>> newSecurityManager(None, user)
+
+Enable discussion for the object
+
+    >>> from zope.component import getUtility
+    >>> from Products.CMFCore.interfaces import IDiscussionTool
+    >>> dtool = getUtility(IDiscussionTool)
+    >>> dtool.isDiscussionAllowedFor(obj)
+    False
+    >>> dtool.overrideDiscussionFor(obj, 1)
+    >>> dtool.isDiscussionAllowedFor(obj)
+    True
+
 Create the browser object we'll be using.
 
     >>> from Testing.testbrowser import Browser
@@ -25,10 +41,22 @@
     >>> browser.handleErrors = False
     >>> browser.addHeader('Authorization', 'Basic mgr:mgrpw')
 
-Enable discussion for the object
+Add a comment
 
-    >>> from zope.component import getUtility
-    >>> from Products.CMFCore.interfaces import IDiscussionTool
-    >>> dtool = getUtility(IDiscussionTool)
-    >>> dtool.isDiscussionAllowedFor(obj)
-    False
+    >>> browser.open("http://localhost/site/myDocument/discuss.html")
+    >>> "[[cmf_default][Reply body]]" in browser.contents
+    True
+    >>> browser.getControl(name='form.title').value = ('A reply')
+    >>> browser.getControl(name='form.text').value = ('What a fantastic article')
+
+Check adding
+
+    >>> browser.getControl('[[cmf_default][Add]]').click()
+    >>> 'talkback' in browser.url
+    True
+    >>> 'A reply' in browser.contents
+    True
+
+Check previewing
+
+    >>> pass



More information about the checkins mailing list