为控制面板 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 包。
也许这可以被认为是今后的规范方式。
今天我们使用 "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 包。
也许这可以被认为是今后的规范方式。