[Checkins] SVN: z3c.form/branches/adamg-objectwidget/src/z3c/form/ slight refactors
Adam Groszer
agroszer at gmail.com
Tue Oct 28 04:20:46 EDT 2008
Log message for revision 92652:
slight refactors
Changed:
U z3c.form/branches/adamg-objectwidget/src/z3c/form/browser/object.txt
U z3c.form/branches/adamg-objectwidget/src/z3c/form/object.py
-=-
Modified: z3c.form/branches/adamg-objectwidget/src/z3c/form/browser/object.txt
===================================================================
--- z3c.form/branches/adamg-objectwidget/src/z3c/form/browser/object.txt 2008-10-28 05:35:23 UTC (rev 92651)
+++ z3c.form/branches/adamg-objectwidget/src/z3c/form/browser/object.txt 2008-10-28 08:20:44 UTC (rev 92652)
@@ -69,7 +69,7 @@
>>> widget.update()
Traceback (most recent call last):
...
- AttributeError: 'NoneType' object has no attribute 'schema'
+ ValueError: <ObjectWidget 'widget.name'> .field is None, that's a blocking point
This schema is specified by the field:
Modified: z3c.form/branches/adamg-objectwidget/src/z3c/form/object.py
===================================================================
--- z3c.form/branches/adamg-objectwidget/src/z3c/form/object.py 2008-10-28 05:35:23 UTC (rev 92651)
+++ z3c.form/branches/adamg-objectwidget/src/z3c/form/object.py 2008-10-28 08:20:44 UTC (rev 92652)
@@ -65,9 +65,12 @@
view.update()
widget.error = view
- def update(self, ignoreContext=None, setErrors=True):
+ def setupFields(self):
self.fields = Fields(self.__parent__.field.schema)
+ def update(self, ignoreContext=None, setErrors=True):
+ if self.__parent__.field is None:
+ raise ValueError("%r .field is None, that's a blocking point" % self.__parent__)
#update stuff from parent to be sure
self.mode = self.__parent__.mode
if ignoreContext is not None:
@@ -85,6 +88,8 @@
self.prefix = prefix+self.__parent__.field.__name__
+ self.setupFields()
+
super(ObjectSubForm, self).update()
if setErrors:
@@ -142,7 +147,10 @@
else:
dm = zope.component.getMultiAdapter(
(self.widget.context, self.field), interfaces.IDataManager)
- obj = dm.get()
+ try:
+ obj = dm.get()
+ except KeyError:
+ obj = self.createObject(value)
obj = self.field.schema(obj)
@@ -181,9 +189,6 @@
_updating = False
def _getForm(self, content):
- #self.subform = ObjectSubForm(content, self)
- #from pub.dbgpclient import brk; brk('192.168.32.1')
-
form = getattr(self, 'form', None)
self.subform = zope.component.getMultiAdapter(
(content, self.request,
More information about the Checkins
mailing list