跳转到主要内容

Plone站点的通用工具

项目描述

https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336:target:https://pycqa.github.io/isort/

visaplan.plone.tools

Plone的通用工具模块。

我们并不声称拥有终极的Plone智慧(目前还没有);这个包是之前一个大型的经典Zope产品拆分出来的部分之一。

它是德国博鸿的visaplan GmbH维护的“Unitracc家族”Plone站点的基础之一。

本包的一些模块可能仍然包含一些特定于我们的“Unitracc家族”站点的资源(例如类型名称);这可能在未来的版本中改变。

特性

此附加组件可以在以下站点中看到效果

版本1.1.4+中的模块

  • attools 模块

    基于Archetypes的内容的几个工具

  • brains 模块

    目前有一个 make_collector 函数,例如用于地址字段

  • cfg 模块

    读取“产品”配置,并检测开发模式

  • 上下文 模块

    处理请求的几个工具。一些需要现代化...

  • 表单 模块

    几个用于表单的工具

  • 函数 模块

    一些函数,例如 is_uid_shaped

  • 索引 模块(自 v1.1.4 新增)

    • 函数 getSortableTitle 用于标题转换。

      这会将重音符号等转换为与相应的基音相同的排序,根据德语词汇用法。

  • 日志 模块

    自动命名的记录器

  • mock 模块

    • 几个用于 doctests 的小类

    • visaplan.tools.mock 相同的模块

  • mock_cfg 模块

    cfg 提供的原始模拟模块

  • 搜索 模块

    几个函数,用于支持创建 ZODB 目录搜索查询(恐怕相当专有;可能在未来的版本中消失)

  • 设置 模块(自 v1.1)

    用于迁移脚本的函数

  • zcmlgen 模块(自 v1.1.1)

    • 如果检测到更改,并且开发模式处于活动状态,并且源代码位于开发包中,则生成 configure.zcml 文件。

      • 开发模式处于活动状态,并且

      • 源代码位于开发包中。

  • 装饰器 模块(自 v1.1.6)

    • @returns_json:

      包装函数调用并返回包括 HTTP 标头在内的 JSON 编码结果。

      如果可用,则使用 simplejson

      应用于仅提供 JSON 数据以插入页面模板的函数!

      否则,浏览器可能会尝试将您的 HTML 页面解析为 JSON 并失败。

文档

抱歉,我们还没有真正的用户文档。

大多数函数都通过 doctests 进行了文档说明;了解一些德语会有所帮助。

安装

由于 visaplan.plone.tools 是 Plone 实例的包,因此通常不使用 pip 进行安装;相反,通过将其添加到您的 buildout 来安装它

[buildout]
...

eggs =
    visaplan.plone.tools

然后运行 bin/buildout

贡献

支持

如果您遇到问题,请告诉我们;请使用上述提到的 问题跟踪器

许可证

该项目受 GPLv2 许可。

待办事项

  • 破坏性更改

    • forms.tryagain_url:

      • 所有选项(除了请求以外的所有参数)都需要以名称(可能并且已推荐)给出。

贡献者

变更日志

1.6.0(预计)

  • 删除所有配置文件和 zcml 代码

1.5.3 (2024-04-09)

新功能

  • .setup

    • 新装饰器 upgradeStep();用法

      @ungradeStep
      def setup_various(context, logger):
          # just use the logger

      (旧名称 step 已弃用)

    • 新装饰器 installStep();用法

      @installStep('profiles/default/my.checked-marker.txt')
      def setup_various(context):
          # jump right in!

      (旧名称 importStep 已弃用)

杂项

  • 注册了一个 Hidden 实用程序来隐藏整个包以及 :uninstall 配置文件,从添加组件安装表单中隐藏。

[tobiasherp]

1.5.2 (2024-03-21)

新功能

  • .decorators:新装饰器 headless_json

  • .setup:新装饰器 importStep()(如果可能,请使用 v1.5.3 中引入的新名称)

配置文件更改

  • 我们尽力防止人们激活此包!注意:任何配置文件和ZCML代码的删除计划在1.6版本中发布。

[tobiasherp]

1.5.1 (2023-12-21)

错误修复

  • 对于一些意外的文件名,.cfg.split_filename没有返回一个字符串的2元组(而是单个字符串),这可能导致潜在的阻止性ValueErrors。

