跳转到主要内容

Dexterity是一个针对CMF应用的类型框架,特别注重Plone。它可以被视为一个比Archetypes更轻量级、更模块化的替代方案。

项目描述

简介

Dexterity想要使一些事情变得非常简单。这些是

  • 通过整个网络创建一个“真实”的内容类型,而无需了解编程。

  • 作为业务用户,使用可视化工具或通过网络工具创建模式,并使用Python程序员在文件系统上编写的适配器、事件处理器和其他Python代码对其进行增强。

  • 通过文件系统代码快速轻松地创建内容类型,如果需要,可以在以后自定义类型的任何方面及其操作。

  • 支持通用的“行为”,可以在自定义类型中以声明方式启用。行为可以是诸如标题到ID命名、支持锁定或版本控制或与关联UI元素的标准元数据集。

  • 轻松打包并通过网络、文件系统或两种方法的组合分发通过整个网络定义的内容类型。

哲学

Dexterity是本着特定的哲学思想设计的。这可以概括如下

重用而非重新发明

在尽可能的情况下,Dexterity应重用已存在的组件和技术。然而,更重要的是,Dexterity应重用其他地方存在的概念。通过类比学习Dexterity应该很容易,并且可以使用熟悉的API和技术与Dexterity类型一起工作。

小型而非大型

不要用大型框架。Dexterity由多个专用包组成,每个包都是独立测试和可重用的。此外,包应该尽可能少地依赖其他包,并明确声明它们的依赖项。这有助于保持设计清晰和代码可管理。

自然交互而非过度泛化

设计Dexterity的理念是由几个用例驱动的,这些用例表达了我们希望人们如何使用Dexterity的方式。最终目标是让入门变得容易,同时通过逐步学习和自然的交互模式,从初始原型过渡到复杂的类型和相关行为也变得容易。Dexterity旨在考虑其用户,无论是业务分析师、轻度集成器还是Python开发者,无论他们是否新手或经验丰富,都将以明确、文档齐全、自然的交互模式明确地为他们提供服务。

真实代码优于生成代码

当生成代码不符合预期时,理解它和调试它都很难。很少,如果不是永远,都没有理由在Python代码中编写方法或“exec”字符串。

Zope 3优于Zope 2

尽管Dexterity并不假装与非CMF系统兼容,但应尽可能多的组件与纯Zope 3兼容,即使有对Zope 2、CMF或Plone的依赖,它们也应尽可能地遵循Zope 3的技术和最佳实践。许多操作(例如,在文件夹中管理对象、创建新对象或通过定义的架构操作对象)在Zope 3中比在Zope 2中设计得更好。

Zope概念优于新范式

我们希望Dexterity具有“Zope风格”。Zope是一个成熟、设计良好(好吧,大部分)且经过实战考验的平台。如果我们能帮助的话,我们不想发明全新的范式和技术。

自动测试优于幻想

“一切”都应该由自动测试来覆盖。Dexterity必然有很多移动部件。未测试的移动部件往往会松动并掉在人们头上。没有人喜欢这样。

入门

请阅读安装指南,以启动Dexterity。

然后登录到Plone,转到网站设置,然后转到Dexterity类型控制面板,通过网页开始创建内容类型。

或者阅读Dexterity开发者手册,以在文件系统上开始开发Dexterity内容类型。

Dexterity的2.0.x版本系列与Plone 4.3兼容,并包含在内。

升级

如果您是从Dexterity的先前版本升级的,您需要

  1. 更新您的buildout为新版本(或扩展更新的KGS),然后重新运行它。

  2. 重新启动Zope。

  3. 转到Plone网站设置中的插件控制面板,如果有任何可用的升级步骤,请运行“Dexterity内容类型”的升级步骤。

文档

有各种文档可用

以下文档不是针对Dexterity特定的,但可能对Dexterity用户有用

问题追踪器

请通过Plone问题跟踪器报告问题。

支持

Dexterity使用问题可以通过Plone的支持渠道得到解答。

贡献

贡献者请阅读Plone核心开发流程文档。

源代码位于在Github上托管的Plone代码仓库

Dexterity的实现离不开很多人的辛勤工作,包括

  • 马丁·阿斯佩利

  • 简·爱军

  • 维希特·阿克曼

  • 约纳斯·鲍曼

  • 大卫·布伦纳曼

  • 乔尔·伯顿

  • 文森特·弗雷廷

  • 罗克·加巴什

  • 安东尼·杰拉德

  • 内森·范·盖姆

  • 大卫·格利克

  • 克雷格·海纳尔

  • 沃特·范登·霍夫

  • 让-米歇尔·弗朗索瓦

  • 吉姆·富尔顿

  • 杰米·莱廷

  • 亚历克斯·利米

  • 史蒂夫·麦克马洪

  • 贾森·梅尔欣

  • 亚历克·米切尔

  • 丹尼尔·诺里

  • 罗斯·帕特森

  • 莫里茨·范·里斯

  • Lennt Regebro

  • Laurence Rowe

  • Israel Saeta Perez

  • Hanno Schlichting

  • Christian Schneider

  • Carsten Senger

  • Jon Stahl

  • Eric Steele

  • Gaudenz Steinlin

  • Dorneles Tremea

  • Sean Upton

  • Sylvain Viollon

  • Matthew Wilkes

  • Matt Yoder

  • Andi Zeidler

  • Hector Velarde

  • Giacomo Spettoli

  • Jens Klein

