跳转到主要内容

Plone插件,用于导出各种格式的dexterity内容

项目描述

https://travis-ci.org/collective/collective.contentexport.svg?branch=master https://coveralls.io/repos/collective/collective.contentexport/badge.svg?branch=master&service=github https://img.shields.io/pypi/v/collective.contentexport.svg https://img.shields.io/pypi/l/collective.contentexport.svg

collective.contentexport

特性

导出多种格式的dexterity内容

  • xlsx

  • xls

  • csv

  • tsv

  • json

  • yaml

  • html(表格形式)

  • 包含所有图片字段的zip文件

  • 包含所有文件字段的zip文件

  • 包含关系字段中的相关文件和图片的zip文件

它可以用于导出dexterity类型的所有实例及其所有数据。它不能用于导出内容的文件夹结构。

docs/export_screenshot.png

使用方法

提供了一个配置导出的表单 /@@collective_contentexport_view。该表单也作为 内容导出 在主控制面板中提供。

该表单允许您

  • 选择导出类型

  • 选择要导出的内容类型

  • 选择要忽略的字段

  • 选择富文本字段的格式(html/纯文本)

  • 选择文件和图片的格式(url,base64,zip文件中的位置)

collective.contentexport使用tablib进行多种导出格式。

在代码中使用

您可以在代码中使用collective_contentexport_view以获得对结果更多的控制。

视图 collective_contentexport_view 接受以下参数

export_type

您想要使用的导出格式。接受以下选项

  • xlsx (Excel电子表格 (xlsx))

  • xls (Excel旧版电子表格 (xls))

  • yaml (YAML)

  • html (HTML表格)

  • csv (逗号分隔值文件)

  • tsv (制表符分隔值文件)

  • json (JSON转储)

  • images (将图片导出为zip)

  • files (将文件导出为zip)

  • related (将相关文件和图片导出为zip)

portal_type

您想要导出的内容类型

blob_format

应将blob(文件/图像)导出为何种格式。接受以下选项

  • url (URL)

  • base64 (Base64编码的字符串)

  • zip_path (zip中的位置)

richtext_format

应将富文本(html)导出为何种格式。选项

  • html

  • text/plain

blacklist

应从导出中省略的字段(不能与whitelist组合)。

whitelist

仅在导出中包括这些字段(不能与blacklist组合)。

additional

要导出的附加数据。一个以名称(用于标题)为键、以可调用的方法为值的字典,用于从对象中获取导出所需的附加数据。

query

用于过滤导出内容的目录查询。

以下示例创建了一个包含来自字段 primary_picture 的图片或文件的zip文件,类型为 some_type

view = api.content.get_view('collective_contentexport_view', portal, request)
view(export_type='related', portal_type='some_type', whitelist='primary_picture')

您可以通过传递目录查询来过滤要导出的项目

path = '/'.join(self.context.getPhysicalPath())
view = api.content.get_view('collective_contentexport_view', portal, request)
view(export_type='json', portal_type='Document', query={'review_state': 'published', 'path': path})

您还可以扩展导出。在以下示例中,使用方法 _somehandler 从对象中提取了值 some_fieldname

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)

您还可以覆盖默认方法来修改默认行为。在以下示例中,使用方法 _get_imagename 从Images中提取了图像,该方法仅转储图像的文件名

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)

兼容性

collective.contentexport 已在Plone 4.3、Plone 5和PLone 5.1中测试过。

已知问题

安装

通过将其添加到您的buildout中安装collective.contentexport

[buildout]

...

eggs =
    collective.contentexport

然后运行 bin/buildout

您不需要安装此插件即可使用导出。

贡献

支持

如果您遇到问题,请在 https://github.com/collective/collective.contentexport/issues 通知我们。

许可协议

该项目根据GPLv2许可。

贡献者

变更日志

1.1 (2018-03-27)

  • 将修改日期添加到默认字段 [pbauer]

  • 将导出视图添加到控制面板 [pbauer]

  • 使用Plone 5.1运行测试 [pbauer]

1.0 (2016-07-09)

  • 修复tsv导出 [pbauer]

  • 测试与Plone 5.0.5的兼容性 [pbauer]

1.0b5 (2015-12-03)

  • 修复当文件名具有特殊字符时在get_blob_url中出现的UnicodeEncodeError。 [pbauer]

  • 将路径和review_state添加到导出数据中,这些数据不是模式的一部分。 [pbauer]

1.0b4 (2015-11-28)

  • 允许传递目录查询以过滤导出内容。 [pbauer]

1.0b3 (2015-11-28)

1.0b2 (2015-11-06)

  • 添加白名单(仅导出白名单中的字段)[pbauer]

  • 扩展和覆盖导出文档。[pbauer]

1.0b1 (2015-11-05)

  • 按字母顺序对黑名单中的字段名进行排序。[pbauer]

  • 通过扩展 ADDITIONAL_MAPPING 添加提供任意数据额外导出方法的能力。[pbauer]

  • 添加测试 [pbauer]

1.0a2 (2015-11-04)

  • 本地化日期时间 [pbauer]

  • 防止数据字典的维度不均匀 [pbauer]

  • 修复黑名单 [pbauer]

1.0a1 (2015-11-04)

  • 获取所有语言的内容。[pbauer]

  • 为与 RelationList 相关的多张图片和文件添加导出功能。[pbauer]

  • 允许从所选类型的字段中选择黑名单字段。[pbauer]

  • 对于大多数导出使用 http://docs.python-tablib.org。[pbauer]

  • 添加德语翻译。[pbauer]

  • 将初始代码从客户端项目迁移到github。[pbauer]

项目详情


下载文件

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

源分布

collective.contentexport-1.1.tar.gz (125.9 kB 查看哈希值)

上传时间

由以下机构支持

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