Plone add-on to export dexterity content in various formats
Project description
collective.contentexport
Features
Exports dexterity content in various formats:
xlsx
xls
csv
tsv
json
yaml
html (a table)
zip-file containing all images from image-fields
zip-file containing all files from file-fields
zip-file containing related files and images from relationfields
It can be used to export all instances of a dexterity type and all its data. It cannot be used to export a folder-structure of content.
Usage
Provides a form /@@collective_contentexport_view to configure the export.
The form allows you to:
Select the export type
Select the content type to export
Choose fields from the selected type to be ignored
Select the format of richtext-fields (html/plaintext)
Select the format for files and images (url, base64, location within zip-file)
collective.contentexport uses tablib for several export-formats.
Use in code
You can use the collective_contentexport_view in code to have more control over the results.
The view collective_contentexport_view accepts the following parameters:
export_type
portal_type
blob_format
richtext_format
blacklist
whitelist
additional
The following example creates a zip-file with images or files from the field primary_picture for the type some_type:
view = api.content.get_view('collective_contentexport_view', portal, request)
view(export_type='related', portal_type='some_type', whitelist='primary_picture')
You can also extend the export. In the following example the value some_fieldname is being extracted from the object using the method _somehandler.
def _somehandler(obj):
return some_crazy_transform(obj.custom_field)
additional = {'some_fieldname': _somehandler}
view = api.content.get_view('collective_contentexport_view', portal, request)
result = view(export_type='json', portal_type='Document', additional=additional)
You can also override the default methods to modify the default behavior. In the following example the image from Images is being extracted using the method _get_imagename that only dumps the filename of the image:
def _get_imagename(obj):
if obj.image:
return obj.image.filename
additional = {'image': _get_imagename}
view = api.content.get_view('collective_contentexport_view', portal, request)
result = view(export_type='json', portal_type='Image', additional=additional)
Compatability
collective.contentexport is tested to work in Plone 4 and Plone 5.
Installation
Install collective.contentexport by adding it to your buildout:
[buildout] ... eggs = collective.contentexport
and then running bin/buildout.
You don’t need to install the add-on to use the export.
Contribute
Issue Tracker: https://github.com/collective/collective.contentexport/issues
Source Code: https://github.com/collective/collective.contentexport
Support
If you are having issues, please let us know at https://github.com/collective/collective.contentexport/issues.
License
The project is licensed under the GPLv2.
Contributors
Philip Bauer, bauer@starzel.de
Changelog
1.0b3 (2015-11-28)
Move package to https://github.com/collective/collective.contentexport. [pbauer]
No longer bind views to browserlayer to simplify package-use. Rename views to prevent unintended name-clashes since we no longer use the browser-layer. [pbauer]
1.0b2 (2015-11-06)
Add whitelist (only export fields in the whitelist) [pbauer]
Document extending and overriding the export. [pbauer]
1.0b1 (2015-11-05)
Sort fieldnames in blacklist by alphabet. [pbauer]
Add ability to provide additional export-methods for arbitrary data by extending ADDITIONAL_MAPPING. [pbauer]
Add tests [pbauer]
1.0a2 (2015-11-04)
Localize datetime [pbauer]
Prevent uneven dimension of data-dict [pbauer]
Fix blacklist [pbauer]
1.0a1 (2015-11-04)
Get content from all languages. [pbauer]
Add export for multiple images and files related with RelationList. [pbauer]
Allow choosing blacklisted fields from the fields of the selected type. [pbauer]
Use http://docs.python-tablib.org for most exports. [pbauer]
Add German translations. [pbauer]
Moved initial code from client-project to github. [pbauer]
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.contentexport-1.0b3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbe20ee74769a2c7722350be344a12767c72da788e6a795ead2821ab8ea6a1b9 |
|
MD5 | 7eaa0289cc2fa2ccf43e77a3449d689b |
|
BLAKE2b-256 | 5fa10a3bf8b0c254860d66c606efb2f2e2abe047682d230b5726e30db878df9f |