[tobiasherp]

1.5.0 (2023-11-28)

杂项

  • 仅代码维护

[tobiasherp]

1.4.19 (2023-05-31)

新功能

  • 新模块 .lock

    • ConvenientLock 上下文管理器,包装zc.lockfile.LockFile

    • lockfile_kwargs() 函数,考虑到zc.lockfile版本

  • .env模块中,查询环境

    • var_directory()函数,使用VAR_ROOTCLIENT_HOME

    • lockfiles_directory()函数,使用LOCKFILES_DIRvar_directory()函数

要求

  • .lock模块建立在zc.lockfile包之上。要使用它,您可以

    • 自行安装zc.lockfile(支持1.2.0+版本,但不是必需的),或者

    • 使用lock扩展。

    注意:配置并创建一个LOCKFILES_DIR,或在实例的var目录中创建一个lock子目录!

[tobiasherp]

1.4.18.1 (2023-05-03)

错误修复

  • 检查visaplan.plone.search包的版本时,请正确比较,遵循PEP 440

要求

[tobiasherp]

1.4.18 (2023-05-02)

改进

  • 由于我们使用传统的索引getExcludeFromNav,现在如果可用,我们从visaplan.plone.search导入该索引的名称;

  • 默认仍然是getExcludeFromNav

要求

提示

  • 未来版本中,getExcludeFromNav索引名称的默认值将更改。

[tobiasherp]

1.4.17 (2023-04-05)

新功能

  • 函数 .attools.can_be_html(field)

[tobiasherp]

1.4.16 (2023-03-24)

新功能

  • 在.functions中新增函数 short_hostname

[tobiasherp]

1.4.15 (2023-03-08)

错误修复

  • Py3K支持修复

    • .functions.is_uid_shaped

    • .log.getLogSupport

新功能

  • 新增(仍然很小)的模块 .seo 以支持SEO;目前专注于结构化数据。函数

    • parse_title,返回一个字典

[tobiasherp]

1.4.14 (2022-04-22)

错误修复

  • 修复了以下模块的缺失导入

    • .groups.is_member_of__factory

    • .setup.get_default_idxs

[tobiasherp]

1.4.13 (2022-03-04)

错误修复

  • 修复了groupinfo_factory(pretty)中的错误;为此,我们需要visaplan.plone.groups。

改进

  • @@step装饰器的默认日志标签现在包括工作者的名称,例如instanceclient

    (注意:此装饰器在1.5.3版本中已重命名!)

新功能

  • 新增.env模块,提供worker_name()

[tobiasherp]

1.4.12 (2022-02-15)

错误修复

  • 修复了groupinfo_factory(pretty)中的错误;为此,我们需要visaplan.plone.groups。

[tobiasherp]

1.4.11 (2022-02-05)

错误修复

  • 修复了groups.groupinfo_factory的回归问题

[tobiasherp]

1.4.10 (2022-02-03)

改进

  • groups模块转换为子包

新功能

  • 为以下内容新增选项 missing=False

    • .groups.groupinfo_factory

    如果为True,则生成的函数创建一个existing键,对于缺失的组,group_titleNone;否则,在这种情况下返回空字典。

[tobiasherp]

1.4.9 (2021-12-13)

改进

  • 如果安装了collective.metadataversion,则使用配置的默认索引集(如果没有显式给出idxs但请求重新创建元数据)

[tobiasherp]

1.4.8 (2021-11-29)

新功能

  • 新增.setup函数 load_and_cook,用于在GenericSetup升级步骤中使用

[tobiasherp]

1.4.7 (2021-11-17)

错误修复

  • 在检测当前活动语言(.context.getActiveLanguage[_unchecked])时,我们现在首先检查I18N_LANGUAGE cookie。

[tobiasherp]

1.4.6 (2021-10-28)

错误修复

  • 修复了在.attools.dxtools模块的新函数中,当将模式作为位置参数传递时的错误(实际上对于.dxtools来说,还没有实现要使用哪个)。

[tobiasherp]

1.4.5 (2021-10-27)

(如果使用 .axtools 模块中的新功能,请使用 1.4.6+ 版本)。

破坏性更改

