Changed inner and widget form interfaces
authorThierry Florac <tflorac@ulthar.net>
Sat, 28 Feb 2015 13:33:20 +0100
changeset 1 dfa0508e4055
parent 0 7a0b409fd4b8
child 2 0f135e3c84b1
Changed inner and widget form interfaces
src/pyams_form/interfaces/form.py
--- a/src/pyams_form/interfaces/form.py	Thu Feb 19 10:55:46 2015 +0100
+++ b/src/pyams_form/interfaces/form.py	Sat Feb 28 13:33:20 2015 +0100
@@ -9,7 +9,6 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
-from pyams_template.template import template_config
 
 __docformat__ = 'restructuredtext'
 
@@ -21,9 +20,11 @@
 from z3c.form.interfaces import INPUT_MODE, ISubForm, IWidget, IFormLayer as IBaseFormLayer, ISubmitWidget
 from zope.interface.interfaces import IObjectEvent, ObjectEvent
 from zope.lifecycleevent.interfaces import IObjectCreatedEvent, IObjectModifiedEvent
+from zope.schema.interfaces import IField
 
 # import packages
 from pyams_form.schema import ResetButton, CloseButton
+from pyams_template.template import template_config
 from z3c.form import button
 from zope.interface import implementer, Interface, Attribute
 from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
@@ -169,6 +170,9 @@
     widgets = List(title="Group's widgets list",
                    value_type=Object(schema=IWidget))
 
+    bordered = Bool(title="Bordered fieldset",
+                    required=False)
+
     legend = TextLine(title="Group legend",
                       required=False)
 
@@ -187,10 +191,12 @@
                            required=True,
                            default=False)
 
-    checkbox_field = TextLine(title="Field name matching switch checkbox?",
-                              required=False)
+    checkbox_field = Object(title="Field name matching switch checkbox",
+                            schema=Interface,
+                            required=False)
 
-    checkbox_widget = Object(schema=IWidget,
+    checkbox_widget = Object(title="Checkbox switch widget",
+                             schema=IWidget,
                              required=False,
                              readonly=True)
 
@@ -229,11 +235,35 @@
                      required=True)
 
 
-class IInnerSubForm(ISubForm):
+#
+# Inner form interfaces
+#
+
+@template_config(template='../templates/inner-form.pt', layer=IFormLayer)
+class IInnerForm(IForm):
+    """Inner form marker interface"""
+
+    parent_form = Object(title="Parent form",
+                         schema=IForm)
+
+
+@template_config(template='../templates/widget-form.pt', layer=IFormLayer)
+class IWidgetForm(IForm):
+    """Widget form marker interface"""
+
+    widget_icon_class = TextLine(title="Widget icon class",
+                                 default="fa fa-edit")
+
+
+#
+# Sub-forms interfaces
+#
+
+class IInnerSubForm(IInnerForm, ISubForm):
     """Inner sub-form interface"""
 
 
-class IInnerTabForm(ISubForm):
+class IInnerTabForm(IInnerForm, ISubForm):
     """Inner tab-form interface"""
 
 
@@ -352,23 +382,6 @@
 
 
 #
-# Inner form interface
-#
-
-@template_config(template='../templates/inner-form.pt', layer=IFormLayer)
-class IInnerForm(Interface):
-    """Inner form marker interface"""
-
-
-@template_config(template='../templates/widget-form.pt', layer=IFormLayer)
-class IWidgetForm(Interface):
-    """Widget form marker interface"""
-
-    widget_icon_class = TextLine(title="Widget icon class",
-                                 default="fa fa-edit")
-
-
-#
 # Form buttons widgets
 #