def exportTypesTool(context): """ Export types tool content types as a set of XML files. """ site = context.getSite() ttool = getToolByName(site, 'portal_types') if ttool is None: return 'Types tool: Nothing to export.' ttc = TypesToolExportConfigurator(site).__of__(site) tool_xml = ttc.generateXML() context.writeDataFile(_FILENAME, tool_xml, 'text/xml') for ti_id in ttool.listContentTypes(): type_filename = '%s.xml' % ti_id.replace(' ', '_') ti = getattr(ttool, ti_id) exporter = INodeExporter(ti) if exporter is None: continue doc = PrettyDocument() doc.appendChild(exporter.exportNode(doc)) context.writeDataFile(type_filename, doc.toprettyxml(' '), 'text/xml', 'types') # XXX: YAGNI? # exportScriptsFromContainer(ttool, ('typestool_scripts',)) return 'Types tool exported'
def exportTypesTool(context): """ Export types tool content types as a set of XML files. """ site = context.getSite() ttool = getToolByName(site, 'portal_types') if ttool is None: return 'Types tool: Nothing to export.' ttc = TypesToolExportConfigurator(site).__of__(site) tool_xml = ttc.generateXML() context.writeDataFile(_FILENAME, tool_xml, 'text/xml') for ti_id in ttool.listContentTypes(): type_filename = '%s.xml' % ti_id.replace( ' ', '_' ) ti = getattr(ttool, ti_id) exporter = INodeExporter(ti) if exporter is None: continue doc = PrettyDocument() doc.appendChild(exporter.exportNode(doc)) context.writeDataFile(type_filename, doc.toprettyxml(' '), 'text/xml', 'types') # XXX: YAGNI? # exportScriptsFromContainer(ttool, ('typestool_scripts',)) return 'Types tool exported'
def test_attr_quoting(self): original = 'baz <bar>&"\'' expected = ('<?xml version="1.0"?>\n' '<doc foo="baz &nbsp;<bar>&"\'"/>\n') doc = PrettyDocument() node = doc.createElement('doc') node.setAttribute('foo', original) doc.appendChild(node) self.assertEqual(doc.toprettyxml(' '), expected) # Reparse e = parseString(expected).documentElement self.assertEqual(e.getAttribute('foo'), original)
def test_text_quoting(self): original = 'goo <hmm>&"\'' expected = ('<?xml version="1.0"?>\n' '<doc>goo &nbsp;<hmm>&"\'</doc>\n') doc = PrettyDocument() node = doc.createElement('doc') child = doc.createTextNode(original) node.appendChild(child) doc.appendChild(node) self.assertEqual(doc.toprettyxml(' '), expected) # Reparse e = parseString(expected).documentElement self.assertEqual(e.childNodes[0].nodeValue, original)
def test_text_quoting(self): from Products.GenericSetup.utils import PrettyDocument original = "goo <hmm>&\"'" expected = '<?xml version="1.0"?>\n' "<doc>goo &nbsp;<hmm>&\"'</doc>\n" doc = PrettyDocument() node = doc.createElement("doc") child = doc.createTextNode(original) node.appendChild(child) doc.appendChild(node) self.assertEqual(doc.toprettyxml(" "), expected) # Reparse e = _getDocumentElement(expected) self.assertEqual(e.childNodes[0].nodeValue, original)
def test_attr_quoting(self): from Products.GenericSetup.utils import PrettyDocument original = "baz <bar>&\"'" expected = '<?xml version="1.0"?>\n' '<doc bar="" foo="baz ' "&nbsp;<bar>&"'\"/>\n" doc = PrettyDocument() node = doc.createElement("doc") node.setAttribute("foo", original) node.setAttribute("bar", None) doc.appendChild(node) self.assertEqual(doc.toprettyxml(" "), expected) # Reparse e = _getDocumentElement(expected) self.assertEqual(e.getAttribute("foo"), original)
def test_attr_quoting(self): from Products.GenericSetup.utils import PrettyDocument original = 'baz <bar>&"\'' expected = ('<?xml version="1.0"?>\n' '<doc bar="" foo="baz &nbsp;<bar>&"\'"/>\n') doc = PrettyDocument() node = doc.createElement('doc') node.setAttribute('foo', original) node.setAttribute('bar', None) doc.appendChild(node) self.assertEqual(doc.toprettyxml(' '), expected) # Reparse e = _getDocumentElement(expected) self.assertEqual(e.getAttribute('foo'), original)
def test_attr_quoting(self): from Products.GenericSetup.utils import PrettyDocument original = 'baz <bar>&"\'' expected = ('<?xml version="1.0"?>\n' '<doc bar="" foo="baz ' '&nbsp;<bar>&"\'"/>\n') doc = PrettyDocument() node = doc.createElement('doc') node.setAttribute('foo', original) node.setAttribute('bar', None) doc.appendChild(node) self.assertEqual(doc.toprettyxml(' '), expected) # Reparse e = _getDocumentElement(expected) self.assertEqual(e.getAttribute('foo'), original)
def exportActionProviders(context): """ Export actions tool. """ site = context.getSite() atool = getToolByName(site, 'portal_actions', None) if atool is None: return 'Actions tool: Nothing to export.' exporter = INodeExporter(atool) if exporter is None: return 'Actions tool: Export adapter misssing.' doc = PrettyDocument() doc.appendChild(exporter.exportNode(doc)) context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml') return 'Actions tool exported.'
def exportCookieCrumbler(context): """ Export cookie crumbler settings as an XML file. """ site = context.getSite() cctool = getToolByName(site, 'cookie_authentication', None) if cctool is None: return 'Cookie crumbler: Nothing to export.' exporter = INodeExporter(cctool) if exporter is None: return 'Cookie crumbler: Export adapter misssing.' doc = PrettyDocument() doc.appendChild(exporter.exportNode(doc)) context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml') return 'Cookie crumbler settings exported.'
def exportCatalogTool(context): """ Export catalog tool. """ site = context.getSite() ctool = getToolByName(site, 'portal_catalog', None) if ctool is None: return 'Catalog tool: Nothing to export.' exporter = INodeExporter(ctool) if exporter is None: return 'Catalog tool: Export adapter misssing.' doc = PrettyDocument() doc.appendChild(exporter.exportNode(doc)) context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml') return 'Catalog tool exported.'
def exportMailHost(context): """ Export mailhost settings as an XML file. """ site = context.getSite() mailhost = getToolByName(site, 'MailHost', None) if mailhost is None: return 'Mailhost: Nothing to export.' exporter = INodeExporter(mailhost) if exporter is None: return 'Mailhost: Export adapter misssing.' doc = PrettyDocument() doc.appendChild(exporter.exportNode(doc)) context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml') return 'Mailhost settings exported.'
def get_portlet_blacklist_xml(context, prefix): return_value = False doc = PrettyDocument() node = doc.createElement('portlets') key = '/'.join(context.getPhysicalPath()) if key.startswith(prefix): key = key[len(prefix):] key = key or '/' for manager_name, manager in getUtilitiesFor(IPortletManager): assignable = queryMultiAdapter((context, manager), ILocalPortletAssignmentManager) if assignable is None: continue for category in (USER_CATEGORY, GROUP_CATEGORY, CONTENT_TYPE_CATEGORY, CONTEXT_CATEGORY): # noqa child = doc.createElement('blacklist') child.setAttribute('manager', manager_name) child.setAttribute('category', category) child.setAttribute('location', key) status = assignable.getBlacklistStatus(category) if status: child.setAttribute('status', u'block') return_value = True elif not status: child.setAttribute('status', u'show') return_value = True else: child.setAttribute('status', u'acquire') node.appendChild(child) doc.appendChild(node) xml = doc.toprettyxml(' ') doc.unlink() if return_value: yield xml
def get_portlet_assignment_xml(context, prefix): doc = PrettyDocument() node = doc.createElement('portlets') for manager_name, manager in getUtilitiesFor(IPortletManager): mapping = queryMultiAdapter((context, manager), IPortletAssignmentMapping) if mapping is None: continue mapping = mapping.__of__(context) key = '/'.join(context.getPhysicalPath()) if key.startswith(prefix): key = key[len(prefix):] key = key or '/' extract_mapping(doc, node, manager_name, CONTEXT_CATEGORY, key, mapping) doc.appendChild(node) xml = patch_portlets_xml(doc.toprettyxml(' '), prefix) doc.unlink() return xml