Skip to main content

Json exporter base for Plone

Project description

https://github.com/RedTurtle/redturtle.exporter.base/workflows/Tests/badge.svg

Tool that exports Plone contents for a major migration.

This should be used with redturtle.importer.base/volto packages.

Features

  • Easily to include in your old site (just add to the buildout)

  • No dependencies to other tools

  • Easily to extend (see below)

Custom exporters

This base product exports standard content-types (also Archetype-based).

If your site has some additional content-types to be exported and need to structure output in a more specific way, you can create a more specific package (for example redturtle.importer.project_name) where you can add specific exporters like this:

<browser:page
  for="my.project.interfaces.IMyCustomType"
  name="get_item"
  class=".jsonify.MyCustomTypeGetItem"
  permission="zope2.ViewManagementScreens"
  />

where GetItem class is:

from redturtle.exporter.base.browser.jsonify import GetItem as BaseGetter
class MyCustomTypeGetItem(GetItem):

    def __call__(self):

        context_dict = super(MyCustomTypeGetItem, self).__call__()
        ... do something with context_dict ...

        return get_json_object(self, context_dict)

Additional data exporter

You can add some additional data to exported json registering an adapter for ICustomDataExporter:

<subscriber factory=".my_data.ExtraDataExporter"
            provides="redturtle.exporter.base.interfaces.ICustomDataExporter"/>

and in python code you need to return a dictionary with needed informations:

@adapter(Interface, Interface)
@implementer(ICustomDataExporter)
class ExtraDataExporter(object):
    order = 4  # set an execution order

    def __init__(self, context, request):
        self.context = context
        self.request = request

    def __call__(self):
        """
        """
        return {'foo': 'bar'}

Export users and groups

There are two additional views that can be called (only Site Managers has access to these views) to export the list of users and groups:

  • /export_users

  • /export_groups

These views returns a json with all the informations.

Installation

Install redturtle.exporter.base by adding it to your buildout:

[buildout]

...

eggs =
    redturtle.exporter.base

and then running bin/buildout

Contribute

Credits

This product has been developed with some help from

kitconcept

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.3.1 (2021-07-19)

  • Fix geolocation exporter. [cekk]

1.3.0 (2021-02-01)

  • Python 3 and Plone52 support. [cekk, daniele]

1.2.3 (2020-11-03)

  • Fix encoding in rich text fields converter. [cekk]

  • Improve Topics exporter. [cekk]

1.2.2 (2020-11-01)

  • Add customizables additional data exporters as adapters. [cekk]

  • Convert internal links in rich text fields from relative paths to resolveuid. [cekk]

1.2.1 (2020-10-09)

  • Fix deletion of keys in vocabulary. [daniele]

1.2.0 (2020-09-22)

  • Also export portlets. [cekk]

1.1.6 (2020-07-28)

  • Fix wrong release. [cekk]

1.1.5 (2020-07-28)

  • Fix dependencies versions for old Plone sites. [cekk]

1.1.4 (2020-06-23)

  • Fix text encoding. [cekk]

1.1.3 (2020-06-23)

  • Fix dates set in example contents. [cekk]

1.1.2 (2020-06-23)

  • Set effective date to example published contents. [cekk]

1.1.1 (2020-04-09)

  • Add more properties to users export. [cekk]

1.1.0 (2020-04-07)

  • Add export users and groups views. [cekk]

1.0.2 (2020-02-18)

  • Several improvements in export contents. [cekk]

1.0.1 (2020-02-07)

  • Add install profile for create example contents for import tests. [cekk]

1.0.0 (2020-02-05)

  • Heavy refactoring to be more DX compatible [eikichi][cekk]

  • Add tests [cekk]

0.1.2 (2019-09-18)

  • Fixed dependency in function call. [daniele]

  • Added option for return object in order

  • Fixed mapping for collection object [eikichi18]

  • using id when title is missing for Link objects [daniele]

0.1.1 (2019-01-16)

  • Removed redturtle.portlets.inspector dependency. [daniele]

0.1.0 (2018-11-23)

  • Added parer extra field info [daniele]

  • Initial release. [cekk]

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

redturtle.exporter.base-1.3.1.tar.gz (69.5 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