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
Usage
Provides a form /@@export_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 export_view in code to have more control over the results.
The view export_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('export_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('export_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('export_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
Contribute
Issue Tracker: https://github.com/starzel/collective.contentexport/issues
Source Code: https://github.com/starzel/collective.contentexport
Support
If you are having issues, please let us know at https://github.com/starzel/collective.contentexport/issues.
License
The project is licensed under the GPLv2.
Contributors
Philip Bauer, bauer@starzel.de
Changelog
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.0b2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b87e404767cc9655101a017cabc5dcf99e62b03b924148884bdbe9769f50a73 |
|
MD5 | 26ff90af1654eba2f313caf9888b7b57 |
|
BLAKE2b-256 | 91e1501c072baf31b9c67c90f2d53eff1e664c0e5e38988ad79058b984d1471f |