新功能

  • 新的 .attools 函数

    • get_first_text_as_html

    • get_all_texts

    • generate_all_texts

  • 新的 .dxtools 模块,包含以下函数

    • get_first_text_as_html

    • get_all_texts

    • generate_all_texts

配置文件更改

  • 删除了 default 配置文件;目前将此包作为 Plone 插件安装没有任何意义。只需将其添加到所需的 eggs 中,并从模块中导入。

    目前我们保留 uninstall 配置文件;它将在未来的版本中被删除。

    所以,不要“安装” 此包(快速安装器,Plone 插件);只需在 Python 代码中使用它!

    尽管如此,我们目前仍然保留 configure.zcml 文件和自动包含入口点;我们可以想象使用例如 Plone 注册表来设置一些设置。

[tobiasherp]

1.4.4 (2021-08-31)

错误修复

  • .setup.make_object_getter() 在更改语言时没有更新语言索引

改进

  • .setup.make_object_getter() 现在在更改 .title 属性时还会更新以下索引

    • sortable_title

    • SearchableText

    • getEffectiveIndex

[tobiasherp]

1.4.3 (2021-08-27)

新功能

  • .search 模块

    • 新的转换工具 …

      • make_querystring_mangle,一个工厂,用于创建

      • mangleQueryString,使用

      • mangle_umlauts

