def __call__(self, REQUEST): taxonomies = REQUEST.get('taxonomies') if not bool(taxonomies): raise NotFound() stream = BytesIO() z_file = zipfile.ZipFile( stream, "w", zipfile.ZIP_DEFLATED, True) sm = self.context.getSiteManager() adapter = TaxonomyImportExportAdapter(self.context) for taxonomy in taxonomies.split(","): utility = sm.queryUtility(ITaxonomy, name=taxonomy) if utility is None: continue result = adapter.exportDocument(utility) z_file.writestr("%s.xml" % taxonomy, result) z_file.close() self.request.RESPONSE.setHeader( 'Content-type', 'application/x-zip-compressed') self.request.RESPONSE.setHeader( 'Content-disposition', 'attachment; filename="taxonomy_export.zip"') return stream.getvalue()
def handle_export_action(self, action): data, errors = self.extractData() sm = self.context.getSiteManager() taxonomies = data.get('taxonomies', []) if len(taxonomies) > 0: adapter = TaxonomyImportExportAdapter(self.context) self.request.RESPONSE.setHeader('Content-type', 'text/xml') utility = sm.queryUtility(ITaxonomy, name=taxonomies[0]) return adapter.exportDocument(utility)
def handle_export_action(self, action): data, errors = self.extractData() sm = self.context.getSiteManager() taxonomies = data.get('taxonomies', []) if len(taxonomies) > 0: adapter = TaxonomyImportExportAdapter(self.context) self.request.RESPONSE.setHeader('Content-type', 'text/xml') utility = sm.queryUtility(ITaxonomy, name=taxonomies[0]) result = adapter.exportDocument(utility) self.render = lambda: result