I have a RegistryEditForm that has a widget that uses DataGridFieldFactory:
from zope.interface import Interface
from zope import schema
from z3c.form import field
from z3c.form import form
from collective.z3cform.datagridfield.registry import DictRow
from collective.z3cform.datagridfield import DataGridFieldFactory
from plone.z3cform import layout
from plone.app.registry.browser.controlpanel import RegistryEditForm
from plone.app.registry.browser.controlpanel import ControlPanelFormWrapper
class IMyObject(Interface):
title = schema.TextLine(title=u"Title",
required=True,
)
description = schema.TextLine(title=u"Description",
required = True,
)
class IMySettingsForm(model.Schema)
my_objects = schema.List(title=u"My Objects",
value_type=DictRow(title=u"My Objects", schema="IMyObject"),
)
class MySettingsForm(RegistryEditForm):
form.extends(RegistryEditForm)
schema = IMySettingsForm
label = u"My Settings",
fields = field.Fields(IMySettingsForm)
fields['my_objects'].widgetFactory = DataGridFieldFactory
def updateWidgets(self):
super(MySettingsForm, self).updateWidgets()
self.fields['my_objects'].allow_reorder = True
MySettingsControlPanelView = layout.wrap_form(MySettings, ControlPanelFormWrapper)
MySettingsControlPanelView.label = u"My Settings"
In my configure.zcml:
<browser:page
name="my-settings"
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
permission="cmf.ManagePortal"
class="my.product.registry.my_settings.MySettings"
/>
The DataGridField shows up, but the feature allowing reordering doesn't show up.
Is this the correct approach? If not, what am i doing wrong?
I'm using Plone 5.2.