[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