跳转到主要内容

基于appy框架(https://appyframe.work/tool/public)和OpenOffice/LibreOffice的桌面文档生成(.odt, .pdf, .doc, ...)

项目描述

https://github.com/collective/collective.documentgenerator/actions/workflows/python-package.yml/badge.svg?branch=master Coveralls badge PyPI badge

collective.documentgenerator

collective.documentgenerator 是一个优雅的产品,允许基于动态模板轻松地生成办公文档。

使用新的内容类型来存储不同的模板

  • 样式模板,可以是其他模板的共同模板

  • 子模板,可以在其他模板中使用

  • 邮件循环模板,其他模板可以使用它来进行邮件循环

  • 基本模板

  • 高级模板,涉及配置

模板是在 LibreOffice 软件中创建的。

输出格式是可以由LibreOffice生成的格式

  • odt和ods格式

  • doc、docx、xls、xlsx格式

  • pdf、csv、rtf

您可以使用演示配置文件来轻松测试该产品。

翻译

此产品已被翻译成

  • 法语。

  • 西班牙语。

您可以为缺失的消息或其他新语言做出贡献,加入我们加入 Plone Collective TeamTransifex.net 服务,与全球所有Plone翻译者社区一起。

安装

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

[buildout]

eggs =

collective.documentgenerator

然后运行“bin/buildout”

用法

如何添加新的POD模板?

在您的Plone网站上,您可以添加两种主要模板

  • PODTemplate:由标题、描述和要上传的odt文件组成

  • 可配置POD模板:向基本模板添加可配置字段

    • 输出格式选择

    • 门户类型选择

    • 样式模板选择

    • 子模板选择

    • 作为条件的TAL表达式(行为)。

    • 启用标志

    • 上下文变量列表

    • 邮件循环模板

如果您愿意,可以将模板组织在一个或多个文件夹中。

如何编写模板?

使用appy框架来解释模板,并使用上下文渲染它。

您可以在文档中找到可以使用的语法说明。

您可以进行以下操作

  • 使用基本Python表达式访问上下文字段或方法

  • 执行if…then…else…

  • 对段落、部分、表格、行、单元格进行循环

  • 将xhtml转换为文本

基本辅助方法可以在模板中使用,并且可以添加自定义方法。

如何生成文档?

视图显示所有可用的POD模板和可配置POD模板,按照当前上下文。点击模板链接将调用“文档生成”视图。

  • 调用“文档生成”视图

    • 渲染模板并提出下载生成的文档

    • 参数:模板UID和文档类型

    • 这是视图小部件中使用的默认视图

  • 调用“持久文档生成”视图

    • 渲染模板并创建包含生成的文档的文件

    • 参数:模板UID和文档类型

  • 调用“邮件循环持久文档生成”视图

    • 循环持久渲染的文档并创建包含所有文档的文件

    • 参数:文档UID

搜索和替换

有关搜索和替换功能的文档在这里:docs/search_replace.rst

日志记录与调试

您可以通过定义环境变量 DOCUMENTGENERATOR_LOG_PARAMETERS 使用collective.fingerpointing指定将进行日志记录的表单请求,每个参数必须用逗号分隔,例如 param1,param2

Plone版本

它在Plone 4.3、Plone 5.0、5.1和5.2(Python2.7)上工作并经过测试。

贡献

许可证

该项目受GPLv2许可。

更改日志

3.43 (2024-04-10)

  • imio.pyutils导入safe_encode而不是从imio.helpers导入。[gbastien]

  • 使用来自imio.helpers的Plone版本常量(HAS_PLONE_4HAS_PLONE_5、…)。[gbastien]

3.42 (2024-02-12)

  • 再次翻译类型图标标题。[gbastien]

3.41 (2024-02-12)

  • 纠正了错误。[sgeulette]

  • TitleColumn中,使用typeInfo.Title()而不是翻译typeInfo.titleTitle()执行相同的操作,但管理特殊字符的title。[gbastien]

3.40 (2023-08-01)

  • 添加了环境变量DOCUMENTGENERATOR_LOG_PARAMETERS,可用于使用collective.fingerpointing记录请求表单参数。[mpeeters]

3.39 (2023-06-26)

  • 删除了utils.safe_encode,从imio.helpers.content中导入它。[gbastien]

3.38 (2022-12-12)

  • 在3.36中添加了缺失的注册修改后的升级步骤(force_default_page_style_for_mailing)。[sgeulette]

3.37 (2022-10-27)

  • 修复错误:页面样式检查现在可以处理没有邮件模板属性的POD模板的情况。[sdelcourt]

3.36 (2022-10-21)

  • 向注册中添加了一个新参数force_default_page_style_for_mailing。如果设置为True,将自动将默认页面样式应用于邮件模板。[sdelcourt]

  • dg-templates-listing视图中按标题对模板目录排序。[sgeulette]

  • 通过添加可选的obj参数改进了DXDocumentGenerationHelperView.get_value。[sgeulette]

3.35 (2022-08-26)

  • 按模板标题对链接进行分组。[odelaere]

  • 向生成链接添加了“title”属性。[odelaere]

  • 使用别名导入以避免混淆。[sgeulette]

  • 为生成链接存储CSS,以便更容易地进行调整。[gbastien]

3.34 (2022-06-21)

  • 在持久生成的文档上存储template_uid,以知道使用了哪个模板。[sgeulette]

3.33 (2022-06-14)

  • TemplatesTable中添加了字符转义,以避免xss。[sgeulette]

  • utils.update_oo_config_after_bigbang 中,如果 update_oo_config 抛出异常,则不要使实例启动失败。[odelaere]

3.32 (2022-06-02)

  • 14 添加升级步骤,将 oo_port_list 参数添加到注册表中。[gbastien]

3.31 (2022-06-01)

  • 使用 Appy 在多个 LO 服务器上实现负载均衡。[odelaere]

3.30 (2022-05-06)

  • 为标签文档添加了 iterable_in_columns。[sgeulette]

  • 在 dexterity 中添加了 get_relations。[sgeulette]

  • 使用 Appy 在 POD 模板中对 pod 表达式进行搜索和替换。[aduchene]

  • .ods POD 模板现在可以使用搜索和替换功能。[aduchene]

  • 在搜索和替换时确保临时目录是唯一的。[aduchene]

  • 更新了说明文档。[Arhell]

3.29 (2022-04-15)

  • 方法 update_oo_config 更新了 libreoffice 服务器的所有注册条目。[odelaere]

  • 在进程启动时添加了更新 oo 配置的订阅者。[odelaere]

3.28 (2022-01-14)

  • 添加了辅助函数 ConfigurablePODTemplate.get_filename,以便轻松获取文件名。[gbastien]

3.27 (2021-12-06)

  • 更新了元数据版本。[sgeulette]

3.26 (2021-11-08)

  • 以这种方式创建/编辑 PODTemplate 时清除笔记,这样 search&replace 功能才能按预期工作

    • 添加了 utils.clean_notes;

    • 只有在 odt_file 改变且文件确实已更新时才进行清除操作;

    • 将函数 create_temporary_fileevents.styles_events 移至 utils。[gbastien]

    [gbastien]

3.25 (2021-09-23)

  • 在 __unicode__ 方法中使用 ProxyObject 的包装上下文。将 __repr__ 恢复为默认实现。[sdelcourt]

3.24 (2021-09-23)

  • setup.py 中要求 beautifulsoup4<4.10,因为从 4.10.0 版本开始,beautifulsoup4Python2 不再兼容。[gbastien]

  • 调用 Renderer 时传递参数 html=True,这样在 POD 模板中使用 xhtml 函数时,内容被视为 HTML,一些预处理被应用以确保给定内容是有效的 xhtml。[gbastien]

  • 为 __repr__ 和 __str__ 方法使用 ProxyObject 的包装上下文。[sdelcourt]

3.23 (2021-08-09)

  • 在应用替换之前允许在搜索结果中选择模板。[sdelcourt]

3.22 (2021-07-16)

  • 添加了一个视图,用于在 POD 模板中对 pod 表达式进行搜索和替换 @@collective.documentgenerator-controlpanel。[aduchene]

  • 添加了一个辅助类 SearchAndReplacePODTemplates,它可以在 POD 模板中对 pod 表达式进行搜索和替换。[aduchene]

  • 添加了对搜索和替换功能的测试。[aduchene]

  • 添加了用于在 ODT 文件中搜索和替换 pod 表达式的实用程序类。[sdelcourt]

  • 添加了一个脚本 bin/search_replace,可通过 CLI 在 ODT 文件中进行搜索和替换。[sdelcourt]

  • 添加了一些有关搜索和替换功能的文档。[aduchene]

  • portal 添加到默认生成上下文中。[gbastien]

  • 修复了样式更新临时文件目录没有使用 CUSTOM_TMP 的问题。[odelaere]

  • 在渲染文档之前确保 CUSTOM_TMP 目录存在。[odelaere]

3.21 (2021-04-20)

  • 添加了一个视图来检查每个 POD 模板 @@check-pod-templates。[odelaere]

  • @@check-pod-templates 方式调整为 find_pod_templates,以便考虑当前上下文。这样,我们可以检查特定文件夹中的 pod 模板。[gbastien]

  • 更正了域名 [sgeulette]

  • 在 dg-templates-listing 中默认不检查选择列,以避免用户在使用批处理按钮时出错 [sgeulette]

3.20 (2021-03-09)

  • 添加了对 CSV 文件的支持。[odelaere]

  • 重做了图标,使用 svg 代替 png,并使其更加一致。[odelaere]

  • 为 PersistentDocumentGenerationView 添加了生成标题参数。[jjaumotte]

3.19 (2020-10-07)

  • 当存在另一个可用的 pod 模板时,通过不渲染 actionpanel 的外部编辑来防止“AttributeError” [fngaha]

  • 在控制面板模式方案和注册记录之间使用相同的默认值。[odelaere]

3.18 (2020-08-18)

  • 更新文件表示形式,使其与 zopeedit < 1.0(当前 Windows exe)和 zopeedit >= 1.0 兼容。[sgeulette]

  • 修复了渲染空 RichTextATFieldRenderer 时的错误。[odelaere]

  • 将传递给 DocumentGenerationView.__call__kwargs 传递给子方法 generate_and_download_doc_generate_doc_recursive_generate_doc,然后传递给 _render_document,因此可以将 raiseOnError=False 参数传递给 _render_document。[gbastien]

3.17 (2020-06-24)

  • AT 渲染器和辅助程序中,使用字段访问器而不是 get() 方法来获取存储的值。[gbastien]

3.16 (2020-05-25)

  • 修复get_children_pod_template()方法中的RuntimeError: set changed size during iteration错误。[sdelcourt]

3.15 (2020-05-19)

  • 改进了Appy的流参数集成,这允许显式地将值设置为False。默认值仍为auto。[mpeeters]

  • 添加了Transifex.net服务集成,以管理翻译过程。[macagua]

  • 添加了西班牙语翻译。[macagua]

  • 更新了i18n支持。[macagua]

3.14 (2020-04-23)

  • 更新了get_value,以测试对象上是否存在属性。[sgeulette]

  • 添加了将kwargs传递到DocumentGenerationView.__call__的方法,然后是子方法generate_and_download_doc_generate_doc。[gbastien]

3.13 (2020-03-04)

  • 改进了dg-templates-listing。[sgeulette]

3.12 (2020-02-06)

  • 向方法DocumentGenerationHelperView.display添加了参数bypass_check_permission=False,当为True时,它将跳过读取权限检查,这在上下文是一个不受限制获取的对象时很有用。[gbastien]

3.11 (2019-12-03)

  • 强制转换为动态变量。[sgeulette]

  • 添加了对Plone 5.2的支持。[odelaere]

  • 修复了RichTextATFieldRenderer对空值的默认渲染。[sdelcourt]

3.10 (2019-11-26)

  • 通过从每个角色中删除权限View来修复测试test_get_file_is_unrestricted。[gbastien]

  • 将逻辑get_all_pod_templates/get_generable_templatesDocumentGeneratorLinksViewlet移出,以便更容易覆盖。现在它是一个IGenerablePODTemplates适配器。[gbastien]

3.9 (2019-10-14)

  • 当值为None时,context_var返回默认值。[sgeulette]

  • 在重用另一个POD模板的odt_file时,确保get_file可以通过获取不受限制的方式来访问包含odt_file的POD模板。[gbastien]

  • 修复了测试TestDexterityHelperViewMethods.test_display_date_method,因为从Plone 5.1.x开始翻译格式已更改。[gbastien]

3.8 (2019-08-13)

  • 为appy的工作空间添加了自定义临时目录环境变量‘CUSTOM_TMP’。[odelaere]

  • 添加了使用外部服务器进程用于LibreOffice的能力。[odelaere]

  • 使DocumentGeneratorLinksViewlet.get_links_info除了返回pod_template UID外,还返回pod_template对象。[gbastien]

3.7 (2019-05-16)

  • 将参数helper_viewpod_template传递给DocumentGenerationView.get_base_generation_context,以便在必要时可用。[gbastien]

  • collective.documentgenerator.ExistingPODTemplate词汇中显示实现了IConfigurablePODTemplate的所有POD模板。[gbastien]

  • 将文件CHANGES.rst、README.rst和CONTRIBUTORS.rst从docs/移动到根目录。[gbastien]

3.6 (2019-03-27)

  • 根据在父项中的位置对生成链接进行排序。[sgeulette]

3.5 (2019-03-08)

  • 使样式非必需。[sgeulette]

  • 添加了collective.fingerpointing支持,以了解谁在哪种格式下生成了哪个文档。[odelaere]

3.4 (2018-12-18)

  • 在Pod模板上,当显示使用我的odt_file的Pod模板时,在标题旁边显示绝对_url。[gbastien]

3.3 (2018-10-02)

  • 如果不允许删除tmp文件,则不会中断,例如,当LibreOffice用户与Zope实例用户不同时。[gbastien]

  • 允许覆盖模板列表中的门户类型和显示的标题以合并。[odelaere]

  • 将生成上下文作为参数添加到mailing_list中。[sgeulette]

  • 避免在MailingLoopPersistentDocumentGenerationView中两次调用mailing_list。[sgeulette]

  • 添加了update_oo_config函数,以根据环境变量更新oo选项。[sgeulette]

3.2 (2018-07-24)

  • 邮件:在邮件生成上下文中包含原始模板中的上下文变量。[sgeulette]

  • pep8:排序导入。[sgeulette]

3.1 (2018-05-03)

  • 在POD模板上,添加了重用另一个POD模板的odt_file的可能性。[anuyens, odelaere, gbastien]

  • 不要使用IBatchActionsMarker注册显示在IBelowContentBody视图中使用的batchactions视图,而是注册一个更具体的接口IBelowContentBodyBatchActionsMarker。[gbastien]

  • 覆盖批处理操作视图的可用方法。[sgeulette]

  • 添加了列修改管理(在appy > 0.9.11中引入)[odelaere]

3.0.12 (2018-02-21)

  • 更新渲染器参数:managePageStyles和resolveFields。[sgeulette]

  • 从POD模板模式中删除了rename_page_styles字段。[sgeulette]

3.0.11 (2018-01-17)

  • 添加钩子,以提供所有助手视图更新appy渲染器[cite][sdelcourt]

3.0.10 (2018-01-06)

  • 在视图动作列中使用 edit_action_target。[sgeulette]

  • 不要使用CSS来管理内容类型图标,我们已经在 portal_types 上有一个 icon_epxr。[gbastien]

  • 如果存在,使用 collective.eeafaceted.batchactions。添加一个选择列和批量过渡按钮。[sgeulette]

  • 使用门户类型图标在表格视图中显示。[sgeulette]

3.0.9 (2017-12-18)

  • 添加了 rename_page_styles 字段,并用作渲染器参数。[sgeulette]

  • 添加了 plone 翻译。[sgeulette]

3.0.8 (2017-12-11)

  • 在基本模板类型上添加了样式模板。[sgeulette]

3.0.7 (2017-12-04)

  • 在模板列表中包含批量操作。[sgeulette]

  • 纠正了日期显示中的编码错误。[sgeulette]

3.0.6 (2017-11-28)

  • 纠正了集合模板。[sgeulette]

  • 修复了样式更新中的错误。[sgeulette]

3.0.5 (2017-11-16)

  • 纠正了 actions_panel 调用。[sgeulette]

  • 在辅助视图中添加了 get_file_binary 方法,它返回文件对象的二进制数据,并管理对象是 Dexterity 或 Archetypes 文件的事实。[gbastien]

  • 需要 future>=0.14.0 来使用 html 包。[gbastien]

  • 修复了法语测试,以验证翻译(特别是日期方法的翻译)。修复了在 Plone 4.3.x 和 Plone 5.x 中工作的测试。[gbastien]

  • 在 travis 上升级 pip。不要使用 bootstrap。升级 setuptools。[sgeulette]

3.0.4 (2017-11-10)

  • 管理日期显示中的周和月翻译。[sgeulette]

  • 在列表模板中添加下载列。[sgeulette]

3.0.3 (2017-10-30)

  • 添加了一个视图来重置 style_modification_md5(这样模板被视为未修改)。[sgeulette]

  • 添加了一个视图来列出所有模板。[sgeulette]

  • 添加了 pod_template.optimize_tables 字段,它使单个 POD 模板能够使用全局值/强制启用/强制禁用表优化。[gbastien]

3.0.2 (2017-10-06)

  • 纠正了 ubuntu 16.04 的 soffice 脚本。[sgeulette]

  • 测试现在依赖于 imio.helpers 在必要时导入 testing_logger,以便在 Travis CI 等地方进行日志记录。[gbastien]

  • 根据 3.0.1 的更改纠正了测试。[sgeulette]

  • 添加了 display_phone 方法。[sgeulette]

3.0.1 (2017-09-20)

  • 使用 POD 模板标题作为持久文档的默认标题。[sdelcourt]

3.0.0 (2017-09-20)

  • 在类型上添加了锁定行为。[sgeulette]

  • 在 ConfigurablePODTemplate 上添加了 MailingLoopTemplate 类型以及 mailing_loop_template 字段。[sgeulette]

  • 添加了“mailing-loop-persistent-document-generation”视图来管理邮件循环生成。[sgeulette]

  • 添加了一个管理上下文的辅助方法。[sgeulette]

  • 添加了一个检查在渲染过程中是否需要替换邮寄数据的辅助方法。[sgeulette]

  • 将文件名生成移动到 DocumentGenerationView._get_filename 方法,以便轻松覆盖和针对特定用例进行调用。[gbastien]

  • 将持久文档标题生成移动到 DocumentGenerationView._get_title 方法,以便轻松覆盖和针对特定用例进行调用。[sgeulette]

  • 如果临时文件无法删除,则不要中断。[gbastien]

2.0.8 (2017-08-02)

  • 为生成视图的‘pod_template’和‘output_format’属性添加默认值。[sdelcourt]

2.0.7 (2017-07-25)

  • 检查字段名是否存在,根据参数执行:默认不检查,如果不存在则失败。[sgeulette]

2.0.6 (2017-07-24)

  • 纠正了迁移步骤。[sgeulette]

  • 在 get_value 中检查 z3c.form.interfaces.NO_VALUE。[sgeulette]

2.0.5 (2017-07-19)

  • 添加了一个简单的方法来完善 DocumentGeneratorLinksViewlet.get_links_info 返回的信息。[gbastien]

  • @@generation-view@@document_generation_helper_view 上直接使用 pod_templateoutput_format,通过 self.pod_templateself.output_format。[gbastien]

  • 添加了迁移来更改门户类型图标。[sgeulette]

2.0.4 (2017-07-12)

  • 在测试期间启动和结束 libreoffice。[sgeulette]

  • 检查来自行为的行为名称是否存在。[sgeulette]

2.0.3 (2017-06-22)

  • 在生成文件名时,从 unicoded 标题中删除特殊字符,以避免将其转换为 ascii 数字(特殊字符 u2013 在生成的文件名中转换为 2013)。[gbastien]

2.0.2 (2017-06-22)

  • 确保文件名中不包含 - 字符,因为 cropName 处理这个字符的方式很奇怪,如果遇到 - 字符,则会截断名称。[gbastien]

2.0.1 (2017-06-21)

  • 使用 plone.i18n.normalizer.interfaces.IFileNameNormalizer 来规范化文件名,因为 Products.CMFPlone.utils.normalizeString 使用 IIDNormalizer,其最大长度被固定为 50。这里最大长度被固定为 1023,这样我们可以管理很长的元素标题以生成文件名。[gbastien]

  • 管理 style_modification_md5 字段以检测模板是否被用户修改。更新了 update_templates 方法来使用它。[sgeulette]

2.0.0 (2017-06-21)

  • 使包同时兼容 Plone4 和 Plone5:- 创建了 Plone 版本特定的配置文件(plone4 和 plone5);- 在 Plone5 版本中移除了对 AT 的支持;- 适配了演示配置文件以与 Dexterity(plone.app.contenttypes)一起工作。[gbastien]

  • 以“法语”运行所有测试,以确保翻译在所有地方都有效。[gbastien]

  • 添加了参数 raiseOnError_for_non_managers,以便能够在包含错误的地方生成文档时引发 Plone 错误。这可以避免生成包含错误的文档,其中可能丢失一些数据,如 PDF 中的错误不可见,甚至在 ODT 中,用户可能不理解注释中的错误很重要。这将启用 appy.pod.renderer.Renderer 的 raiseOnError 参数。[gbastien]

  • 在创建 pod 模板时调用样式更新。[sgeulette]

  • 当样式更新失败时引发异常。[sgeulette]

  • 纠正了演示模板的 mimetype。只更新 odt 的样式。[sgeulette]

1.0.6 (2017-05-31)

  • 在 IMergeTemplatesRowSchema 架构中添加了 do_rendering 字段。如果选中,则首先渲染子模板,路径是上下文字典中的值。否则,子模板对象是上下文字典中的值。[sgeulette]

  • 从渲染方法返回生成上下文,以便在测试中使用它。[sgeulette]

  • 为 do_rendering 功能添加了单元测试 [odelaere, sgeulette]

  • 改进了 ConfigurablePodTemplate 的验证 [odelaere]

  • 在生成时添加了验证以避免生成上下文损坏 [odelaere]

  • 在上下文变量中管理布尔值 [sgeulette]

  • 移除了导致粘贴时出现错误的 meta_type 属性 [sgeulette]

  • 在更新包含其样式模板的 Pod 模板时,不要丢失文件名 [gbastien]

  • 简化对 collective.documentgenerator.StyleTemplates 词汇表术语标题的覆盖 [gbastien]

  • 为 StyleTmplate 定义了正确的 portal_type 描述,以便它在 folder_factories 中显示 [gbastien]

  • 修改了生成的文件名,之前它是 POD 模板标题和格式,现在它使用 POD 模板标题、上下文标题和格式构建 [gbastien]

1.0.5 (2017-03-10)

  • 在 display_html_as_text 中添加了参数“html”,与“field_name”互斥,以添加使用日期字段或 html 格式的字符串的功能。[odelaere]

  • 在 display_text_as_html 中添加了参数“text”,与“field_name”互斥,以添加使用日期字段或字符串的功能。[odelaere]

  • 在 display_date 中添加了参数“date”,与“field_name”互斥,以添加使用日期字段或日期对象的功能。[odelaere]

  • 添加了参数 optimize_tables,以能够使用 appy.pod 的 optimalColumnWidths 功能。[gbastien]

1.0.4 (2017-02-14)

  • 仅使用 force 参数更新样式模板。[sgeulette]

  • 确保 current_md5 被存储为 unicode,否则在手动验证存储数据时无法通过验证。[gbastien]

1.0.3 (2017-02-10)

  • 为更新模板添加了 utils 方法。[sgeulette]

1.0.2 (2017-02-07)

  • 修复了 IConfigurablePODTemplate.pod_formatsIConfigurablePODTemplate.pod_portal_types 字段的小部件,以避免被其他包覆盖,例如使用 collective.z3cform.select2 时的情况。对于 IConfigurablePODTemplate.pod_portal_types 使用 CheckBoxWidget,以便在显示多个元素时简化选择。[gbastien]

  • 将 appy 渲染器设置为存储在生成上下文中的视图元素。在生成上下文获取器中覆盖视图时很有用。[sgeulette]

1.0.1 (2017-01-13)

  • 在 getDGHV 方法中移除了无用的参数。[sgeulette]

1.0.0 (2017-01-12)

  • 在未实现的方法中引发 NotImplementedError。[sgeulette]

  • 将 display_html 重命名为 render_xhtml,将 display_text 重命名为 display_text_as_html。[sgeulette]

  • 添加 display_html_as_text。[sgeulette]

  • 添加 get_state。[sgeulette]

  • 添加 context_var 方法,以安全地获取可选上下文变量。[sgeulette]

0.14 (2016-12-19)

  • 在控制面板中使用正确的名称访问 documentgenerator 配置。[gbastien]

  • 将格式 .doc.docx 添加到演示模板 test_template_multiple 中。[gbastien]

  • 从环境变量设置 oo_port 和 uno_path 的默认值。[sgeulette]

0.13 (2016-12-09)

  • 通过导入 unohelper 而不是导入 uno 来验证 python 的路径,因为 uno 可能是通过 pip install uno 安装的,但不足以生成文档。[gbastien]

  • 添加 .docx 格式,其中可以生成模板。[gbastien]

  • 在安装时从环境变量设置 oo_port。[sgeulette]

0.12 (2016-12-07)

  • 将所有参数传递给 DocumentGenerationHelperView.translate,由 zope.i18n.translate 管理。[gbastien]

  • 使上下文变量值不是必需的。[sgeulette]

0.11 (2016-11-22)

  • 用 getMultiAdapter 替换 unrestrictedTraverse。[sgeulette]

  • 在 configurablepodtemplate 上添加上下文变量字段和验证器,并在生成上下文中添加这些变量。[sgeulette]

  • 将 fr 设置从默认配置文件移动到测试配置文件。[sgeulette]

0.10 (2016-10-05)

  • 在渲染器中使用 forceOoCall 调用 libreoffice 进行渲染,例如在 odt 中渲染目录。[sgeulette]

  • 更改 podtemplate 查看器的搜索。在 zcml 中定义模板。[sgeulette]

  • 添加内容图标。[sgeulette]

  • 正确管理 datetime.date 和 datetime.datetime。[sgeulette]

  • 添加 display_widget 方法。[sgeulette]

  • 将 display_text 重命名为 display_html(用于富文本字段)[sgeulette]

  • 为文本字段添加 display_text 以渲染智能 html。[sgeulette]

  • 添加获取属性值的方法。[sgeulette]

  • 添加获取另一个对象上的帮助视图的方法。[sgeulette]

  • 从帮助方法中移除上下文参数,以避免更改上下文。[sgeulette]

  • 从方法中获取生成视图的名称。[sgeulette]

  • 使用 RadioFieldWidget 为布尔字段 'enabled' 设置,以便在 pod_template 视图中显示为 False。[gbastien]

0.9 (2016-06-22)

  • 处理渲染单选小部件值的案例。[sdelcourt]

0.8 (2016-06-03)

  • DocumentGenerationView._render_document 中,将 portal 作为 imageResolver 传递给 appy.pod.renderer.Renderer,以便 LibreOffice 可以访问 XHTML 字段中的私有图像。[gbastien]

0.7 (2016-03-22)

  • **kwargs 传递给 DocumentGenerationView._render_document,以便可以将任意参数传递给在 _render_document 中调用的 appy.pod.renderer.Renderer,并将 **kwargs 也传递给它。这样,例如,可以将 Renderer.raiseOnError 设置为 True。[gbastien]

  • 为内容类型 PODTemplateConfigurablePODTemplateSubTemplateStyleTemplate 添加 meta_type,这样就可以用于过滤出 objectValues/objectIds。[gbastien]

  • 在 configurablePODTemplates 上添加验证器,检查选择的生成格式是否与提供的文件类型正确。[boulch, DieKatze]

0.6 (2016-01-21)

  • CSS 修复,使用 display: inline-block; 而不是 display: inline; 在查看器中显示 POD 模板,以便可以对其上的附加标签进行对齐。[gbastien]

  • 将 'description' 添加到在 generationlinks 查看器中可显示的数据列表中。当将鼠标悬停在 POD 模板标题上时,现在会显示 POD 模板的描述。[gbastien]

0.5 (2015-12-02)

  • 添加 ConfigurablePODTemplateCondition._extra_expr_ctx 方法,以便可以轻松扩展 ITALCondition 表达式的上下文,而无需覆盖 evaluate 方法。[gbastien]

0.4 (2015-12-02)

  • 确保不要查询 None,以确保与 ZCatalog 3 的兼容性。[gbastien]

  • 考虑注册表中定义的 oo_port 参数。[gbastien]

0.3 (2015-09-30)

  • 扩展基本帮助视图以使 @@plone、@@plone_portal_state 视图可用,并添加了方法 'translate' 以能够将给定的域名中的 msgid 进行翻译。[gbastien]

  • 重构了 DocumentGenerationHelperView.display_date 方法,使用 toLocalizedDate,并适配了 AT 和 DX 实现。[gbastien]

  • 重构生成视图,将参数< cite>pod_template和< cite>output_format直接传递给视图调用或其方法。[gbastien, sdelcourt]

0.2 (2015-09-22)

  • 将字段< cite>pod_portal_type重命名为< cite>pod_portal_types,因为这个字段是多选字段。[gbastien]

  • 将< cite>document-generation视图使用的参数< cite>doc_uid重命名为< cite>template_uid,更明显,并在视图链接信息字典中可用。[gbastien]

  • 添加了IConfigurablePODTemplate.pod_formats字段,以便能够选择我们想要生成POD模板的格式。[gbastien]

  • 在模板上评估tal_condition时,将extra_expr_ctx传递给TAL表达式,以便< cite>context和< cite>here成为TAL表达式实际评估的元素,而不是pod_template,< cite>template是pod_template。[gbastien]

0.1 (2015-07-17)

项目详情


< span>发布历史< span class="reset-text margin-top"> 发布通知 | RSS源

下载文件

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

源分布

collective.documentgenerator-3.43.tar.gz (694.0 kB 查看哈希值)

上传时间

由以下支持

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