Plone插件,用于导出各种格式的dexterity内容
项目描述
collective.contentexport
特性
导出多种格式的dexterity内容
xlsx
xls
csv
tsv
json
yaml
html(表格形式)
包含所有图片字段的zip文件
包含所有文件字段的zip文件
包含关系字段中的相关文件和图片的zip文件
它可以用于导出dexterity类型的所有实例及其所有数据。它不能用于导出内容的文件夹结构。
使用方法
提供了一个配置导出的表单 /@@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中测试过。
已知问题
除非您将 openpyxl = 2.4.9 固定,否则xlsx导出将损坏。有关详细信息,请参阅 https://github.com/collective/collective.contentexport/issues/4。
安装
通过将其添加到您的buildout中安装collective.contentexport
[buildout] ... eggs = collective.contentexport
然后运行 bin/buildout。
您不需要安装此插件即可使用导出。
贡献
支持
如果您遇到问题,请在 https://github.com/collective/collective.contentexport/issues 通知我们。
许可协议
该项目根据GPLv2许可。
贡献者
Philip Bauer, bauer@starzel.de
变更日志
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)
将包移动到 https://github.com/collective/collective.contentexport。 [pbauer]
不再将视图绑定到browserlayer以简化包使用。重命名视图以防止意外的名称冲突,因为我们不再使用browser层。 [pbauer]
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f45828829f35d680b60d7a5c31ab8022163380258b09d07be42841228317d35b |
|
MD5 | 06025348850c1e405e55cdfb17bb8be3 |
|
BLAKE2b-256 | 9e41d8dae4820f5332d3d6b9b8f89da39799a4161834d15712f80f84cd202716 |