(如果我们在无意中遗漏了您的名字,请添加。)

发行说明

Dexterity 2.0是Dexterity的一个重大版本。它致力于使Dexterity包含在Plone核心中,通过清理事物并使一些尚未准备好进入主流的依赖项成为可选的。

默认不包含Grok风格的配置

Dexterity 1.0包括five.grok,允许通过Python指令而不是单独的基于XML的ZCML文件来配置组件。它还包括两个包,plone.directives.formplone.directives.dexterity,为Dexterity特定的功能提供一些grok风格的指令。

Dexterity的作者仍然喜欢grok,并认为它使学习如何自定义Plone变得更容易。然而,它已经变成一个可选功能,以便即使Plone框架团队不想将grok添加到已经复杂的堆栈中,Dexterity也有机会进入Plone核心。

要安装Dexterity时包含这三个与grok相关的包,启用“grok”额外功能

[instance]
eggs =
    plone.app.dexterity [grok]

顺便说一下,一些来自plone.directives.form的schema指令,以前需要grok才能工作,已经被重新实现,以便它们可以在没有grok的情况下工作。特别是,Schema类以及modelfieldsetprimary指令已移动到plone.supermodel.model。而omittedno_omitmodewidgetorder_beforeorder_afterread_permissionwrite_permission指令已移动到plone.autoform.directives。旧位置有别名,因此您不需要更新现有代码,但如果您试图避免依赖grok,则可以切换到新位置。

默认不包含关系支持

Dexterity 1.0包括基于zc.relation目录和plone.app.relationfield的对象关系支持,以及一个行为(plone.app.dexterity.behaviors.related.IRelatedItems),提供基于该实现的通用相关项目列表。

自从这个特性被添加到Dexterity以来,我们发现,直到Zope 2为所有内容设置__parent__指针,否则很难在Zope 2中很好地支持这种类型的关联。此外,我们在使用接口作为zc.relation目录的键时遇到了一些问题。Dexterity还支持Archetypes引用引擎在plone.app.referenceablebehavior中。由于这些因素,目前不会将zc.relation方法的对象关系包含在Dexterity或Plone核心中。

非常重要的是:如果您正在将Dexterity 1.0的站点升级到Dexterity 2.0,除非您安装了plone.app.relationfield,否则将会中断,因为您的数据库包含持久intid和关系实用工具。包含plone.app.relationfield的最简单方法是使用“relations”额外功能安装plone.app.dexterity

[instance]
eggs =
    plone.app.dexterity [relations]

通过plone.app.relationfield使用关系

如果您依赖关系支持,您可以通过安装plone.app.relationfield包来重新启用支持。您需要将其添加到您的包的setup.py中的install_requires

install_requires=[
    'plone.app.relationfield',
    ]

确保您的包包括其ZCML在configure.zcml中

<include package="plone.app.relationfield" />

并在您的包的metadata.xml中将其GenericSetup配置文件作为依赖项安装

<dependencies>
  <dependency>profile-plone.app.relationfield:default</dependency>
</dependencies>

如果您有任何使用IRelatedItems行为的自定义内容类型,请将它们更新为从新位置导入行为。

<property name="behaviors">
    <element value="plone.app.relationfield.behavior.IRelatedItems" />
</property>

内容树和自动完成小部件默认不包含

在Dexterity 1.0中,plone.formwidget.autocompleteplone.formwidget.contenttree的组件作为plone.app.dexterity的依赖项安装。在Dexterity 2.0中,这些组件默认不再安装,因为它们当前未被任何内置行为使用,也没有通过通过网页的内容类型编辑器提供。

如果您使用这些组件,请确保在setup.py中将它们列为例程依赖项,在configure.zcml中加载它们的ZCML,并在metadata.xml中将它们的GenericSetup配置文件作为依赖项激活。

变更日志

4.0.1 (2024-09-03)

