Skip to main content

Plone add-on to export dexterity content in various formats

Project description

https://travis-ci.org/starzel/collective.contentexport.svg?branch=master https://coveralls.io/repos/starzel/collective.contentexport/badge.svg?branch=master&service=github

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

docs/export_screenshot.png

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

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.contentexport-1.0b2.tar.gz (123.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page