跳转到主要内容

Plone的JSON导出器基础

项目描述

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

用于主要迁移导出Plone内容的工具。

应与redturtle.importer.base/volto包一起使用。

功能

  • 易于集成到旧站点(只需添加到构建过程中即可)

  • 无其他工具依赖

  • 易于扩展(见下文)

自定义导出器

该基础产品导出标准内容类型(也包括基于Archetype的)。

如果您的站点有一些需要导出的附加内容类型,并且需要以更具体的方式结构化输出,您可以创建一个更具体的包(例如redturtle.importer.project_name),在其中您可以添加特定的导出器,如下所示

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

其中 GetItem 类是

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)

附加数据导出器

您可以通过注册一个针对ICustomDataExporter的适配器来将一些附加数据添加到导出的json中

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

并在Python代码中需要返回包含所需信息的字典

@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

  • /export_groups

这些视图返回包含所有信息的json。

安装

通过将其添加到您的buildout中安装redturtle.exporter.base

[buildout]

...

eggs =
    redturtle.exporter.base

然后运行 bin/buildout

贡献

致谢

本产品是在以下机构的帮助下开发的

kitconcept

许可协议

该项目遵循GPLv2许可。

贡献者

变更日志

1.3.1 (2021-07-19)

  • 修复地理位置导出器。[cekk]

1.3.0 (2021-02-01)

  • 支持Python 3和Plone52。[cekk, daniele]

1.2.3 (2020-11-03)

  • 修复富文本字段转换器中的编码问题。[cekk]

  • 改进主题导出器。[cekk]

1.2.2 (2020-11-01)

  • 将可定制的附加数据导出器作为适配器添加。[cekk]

  • 将富文本字段中的内部链接从相对路径转换为resolveuid。[cekk]

1.2.1 (2020-10-09)

  • 修复词汇中的键删除问题。[daniele]

1.2.0 (2020-09-22)

  • 也导出组件。[cekk]

1.1.6 (2020-07-28)

  • 修复错误发布。[cekk]

1.1.5 (2020-07-28)

  • 修复旧Plone站点的依赖关系版本。[cekk]

1.1.4 (2020-06-23)

  • 修复文本编码。[cekk]

1.1.3 (2020-06-23)

  • 修复示例内容中设置的日期。[cekk]

1.1.2 (2020-06-23)

  • 将有效日期设置为示例已发布内容。[cekk]

1.1.1 (2020-04-09)

  • 将更多属性添加到用户导出。[cekk]

1.1.0 (2020-04-07)

  • 添加导出用户和组视图。[cekk]

1.0.2 (2020-02-18)

  • 导出内容方面的一些改进。[cekk]

1.0.1 (2020-02-07)

  • 添加创建示例内容的安装配置文件,用于导入测试。[cekk]

1.0.0 (2020-02-05)

  • 进行大量重构以实现更多DX兼容性 [eikichi][cekk]

  • 添加测试 [cekk]

0.1.2 (2019-09-18)

  • 修复函数调用中的依赖关系。[daniele]

  • 添加返回对象的选项,以便按顺序排列

  • 修复集合对象的映射 [eikichi18]

  • 在缺少标题时使用id作为链接对象的标题 [daniele]

0.1.1 (2019-01-16)

  • 删除redturtle.portlets.inspector依赖。[daniele]

0.1.0 (2018-11-23)

  • 添加parer额外字段信息 [daniele]

  • 初始发布。[cekk]

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面