def setNodeText(self, jid, node, text): transaction.begin() app = Zope2.app() try: try: portal = app.unrestrictedTraverse(self.portal_id, None) if portal is None: raise DSCException( 'Portal with id %s not found' % self.portal_id) setSite(portal) acl_users = getToolByName(portal, 'acl_users') user_id = JID(jid).user user = acl_users.getUserById(user_id) if user is None: raise DSCException( 'Invalid user %s' % user_id) newSecurityManager(None, user) ct = getToolByName(portal, 'portal_catalog') uid, html_id = node.split('#') item = ct.unrestrictedSearchResults(UID=uid) if not item: raise DSCException( 'Content with UID %s not found' % uid) item = ICollaborativelyEditable(item[0].getObject()) item.setNodeTextFromHtmlID(html_id, text) transaction.commit() except: transaction.abort() raise finally: noSecurityManager() setSite(None) app._p_jar.close() return text
def test_getNodeTextFromHtmlID(self): ce = ICollaborativelyEditable(self.doc) self.assertEqual(ce.getNodeTextFromHtmlID('form-widgets-text'), 'Some text')
def test_setNodeTextFromHtmlID(self): ce = ICollaborativelyEditable(self.doc) ce.setNodeTextFromHtmlID('form-widgets-text', 'New text'.decode('utf-8')) self.assertEqual('New text', self.doc.text)
def test_setNodeTextFromHtmlID(self): ce = ICollaborativelyEditable(self.doc) ce.setNodeTextFromHtmlID('text', 'New text') self.assertEqual('New text', self.doc.getRawText())