背景:容器类型并不真正支持工作副本行为,因为它会导致复制该文件夹的所有子项时出现问题。我们正在通过对容器类型使用子数据类型来解决这个问题:几乎所有关于容器的数据都存储在一个数据对象中,该数据对象是该容器的子对象及其默认视图。我们从列表和搜索中排除数据对象。
问题:这导致不一致,目前我们必须将都柏林核心行为赋予容器类型,而不是数据类型,因为所有核心 Plone 代码都需要描述、生效日期等。这对于我们的 Plone 编辑器来说有点令人困惑,因为他们有两个地方可以编辑有关容器的数据。此数据也只能在实时版本上进行编辑,而不是签出的工作副本。
我想做的是:
- 将来自容器的都柏林核心数据请求委托给子数据对象(不知道从哪里开始)
- 在保存容器时,它将使用子数据都柏林核心数据作为目录中的元数据(如果第一部分正常工作,这应该可以工作)
- 在保存子数据时,它将重新索引其父对象以更新其元数据(我计划注册一个事件来实现这一点)
请有人可以为我提供一些关于如何实现第一部分的指示吗?