Use ZCatalogs as export sources
Project description
The data contained in tabular form in ZCatalogs is often exactly the data site admins frequently want to export into some other format, such as CSV. This package provides views for exporting the catalog data into various formats.
Currently, only exporting the whole catalog with all metadata/brains/columns as CSV is supported. I plan to add support for submiting arbitrary index queries and for controlling the metadata/brains/columns exported.
Start with a catalog with some indexes and metadata/brains/columns and a few objects indexed.
>>> self.folder.manage_addProduct['ZCatalog'].manage_addZCatalog( ... 'catalog', 'Catalog') >>> catalog = self.folder.catalog>>> catalog.addIndex('id', 'FieldIndex') >>> catalog.addIndex('title', 'FieldIndex') >>> catalog.indexes() ['id', 'title']>>> catalog.addColumn('meta_type') >>> catalog.addColumn('id')>>> self.folder.manage_addProduct['OFSP'].manage_addDTMLDocument( ... 'foo_doc', 'Foo Document') '' >>> catalog.catalog_object(self.folder.foo_doc) >>> self.folder.manage_addProduct['OFSP'].manage_addDTMLDocument( ... 'bar_doc', 'Bar Document') '' >>> catalog.catalog_object(self.folder.bar_doc)>>> [(brain.meta_type, brain.id) for brain in catalog()] [('DTML Document', 'foo_doc'), ('DTML Document', 'bar_doc')]
Open the export view in the browser specifying the export format as CSV.
>>> from Products.Five.testbrowser import Browser >>> from Testing import ZopeTestCase >>> self.setRoles(['Manager']) >>> browser = Browser() >>> browser.addHeader( ... 'Authorization', 'Basic %s:%s' % ... (ZopeTestCase.user_name, ZopeTestCase.user_password)) >>> browser.handleErrors = False >>> browser.open(catalog.absolute_url()+ ... '/export?Content-Type=text/csv') >>> browser.isHtml False >>> print browser.headers Status: 200 OK... Content-Disposition: attachment... Content-Type: text/csv... >>> print browser.contents
XXX the testbrowser doesn’t handle use of response.write(). I’ve verified that this works in a real browser:
DTML Document,foo_doc DTML Document,bar_doc
Changelog
0.1 - 2008-11-14
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for collective.catalogexport-0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 617bba0781f65098a5ba1d92a1fe8abe655717d377b6f3407be032d316e1cf40 |
|
MD5 | ed80d0d124c944698893123a650e5452 |
|
BLAKE2b-256 | c63fca247a388eb86ed2f1e5f0c9a996f57002106a66854c52a42b605cc89d68 |