破坏性变更

  • plone.app.discussion现在是一个核心插件。plone.discussion行为类已移动到那里。这是4.0.0版本成为破坏性发布的原因:这仅适用于Plone 6.1。[jensens] (#371)

4.0.0 (2024-05-30)

错误修复

  • 从移动的p.a.z3cform.widgets导入中删除DeprecationWarning。[jensens] (#387)

内部

  • 更新配置文件。[plone开发者] (6e36bcc4)

3.2.0 (2023-11-03)

内部

  • 使对plone.app.content的依赖项条件化。这是为了INameFromTitle,我们希望将其移动到plone.base。[maurits] (#3858)

3.1.2 (2023-10-25)

内部

  • 更新配置文件。[plone开发者] (55bda5c9)

  • 将一些测试移动到[cite]plone.app.content[cite]以避免与该包的循环依赖。[gforcada] (#3858)

3.1.1 (2023-05-22)

错误修复

  • 修复对[cite]plone.app.layout[cite]的递归循环依赖。使用[cite]plone.base[cite]中的移动导入。将[cite]plone.app.layout.nextprevious.interfaces.INextPreviousProvider[cite]移动到[cite].behaviors.nextprevious[cite]。将默认页面警告视图小部件移动到[cite]plone.app.layout[cite]。[jensens] (fix-circular-dep-palayout)

3.1.0 (2023-05-08)

新功能

  • 内容类型控制面板:显示行为名称和接口。[ksuess],[stevepiercy] (#363)

3.0.5 (2023-04-14)

错误修复

  • 修复可搜索的命名(Blob)文件索引器。安全地转换为字符串。[petschki] (#362)

内部

  • 更新配置文件。[plone开发者] (#47959565)

3.0.4 (2023-02-08)

错误修复

  • 恢复并弃用“ModelEditorView.modelSource”。它将在Plone 7中删除。[thet] (#359)

  • 弃用ModelEditorView.escaped_model_source,它不再需要。它将在Plone 7中删除。[thet] (#359)

  • 使用tal引擎通过非结构变量插入来转义HTML。[thet] (#359)

3.0.3 (2022-12-12)

错误修复

  • Modeleditor:不要重复转义xml。

    当将转义的HTML插入到modeleditor的textarea时,使用页面模板的结构关键字。这允许源代码模式正确解析和显示XML以供编辑。

    修复:#357 (#358)

3.0.2 (2022-12-10)

错误修复

  • 在modeleditor中保存模型源时修复XMLSyntaxError。[maurits] (#3695)

3.0.1 (2022-12-02)

错误修复

  • 从[cite]plone.app.widgets[cite]中删除弃用的导入。[petschki] (#355)

3.0.0 (2022-12-02)

错误修复

  • Plone 6.0.0的最终发布。[#600]

3.0.0b2 (2022-10-04)

错误修复

  • 修复folder_listing以显示内容ID(如果没有标题可用)。[jensens] (#353)

3.0.0b1 (2022-07-21)

错误修复

  • 测试:给行为添加名称。[maurits] (#169)

3.0.0a11 (2022-05-24)

错误修复

3.0.0a10 (2022-05-09)

破坏性变更

  • 代码风格:isort + black。Pyupgrade和six的删除。在测试中使用行为短名称。在editing.rst中减少sleep时间(在测试中节省10秒)。使用plone.base。[jensens] (#348)

错误修复

  • 使其与robotframework 3-5兼容。[maurits] (#5)

  • 替换了[cite]plone.api[cite]的使用。在Plone核心中不应这样做。[maurits] (#346)

  • 在行为控制面板中改进[cite]plone.textindexer[cite]的命名和描述。[jensens] (#347)

3.0.0a9 (2022-04-07)

破坏性变更

  • 从该包中删除JavaScript并将其移动到Mockup。[thet]

    Modeleditor:使用Patternslib中的pat-code-editor代替ACE。使模型编辑表单在没有JavaScript的情况下可使用。即使在XML错误的情况下也允许编辑表单,以便修复问题。[thet] (#334)

新功能

  • PLIP 2780:将collective.dexteritytextindexer的功能移动到核心。[zworkb] (#2780)

错误修复

  • 在PLIP 3395之后删除弃用警告,一些black和isort,一些six的删除。[jensens] (#345)

  • Modeleditor:当没有模型源时,显示模型文件。[maurits] (#3473)

3.0.0a8 (2022-02-24)

错误修复

  • 将新的类型图标更新为svg,旧的图标是png格式,并且作为url的表达式现在不再起作用(必须是一个兼容的图标解析器名称)。[yurj] (#340)

3.0.0a7 (2022-01-28)

错误修复

  • 依赖核心的plone.namedfile而不是其空的[scales]额外组件。[maurits] (#106)

3.0.0a6 (2022-01-19)

错误修复

  • 修复setup.py中关于旧版本规范符的警告。[maurits] (#337)

3.0.0a5 (2022-01-07)

错误修复

  • 在Robot测试中使用共享的“Plone测试设置”和“Plone测试清理”关键字。[Rotonen] (#292)

  • 修复表单文本。[agitator] (#336)

3.0.0a4 (2021-11-23)

错误修复

3.0.0a3 (2021-09-15)

错误修复

  • 删除与Products.CMFPlone的循环依赖。[ericof] (#329)

3.0.0a2 (2021-08-04)

错误修复

  • 更新文档。(#1)

3.0.0a1 (2021-04-20)

破坏性变更

  • 针对Plone 6更新,使用Bootstrap标记。[petschki, agitator] (#322)

2.6.9 (2021-01-08)

错误修复

  • 修复约束类型模式计算问题,禁用获取并优雅地检查容器中是否存在门户类型属性。[pbauer] (#319)

2.6.8 (2020-11-17)

错误修复

  • 为了提高安全性,在model editor中不解析实体,并删除处理指令。[maurits] (#3209)

2.6.7 (2020-10-30)

错误修复

2.6.6 (2020-09-21)

错误修复

  • 不要要求nextPreviousEnabled (#312)

2.6.5 (2020-04-15)

错误修复

  • 确保如果位置无法查找,getNextItem函数返回None。[timo] (#308)

2.6.4 (2019-11-25)

错误修复

  • 使用https链接到文档。[vincentfretin] (#299)

  • 更新与archetypes相关的文档介绍。[timo] (#301) (#302)

  • 修复文档中的mr.bob命令。[timo] (#305)

2.6.3 (2019-06-27)

错误修复

  • 更新关于创建dexterity行为的文档。[timo] (#281)

  • @@behaviors表单错误地编码了在Python3中添加的行为名称。[ale-rt] (#296)

  • 修复Python 3.8中的测试。[pbauer] (#298)

2.6.2 (2019-06-19)

错误修复

  • 更新关于创建dexterity行为的文档。[timo] (#281)

2.6.1 (2019-05-21)

错误修复

  • 将TTW内容类型的创建移动到使用和添加/删除命名行为。[iham] (#290)

  • 解决不正确的命名问题,IBasic.description必须是IDublinCore.description。[Ritwik Agarwal] (#294)

2.6.0 (2019-04-29)

新功能

  • IWidgetsLayer不再需要,请使用IPloneFormLayer。从plone.app.z3cform导入IFieldPermissionChecker而不是从plone.app.widgets。[jensens] (#268)

错误修复

  • 通过将main_template标记为浏览器视图来加快遍历。[pbauer] (#289)

2.5.3 (2019-02-08)

错误修复

  • 当名称选择器失败时释放上传锁。[maurits] (#276)

  • 导入Type Profile失败,因为代码使用StringIO而不是ByteIO。[maurits] (#279)

  • 当未定义时,不要从父级获取constrain_types_mode。[frapell] (#284)

2.5.1 (2018-09-23)

错误修复

  • 删除bbb以导入MessageFactory。[jensens]

  • Python 3修复。[jensens, pbauer]

2.5.0 (2018-06-24)

新功能

  • 在setup.py中将plone.schema>=1.1.0添加为最小依赖项。[timo]

  • 将添加到plone.schema 1.1.0的JSONField添加到types.py中的ALLOWED_FIELDS。[timo]

2.4.10 (2018-06-18)

错误修复

  • Python 3修复。[pbauer]

2.4.9 (2018-04-03)

错误修复

  • 如果类型没有小部件或组,则不会中断。修复了通过plone.app.contenttypes full_view显示TTW Dexterity类型时的错误。[thet]

2.4.8 (2018-02-04)

错误修复

  • 当portal_quickinstaller不存在时,在升级步骤或测试中不会失败。[maurits]

  • Python 2 / 3兼容的导入。[vincero]

2.4.7 (2017-10-17)

错误修复

  • 确保在Dexterity fixture的ZODB沙盒恢复时,不会意外拆毁robot autologin测试固定装置。[davisagli]

2.4.6 (2017-09-03)

错误修复

  • 与“贡献者”标签保持一致性。[arsenico13]

2.4.5 (2017-08-27)

错误修复

  • 现代化vocabularies文档。[jensens]

2.4.4 (2017-07-03)

错误修复

  • ICategorization行为应仅公开已配置的内容语言,而不是所有可用语言。[thetet]

2.4.3 (2017-06-26)

新功能

为plone.app.contenttypes.behaviors.thumb_icon.IThumbIconHandling添加文档,请参阅PLIP https://github.com/plone/Products.CMFPlone/issues/1734 [fgrcon]

错误修复

  • ICategorization行为应仅公开已配置的内容语言,而不是所有可用语言。[thet]

  • 修复弃用消息中的错误。[tkimnguyen]

  • 在创建dx对象之前移除transaction.begin调用,在创建dx对象之后移除transaction.commit调用。修复了#243问题。[ale-rt]

2.4.2 (2017-05-24)

错误修复

  • 清理permissions.py(ZCA装饰器,降低复杂性)[jensens]

  • 修复了当父对象没有“修改门户内容”权限时,在添加表单上的字段权限检查问题。新增:对于添加表单,使用“添加门户内容”权限作为默认字段权限。作为副作用,来自plone.app.content的AjaxSelectWidget等词汇表现在在没有“修改门户内容”的上下文中也能在添加表单上正常工作。[jensens]

  • 从文档中移除已弃用的getIcon()方法。[fgrcon]

  • 根据风格指南进行JavaScript格式化。[thet]

2.4.1 (2017-03-26)

错误修复

  • 将exclude_from_nav设置为可选。修复了#101问题。[jaroel]

2.4.0 (2017-02-12)

破坏性变更

  • 设置描述字段时,不要删除换行符,而是保持输入原样。相反,在plone.dexterity Description元数据访问器中删除换行符。[thet]

错误修复

  • 不要从plone.app.widgets中导入IFileFactory接口。它只在该处导入。[jensens]

  • 修复使用zope.testbrowser 5.0时的测试问题。[davisagli]

2.3.6 (2017-01-20)

新功能

  • 添加folder_listing视图的通用版本及宏。仅在Plone 5.1中注册,以避免在Plone 5.0中覆盖皮肤层模板的Archetypes内容。[davisagli]

2.3.5 (2016-11-18)

错误修复

  • 更新代码以遵循Plone风格指南。[gforcada]

  • 文档:添加使用行为的dexterity测试示例。[ramiroluz]

  • 添加folder_listing视图的通用版本,以便容器视图可以在没有plone.app.contenttypes的情况下使用它(例如在测试中使用DEXTERITY_FIXTURE)[davisagli]

2.3.4 (2016-10-03)

错误修复

  • 在文档中将secureSend替换为send。因为secureSend已经长期弃用。[maurits]

2.3.3 (2016-09-14)

错误修复

  • TTW行为选择的名字现在绑定到注册,之前绑定到接口。但是接口可能被多个已注册的行为使用。[jensens]

2.3.2 (2016-08-12)

错误修复

  • 使用zope.interface装饰器。[gforcada]

文档更改

  • 修改教程部分以使用mr.bob和bobtemplates.plone,而不是ZopeSkel。[smcmahon]

2.3.1 (2016-06-07)

错误修复

2.3.0 (2016-05-21)

新功能

  • exclude from navigation的默认值现在从上下文感知的默认工厂中获取,该值从适配器中获取。默认适配器返回False。提供了一个默认为True的替代适配器,但没有注册。此更改使得提供自定义上下文特定实现成为可能。[jensens]

  • 文档:添加短名并添加一些缺失的行为。[jensens]

错误修复

  • 在描述中用空格替换换行符而不是删除它。这样,编辑器可以使用它们,之后单词不会粘在一起。[jensens]

2.2.0 (2016-04-28)

新增

  • 为所有行为分配短名,这些短名由plone.behavior支持。[jensens]

修复

  • 从TTW行为FTI编辑器中删除重复项。[jensens]

  • 修复ConstrainTypesBehavior中的问题:当模式为ENABLED但只设置了setLocallyAllowedTypes时,getImmediatelyAddableTypes返回None,但所有消耗代码都期望它返回一个列表[jensens]

  • 从MIME-Type查找内容类型,以便使用正确的Plone内容类型来存储图像(尤其是Tiff),正确地将图像视为图像而不是文件。[loechel]

2.1.20 (2016-03-31)

修复

  • 文档:重写form-schema-hints.rst章节[jensens]

  • 在类型列表的HTML类中使用类型ID而不是标题。[davidjb]

2.1.19 (2016-02-26)

修复

  • 由于可能的棕色纸袋发布,重新发布。[maurits]

2.1.18 (2016-02-26)

修复

  • 使表单权限验证器更加通用,以便它可以与非AddForms一起使用。[alecm]

2.1.17 (2016-01-08)

修复

  • 更新事件处理程序文档。[jensens]

  • 删除未使用的本地化文件夹,翻译现在在 plone.app.locales 中。[vincentfretin]

2.1.16 (2015-12-03)

修复

  • 修复 MessageFactory 使用错误。[jensens]

  • 使用 plone i18n 域。[gforcada]

  • 修复使用 schema.Choice value_type 的 non existing self._request。[pcdummy]

2.1.15 (2015-10-28)

新增

  • 更新繁体中文翻译。[l34marr]

  • 更新巴西翻译。[claytonc]

修复

  • 更新 modeleditor 中的文档链接。问题 CMFPlone#1027。[pabo3000]

  • 修复 dexterity 类型列表中的图标。问题 CMFPlone#1013CMFPlone#1151。[fgrcon]

  • 不再依赖于已过时的 bobobase_modification_time from Persistence.Persistent。[thet]

  • 修复德语翻译中的错别字。感谢 bierik 在 Issue dexterity#183 中报告。[jensens]

  • 避免在升级步骤中重新添加 UUID。[gforcada]

2.1.14 (2015-09-21)

  • 更新法语翻译。[enclope]

2.1.13 (2015-09-20)

  • 修复权限检查器添加表单上下文的问题。问题 CMFPlone#1027。[alecm]

  • 修复 ace 编辑器 JavaScript 引用。问题 CMFPlone#895。[rodfersou]

  • 重新运行 i18ndude 并更新德语翻译。[pabo3000]

2.1.12 (2015-09-15)

  • 移除 unittest2 依赖。[gforcada]

2.1.11 (2015-09-11)

  • 更新巴斯克语翻译。[erral]

2.1.10 (2015-09-08)

  • 修复 Plone 5 的 modeleditor。[vangheem]

2.1.9 (2015-09-07)

  • 限制允许的字段类型为常规类型(因此 plone.app.users 不会显示)。[ebrehault]

2.1.8 (2015-08-20)

  • 避免 DeprecationWarning 对于 getIconsplitSchemaName。[maurits]

2.1.7 (2015-07-18)

2.1.6 (2015-06-05)

  • 将控制面板标题更改为大写字母。[vangheem]

  • 在测试可添加性时忽略受保护的字段。[ebrehault]

  • 更新日语翻译。[terapyon]

2.1.5 (2015-05-04)

  • 将 pat-modal 模式重命名为 pat-plone-modal。[jcbrand]

2.1.4 (2015-03-26)

  • 为默认页面警告模板添加 i18n:domain。[l34marr]

  • 更新繁体中文翻译。[l34marr]

2.1.3 (2015-03-13)

  • 代码和文档维护:pep8 等,zca 装饰器,文档样式。[jensens]

  • 确保默认创建者值是 Unicode 字符串。[lentinj]

  • 添加导入 zip 存档中类型配置文件的设施。在类型编辑页面上添加了按钮。导入格式与导出相同。[smcmahon]

  • 更新 Plone 5 的标记和 JavaScript。[davisagli]

  • 修复 IDexterityContainer 视图,使其能够使用 plone.app.contenttype 的新列表视图。访问它的宏需要将宏调用者的视图变量设置为新的列表视图。[thet]

2.1.2 (2014-10-23)

  • 添加 transifex-client 配置以管理 Plone transifex 组织的翻译。[macagua]

  • 更新西班牙语翻译 [flamelcanto, macagua]。

  • 添加验证器以确保过期日期在生效日期之后。[benniboy]

  • 从元描述中删除换行符和回车符,并添加升级步骤以对现有内容执行此操作。[bosim]

  • 修复了问题。当用户没有在父对象上添加权限时,从父对象的多重(两个或更多)获取失败。[keul, cekk]

2.1.1 (2014-04-13)

  • 添加行为,允许从编辑表单编辑项的 ID(plone.app.dexterity.behaviors.id.ShortName)。[davisagli]

  • 包含空白的类型无法克隆,这次提交修复了该错误。[bosim]

2.1.0 (2014-03-01)

2.0.11 (2013-12-07)

  • 修复类型编辑器内联javascript被diazo破坏的bug。[davisagli]

  • 已修复克隆内容类型的查看URL。参考 http://dev.plone.org/ticket/13776。[thomasdesvenain]

  • 添加机器人测试环境和第一个机器人测试。[cedricmessiant]

  • 在从类型标题设置类型ID时进行更好的字符串归一化(将重音或特殊字符替换为相应的字母)。[cedricmessiant]

  • 在编辑文件夹的默认页面时显示警告。[davisagli]

2.0.10 (2013-09-16)

  • 修复允许类型确定的bug,以便在继承允许类型时检查原始文件夹的权限。[davisagli]

2.0.9 (2013-08-13)

  • 在XML参考中添加defaultFactory标签的文档。[smcmahon]

  • 在modeleditor.py中移除文档URL内的换行符。[smcmahon]

  • 修复XML导出,以便GenericSetup的解析器可以在安装时成功解析它。[zupo]

  • 使用@@ploneform-render-widget在显示模式下渲染小部件。[cedricmessiant]

  • 将IBasic描述字段称为“摘要”,并给它提供真正有帮助的帮助文本。[davisagli]

  • 不在项目的默认视图中显示“允许讨论”字段。[davisagli]

2.0.8 (2013-05-23)

  • 添加基于plone.resourceditor的XML模型编辑器。如果plone.resourceditor可用,则通过内容类型字段选项卡上的“编辑XML字段模型”按钮公开 - 如果内容类型可编辑TTW。[smcmahon]

  • 添加加泰罗尼亚语翻译。[sneridagh]

2.0.7 (2013-04-09)

  • 修复确定是否显示允许的包含类型字段的bug。[ericof]

  • 如果类型有此类字段并且它为空,让INameFromFileName行为也设置标题。[pbauer]

  • 更新法语翻译。[thomasdesvenain]

2.0.6 (2013-04-06)

  • 添加缺失的翻译字符串。[vincentfretin]

2.0.5 (2013-04-06)

  • 更新pt_BR翻译。[ericof]

2.0.4 (2013-03-05)

  • 添加zh_TW翻译。[TsungWei Hu]

  • 添加对使用添加菜单中的“限制”表单约束容器允许内容类型的支持。从plone.app.contenttypes中的Patrick Gerken(@do3cc)的工作中合并。[rpatterson]

  • 添加新类型时,将重定向到字段选项卡作为下一个视图。[davisagli]

  • 不在类型概览页上显示短名称作为字段。[davisagli]

  • 在添加新类型时移除“容器”复选框,并默认创建容器。[davisagli]

  • 根据用户测试调整类型控制面板。[davisagli]

  • 根据其容器的语言设置新内容项的默认语言。[frapell]

  • 修复文件夹默认视图中“内容”的i18n。[vincentfretin]

  • 添加乌克兰语翻译。[kroman0]

2.0.3 (2013-01-17)

  • 尚未进行任何更改。

2.0.2 (2013-01-01)

  • 添加法语翻译。[cedricmessiant]

  • 行为控制面板现在正确地使任何修改的FTI无效。[malthe]

  • 通过添加许多缺失的字符串来改进i18n。[giacomos]

  • 在控制面板中改进了更好的图形集成。[giacomos]

  • 添加允许讨论的行为。[timo]

2.0.1 (2012-08-31)

  • 更新MANIFEST.in以纠正打包错误。[esteele]

2.0 (2012-08-30)

  • DC元数据字段现在正确地编码和解码(从字节字符串到unicode和反之亦然)。目前假定使用UTF-8。[malthe]

  • 使用lxml代替elementtree。[davisagli]

  • 使用zope.browserpage中的ViewPageTemplateFile。[hannosch]

  • 添加升级步骤以确保只有卸载plone.app.intid才会删除intids实用程序。[davisagli]

  • 修复遍历类型上下文,以便小部件使用的皮肤项目可以获取。[davisagli]

  • 在模式上下文中提供属性,以便模式编辑器可以包括来自行为的字段预览。[davisagli]

  • 在删除具有现有实例的内容类型之前提供更明确的警告。[davisagli]

  • 添加验证以防止给类型赋予与现有类型相同的名称。[davisagli]

  • 确保新FTI的标题和描述存储已编码,并具有默认i18n域“plone”。[davisagli]

  • 在控制面板中为每个类型添加概览选项卡。[davisagli]

  • 为Dexterity开发者手册添加Sphinx源。[giacomos]

  • 添加意大利语翻译。[giacomos]

  • 国际化内容类型设置页面、I18N修复、消息提取、法语翻译。[thomasdesvenain]

  • 增加了西班牙语翻译。[hvelarde]

  • 从collective.z3cform.datetimewidget安装配置文件以启用Jquery Tools日期选择器,用于日期/时间字段。[davisagli]

  • 修复错误:确保类型简短名称得到验证。[davisagli]

  • 修复错误:修复类型控制面板中类型描述的显示。[davisagli]

  • 修复错误:确保在Subject访问器返回字节串后,主题仍然可以以Unicode形式检索,以便进行分类行为。[davisagli]

  • 向Dexterity控制面板添加简介消息。[jonstahl, davisagli]

  • Grok支持现在是一个可选的“grok”扩展。如果您需要five.grok、plone.directives.form和plone.directives.dexterity,请使用它。有关更多信息,请参阅发行说明。本包中的行为已更新,以便在不使用grok的情况下工作。[davisagli]

  • plone.formwidget.autocomplete和plone.formwidget.contenttree不再默认包含。有关更多信息,请参阅发行说明。[davisagli]

  • 将“相关项目”行为移动到plone.app.relationfield。plone.app.relationfield不再作为依赖项安装。有关更多信息,包括如何更新依赖于关系支持或“相关项目”行为的包,请参阅发行说明。重要:您必须在将站点从Dexterity 1.0升级到Dexterity 2.0时安装plone.app.relationfield,否则站点将无法使用。[davisagli]

  • 将测试转换为基于plone.app.testing的设置。旧PloneTestCase基于的测试用例类和层现在已弃用。[davisagli]

  • 从CSS注册表中删除++resource++plone.app.dexterity.overlays.css。[davisagli]

  • 移除了对Plone 3 / CMF 2.1 / Zope 2.10的支持。[davisagli]

  • 根据需要更新Zope 2.12 & Zope 2.13的依赖项和导入。[davisagli]

  • 从“browsertypes_listing.pt”中删除CDATA部分(在HTML5中:仅允许在SVG/MathML命名空间中)。[kleist]

1.0 - 2011-05-20

  • 修复发布日期DateTime/datetime转换,以避免每次保存时因时区偏差而漂移。[elro]

  • 确保克隆的类型获得一个新的工厂。[davisagli]

  • 不要在Plone 4中覆盖覆盖CSS。[davisagli]

  • 修复了包含点(.)在简短名称中的类型的克隆。[davisagli]

  • 在添加类型时允许指定类型的简短名称。[davisagli]

  • 确保Basic元数据适配器直接访问内容的标题属性,以便它不会得到编码。同时确保无法通过此适配器设置编码数据。[davisagli]

1.0rc1 - 2011-04-30

  • 添加升级步骤以安装来自plone.formwidget.autocomplete的新javascript。[davisagli]

  • 添加了对在文件系统模型和代码中定义的架构进行TTW更改的基本支持。(注意:此功能实际上不会工作,直到在plone.dexterity中完成一些进一步的更改。)

    为了支持此更改,对序列化架构更改的事件处理程序进行了修订。我们现在为架构上下文引发的SchemaModifiedEvent注册单个事件处理程序。这允许我们跟踪需要在架构上下文中序列化的FTI。从序列化模块中删除了serializeSchemaOnFieldEvent和serializeSchemaOnSchemaEvent处理程序,并替换为serializeSchemaContext。serializeSchema助手仍然存在,但已弃用。[davisagli]

  • 添加MANIFEST.in。[WouterVH]

  • 在类型编辑器中添加“导出”按钮。导出所选类型的GS样式zip存档。[stevem]

  • 修复types_listing.pt中的旧jquery别名。这解决了http://code.google.com/p/dexterity/issues/detail?id=159。[davisagli]

  • 使显示模板在Plone 4中填充content-core。[elro]

  • 在显示表单中添加组字段集的id。[elro]

  • 排除导航行为应仅限于IDexterityContent。[elro]

1.0b4 - 2011-03-15

  • 添加“从文件名获取名称”的行为。[elro]

  • 移除NameFromTitle行为工厂,它不是必需的。[elro]

  • 添加“下一页上一页导航”和“下一页上一页导航切换”行为。[elro]

  • 添加“排除导航”行为。[lentinj]

  • 将文件夹列表放在一个fieldset中。[lentinj]

1.0b3 - 2011-02-11

  • 添加导航根行为。[elro]

  • 修复当编码描述存储在FTI时解码错误。[davisagli]

  • 避免在item.pt和container.pt中为标题和描述使用空的<div class="field">标签。[gaudenzius]

  • 为cs、de、es、eu、fr、ja、nl、pt_BR添加翻译的locale结构。[toutpt]

  • 更新法语翻译。[toutpt]

1.0b2 - 2010-08-05

1.0b1 - 2010-04-20

  • 要求schema编辑器UI使用plone.app.jquerytools,并在升级时确保已安装。[davisagli]

  • 删除未使用的schemaeditor.css。[davisagli]

  • 除了编辑和添加表单之外,省略元数据字段。[davisagli]

  • 默认启用“从标题获取名称”行为。[davisagli]

  • 包括plone.formwidget.namedfile,以便File上传和Image字段能够立即使用。如果您想使用基于blob的文件,必须在您的环境中显式包含z3c.blobfile。[davisagli]

  • 添加一个可以在测试中使用的DexterityLayer。[davisagli]

  • 修复了BehaviorsForm意外污染z3c.form EditForm ‘Apply’按钮标题的问题。[davisagli]

  • 添加升级文件夹并确保在从Dexterity的先前版本升级时安装plone.app.z3cform配置文件。[davisagli]

  • 依赖于plone.app.z3cform配置文件,以确保安装Plone浏览器层z3c.form。[davisagli]

  • 避免在类型列表表中使用acquisition获取portal_url以生成链接。[davisagli]

1.0a7 - 2010-01-08

  • 确保Dublin Core字段集按AT内容的顺序显示。[davisagli]

  • 确保在添加表单中,将当前用户作为IOwnership架构的默认创建者加载。[davisagli]

  • 在行为编辑标签中包含行为描述。[davisagli]

  • IBasic行为:将description-field的missing_value设置为u''。描述永远不应该为None(live_search将不再工作)。[jbaumann]

  • 修复了在类型控制面板中遍历不存在的类型名称时没有引发NotFound的问题。[davisagli]

  • 使能够查看不可编辑架构的字段。[davisagli]

  • 调整用于类型控制面板的tabbed_forms模板。[davisagli]

1.0a6 - 2009-10-12

  • 将plone.app.textfield作为依赖项。我们在这个包中不直接使用它,但Dexterity的用户应该安装并可用它。[optilude]

  • 为新类型使用一些默认图标。[davisagli]

  • 如果可用,则在类型列表中显示类型图标。[davisagli]

  • 从控制面板的类型列表中删除了“容器”字段(它不起作用)。[davisagli]

  • 向元数据架构字段标题和描述中添加消息工厂。修复了http://code.google.com/p/dexterity/issues/detail?id=75。[optilude]

  • 修补listActionInfos()而不是listActions(),以便将文件夹/添加类别放入动作列表中。这避免了‘actions.xml’导出处理程序错误地导出文件夹/添加类别的问题。修复了http://code.google.com/p/dexterity/issues/detail?id=78 [optilude]

1.0a5 - 2009-07-26

  • 显式包含来自plone.app.z3cform的overrides.zcml。[optilude]

1.0a4 - 2009-07-12

  • 更改API方法和参数为mixedCase,以使Zope的其余部分更一致。这是一个不向后兼容的更改。我们深表歉意,但现在必须这么做。:-/

    如果在您的代码中遇到导入错误或未知的关键字参数,请将名称从foo_bar更改为fooBar,例如serialize_schema()变为serializeSchema()。[optilude]

1.0a3 - 2009-06-07

  • 更新了使用 <plone:behavior /> 指令,以匹配 plone.behavior 1.0b4。[optilude]

1.0a2 - 2009-06-01

  • 从configure.zcml中删除多余的 <includeOverrides />,这将在通过 z3c.autoinclude.plugin 加载包时引起问题。[optilude]

1.0a1 - 2009-05-27

  • 初始版本

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分发

plone_app_dexterity-4.0.1.tar.gz (228.2 kB 查看哈希值)

上传时间

构建分发

plone.app.dexterity-4.0.1-py3-none-any.whl (130.8 kB 查看哈希值)

上传时间 Python 3

由以下机构支持