杂项

  • normalizeQueryString(以及新的 mangleQueryString

    现在仅在单词结尾自动插入星号 仅限

[tobiasherp]

1.4.2 (2021-08-25)

新的工具

  • .context.getActiveLanguage_unchecked:类似于 getActiveLanguage,但不会检查支持的 languages,因此速度更快(例如用于缓存键函数)

临时更改

[tobiasherp]

1.4.1 (2021-06-30)

错误修复

  • 修复 .setup.handle_subportal 的错误

提示

  • visaplan.plone.search 包在其 .utils 模块中包含一个 make_input_text 函数,该函数不使用 BeautifulSoup 重新实现 make_input。这可能会替换我们现有的 make_input 函数,并忽略任何传递给 BeautifulSoup 构造函数的当前关键字选项,即 factory 选项。

    尽管如此,我们可能会创建一个新的 visaplan.zope.tools 包并将此功能移到那里。

[tobiasherp]

1.4.0 (2021-03-26)

破坏性更改

  • .setup.switch_menu_item

    • 如果 on 参数为 None,则不会更改任何内容

    • 除非指定 strict=False,否则不接受(其他)非布尔值 on 参数,这是新的关键字参数

改进

  • search 模块提供工作文档测试

  • zcmlgen 构造函数支持 skip 选项

要求

[tobiasherp]

1.3.0 (2020-12-16)

新功能

  • 新的模块 groups

  • 新的 .context 函数

    • getMessenger(工厂)

      创建一个不要求(也不接受)context 参数的 message 函数

    • getPath

    • get_parent

    • parents

    • parent_brains

    • make_brainGetter

    • make_pathByUIDGetter

    • make_translator

    • get_published_templateid

    • getSupportedLanguageTuples

  • 新的函数 setup.safe_context_id

  • 新的函数 search.normalizeQueryString(unicode,星号)

  • POSKeyError 救援设施,目前在此提供

    受 Mikko Ohtamaa 基于 five.grok 的 @@fix-blobs 视图启发,我们有两个视图

    • @@check-blobs 检查站点对象树中存在损坏的 BLOB 附件(图像或文件)的(Archetypes 或 Dexterity)对象,并以复选框的形式在 HTML 列表中显示它们;

    • @@check-blobs-delete-selected 允许删除受影响的找到的对象。

    注意:此功能可能会被移动到专用插件包中;不要依赖于它存在于本包的任何其他版本中!

  • 可选功能,取决于

    • visaplan.plone.search v1.2.1+

    • visaplan.plone.subportals

    (目前均不在 PyPI 上)

改进

  • setup 模块

    • 如果由 make_reindexer 工厂创建的 reindex 函数被 brain 和自身同时提供一个对象,它将按身份比较这两个对象,这永远不会匹配。现在检查相等性。

    • 新函数 clone_tree(自版本 1.2.0 以来)现在可以递归地工作

    • clone_tree 将对象从一个文件夹移动到另一个文件夹时,它会尝试保留有用的顺序;函数 _clone_tree_inner_move_objects 都使用新的辅助函数 apply_move_order_optionssort_on 键注入到查询中。

  • 上下文 模块

    • message 函数(非生成;带 context 参数)

      默认的 mapping 现在是 None

    • make_permissionChecker 不再需要 checkperm 适配器即可有用

    • make_userdetector 不再需要 auth 适配器即可有用

  • search 模块提供工作文档测试

  • zcmlgen 模块

    • 生成器类的“构造函数”支持可选的 skip 参数(关键字参数)

移除硬依赖

[tobiasherp]

1.2.0 (2020-05-13)

新的工具

  • setup 模块

    • 新函数 clone_tree,使用

    • 函数工厂 make_object_getter

    • 函数工厂 make_subfolder_creator

    这两个工厂具有重叠的功能,可能在未来的版本中统一;它们的初始目的是

    make_object_getter 创建一个函数(通常称为 get_object),它尝试 找到 一个(可能是已移动和/或重命名的)对象,然后能够应用一些更改;

    make_subfolder_creator 创建一个函数(通常称为 new_folder),它创建一个新的 文件夹(除非已经存在),然后能够应用一些更改。

[tobiasherp]

1.1.6 (2019-11-27)

新模块

  • decorators 模块

    • @returns_json(如果可用,使用 simplejson

新的工具

  • 上下文 模块

    • 函数工厂 make_timeformatter

错误修复

  • 修复了 README 中的拼写错误。

[tobiasherp]

1.1.5 (2019-07-18)

错误修复

  • getConfiguration 可能会失败;在这种情况下,记录警告并使用默认值

  • 缺少的要求

[tobiasherp]

1.1.4 (2019-05-09)

  • indexes 模块添加

    • 函数 getSortableTitle 用于标题转换。

      这会将重音符号等转换为与相应的基音相同的排序,根据德语词汇用法。

  • attools 模块

    • 新函数 notifyedit(context)

  • 表单 模块

    • tryagain_url 函数支持 var_items 参数

    • 修复了 make_input 函数的错误(抑制 type 属性)

  • zcmlgen 模块

    • 改进了更改检测,以显式忽略添加/删除的空白行

  • 上下文 模块

    • 新函数 messagegetbrain,作为一些同名适配器的替代

[tobiasherp]

1.1.3 (2019-01-29)

  • setup.make_renamer():生成的 rename 函数改进:现有的位置参数默认为 None;而不是 uid,可以使用 o(对象)或 brain(通过名称指定)。

  • setup.make_query_extractor(),生成的 extract_query 函数改进:如果 Language 字符串的值为 all,则不要将其转换为列表。

  • zcmlgen 模块

    • 更改检测修复错误

    • 如果发现更改但不允许(非开发设置),并且 sys.stdout 连接到终端,则启动调试器

    [tobiasherp]

1.1.2 (2018-11-21)

  • 文档修正

  • (目前)删除未使用的依赖项 [tobiasherp]

1.1.1 (2018-09-27)

  • 添加 zcmlgen 模块

    • 如果检测到更改,并且开发模式处于活动状态,并且源代码位于开发包中,则生成 configure.zcml 文件。

      • 检测到更改(有缺陷;参见 v1.1.3),并且

      • 开发模式处于活动状态,并且

      • 源代码位于开发包中。

1.1 (2018-09-17)

  • 添加 attools 模块

    • 为 Archetypes 提供的工具箱

  • 添加 brains 模块

    • make_collector,例如用于地址字段

  • 添加 forms 模块

    • 支持 Zope/Plone 系统中表单的模块集合

  • 添加 mock 模块

    • 几个用于 doctests 的小类

    • visaplan.tools .mock 相同的模块

  • 添加 mock_cfg 模块

    • cfg 一起使用,仅用于测试

  • 添加 search 模块

    • 创建目录查询的工具

  • 添加 setup 模块:用于迁移脚本的函数

  • 模块更改

    • 上下文 模块

      • 新函数 decorated_tool

    • 函数 模块

      • 新函数 looksLikeAUID(出于历史原因)

1.0 (2018-07-11)

  • 首次发布。[tobiasherp]

项目详情


下载文件

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

源代码分发

visaplan.plone.tools-1.5.3.tar.gz (135.8 kB 查看哈希值

上传时间 源代码

由以下机构支持

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