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的先前版本升级的,您需要
更新您的buildout为新版本(或扩展更新的KGS),然后重新运行它。
重新启动Zope。
转到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.form和plone.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类以及model、fieldset和primary指令已移动到plone.supermodel.model。而omitted、no_omit、mode、widget、order_before、order_after、read_permission和write_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.autocomplete和plone.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)
错误修复
将“Dexterity内容类型”重命名为“内容类型”。[tisto] (#331)
对于ICategorization.language不获取门户根默认语言的语言。修复https://github.com/plone/plone.app.dexterity/issues/258 [jaroel] (#350)
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)
错误修复
将“Dexterity内容类型”重命名为“内容类型”。[timo] (#331)
修复https://github.com/plone/plone.app.contenttypes/pull/624的损坏测试。[agitator] (#333)
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)
错误修复
更新测试以修复更新的架构缓存。请参阅https://github.com/plone/plone.dexterity/pull/137 [@avoinea, maurits] (#313)
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)
错误修复
从portal_actions中移除了dexterity-types。这在controlpanel.xml中设置正确。问题https://github.com/plone/plone.app.dexterity/issues/218 [maurits]
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#1013 和 CMFPlone#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 对于 getIcon 和 splitSchemaName。[maurits]
2.1.7 (2015-07-18)
从 setup.py 中移除重复的 plone.app.z3cform 粘钉。这修复了 https://github.com/plone/plone.app.dexterity/issues/167。[timo]
在自定义添加表单文档中修复了适配器路径。[brunobbbs]
将配置小部件的类别更改为 'plone-content'。[sneridagh]
在更改 ID 之前解锁(修复 https://github.com/plone/Products.CMFPlone/issues/623)。[pbauer]
移除多余的 'for'。修复 plone/Products.CMFPlone#669。[fulv]
Schemaeditor 不会再重定向。[barichu]
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)
如果 allowed_content_types 为 none 或缺失,则不要抛出错误。修复 https://github.com/plone/plone.app.contenttypes/issues/91 [pbauer]
PLIP #13705: 移除 <base> 标签。[frapell]
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
修复模板中的几个XML错误。这对于Chameleon兼容性是必需的。[wichert]
如果在控制面板中的dexterity UI通过克隆具有连字符名称的类型没有工作。这修复了http://code.google.com/p/dexterity/issues/detail?id=126 [vangheem]
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
初始版本
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。