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)
Exemplo n.º 3
0
    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