为控制面板 configlet 创建选项卡的规范方法是什么?

What is the canonical way to create tabs to a control panel configlet?

今天我们使用 "Multiple registry schema proxy" class 来实现这一点,但我们认为应该有更好的方法来使用 Plone 中的选项卡:

https://github.com/collective/collective.nitf/blob/1.x/src/collective/nitf/controlpanel.py#L163-L202

IMO 使用选项卡创建 configlet 的最简单方法是使用 plone.supermodel:

from my.package import MessageFactory as _
from plone.supermodel import model
from zope import schema

class IMyConfigletSettings(model.Schema):

    """Schema for the control panel form."""

    field_one = schema.Text(
        title=_(u'Field One'),
        default='',
    )

    model.fieldset('tab_a', label=_(u'Tab A'), fields=['field_a'])

    field_a = schema.Text(
        title=_(u'Field A'),
        default='',
    )

    model.fieldset('tab_b', label=_(u'Tab B'), fields=['field_b'])

    field_b = schema.Text(
        title=_(u'Field B'),
        default='',
    )

这将创建一个包含 3 个字段和 3 个选项卡(每个选项卡一个字段)的 configlet。

查看 a working, real-world example 的 sc.social.like 包。

也许这可以被认为是今后的规范方式。