Plone站点的通用工具
项目描述
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:
所有选项(除了请求以外的所有参数)都需要以名称(可能并且已推荐)给出。
贡献者
Tobias Herp,tobias.herp@visaplan.com
变更日志
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_ROOT和CLIENT_HOME
lockfiles_directory()函数,使用LOCKFILES_DIR和var_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。
要求
如果我们有visaplan.plone.search,则需要1.7+
提示
未来版本中,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装饰器的默认日志标签现在包括工作者的名称,例如instance或client。
(注意:此装饰器在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_title为None;否则,在这种情况下返回空字典。
[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)
错误修复
[tobiasherp]
1.4.5 (2021-10-27)
(如果使用 .axtools 模块中的新功能,请使用 1.4.6+ 版本)。
破坏性更改
删除了在 1.4.2 版本中添加的 .metadata 模块;我们现在有 collective.metadataversion 来替代它,将 metadata_version 值持久存储在注册表中。
新功能
新的 .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,因此速度更快(例如用于缓存键函数)
临时更改
新的 .metadata 模块以支持条件元数据更新。
注意:这在 1.4.5 版本中被删除。如果您需要 metadata_version 元数据列,请使用 collective.metadataversion 代替。
[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 选项
要求
visaplan.tools v1.3.1+
[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_options 将 sort_on 键注入到查询中。
上下文 模块
message 函数(非生成;带 context 参数)
默认的 mapping 现在是 None。
make_permissionChecker 不再需要 checkperm 适配器即可有用
make_userdetector 不再需要 auth 适配器即可有用
为 search 模块提供工作文档测试
zcmlgen 模块
生成器类的“构造函数”支持可选的 skip 参数(关键字参数)
移除硬依赖
-
如果没有安装,.attools 模块的部分将无法正常工作
-
如果没有安装,.forms.form_changes 需要 一个 form 参数(但无论如何它都是占位符)。
[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 模块
改进了更改检测,以显式忽略添加/删除的空白行
上下文 模块
新函数 message 和 getbrain,作为一些同名适配器的替代
[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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 23e3aaf4bc3b3709f75a4301c4ada7bddd81c76f6e5bea51408018d0ab133e75 |
|
MD5 | cb6f29fa5770737885f6c7ec87d07040 |
|
BLAKE2b-256 | e50e206b92906db85a22ed8d0eadbc264b21c221c5ea517ec3500018bcc46687 |