[Checkins] SVN: z3c.reference/trunk/ Correct handling of the widget, it is now working correct with 'required'

Juergen Kartnaller juergen at kartnaller.at
Mon Dec 10 08:11:19 EST 2007


Log message for revision 82224:
  Correct handling of the widget, it is now working correct with 'required'
  fields.
  

Changed:
  U   z3c.reference/trunk/CHANGES.txt
  U   z3c.reference/trunk/src/z3c/reference/browser/widget.py

-=-
Modified: z3c.reference/trunk/CHANGES.txt
===================================================================
--- z3c.reference/trunk/CHANGES.txt	2007-12-10 12:59:59 UTC (rev 82223)
+++ z3c.reference/trunk/CHANGES.txt	2007-12-10 13:11:19 UTC (rev 82224)
@@ -5,6 +5,9 @@
 After
 =====
 
+- correct handling of the widget, it is now working correct with 'required'
+  fields.
+
 - removed dependency on elementtree
 
 - changed serializer to accept namespaces

Modified: z3c.reference/trunk/src/z3c/reference/browser/widget.py
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/widget.py	2007-12-10 12:59:59 UTC (rev 82223)
+++ z3c.reference/trunk/src/z3c/reference/browser/widget.py	2007-12-10 13:11:19 UTC (rev 82224)
@@ -62,6 +62,7 @@
     _emptyReference = None
     referenceExplorerViewName = 'viewReferenceEditor.html'
     functionName = 'setDefaultReferenceInput'
+    _missing = None
 
     def __init__(self, *args):
         resourcelibrary.need('z3c.reference.parent')
@@ -196,10 +197,6 @@
                              settingNameInput=settingNameInput,
                              )
 
-    def _getFormValue(self):
-        res = super(ViewReferenceWidget,self)._getFormValue()
-        return res
-
     def _toFormValue(self, value):
         if value == self.context.missing_value:
             return self._missing
@@ -210,9 +207,17 @@
         return url
 
     def hasInput(self):
-        return not not self.request.form.get(self.name + '.target')
+        return self.name + '.target' in self.request.form
 
+    def _getFormInput(self):
+        value = self.request.form.get(self.name + '.target')
+        if not value:
+            return None
+        return value
+
     def _toFieldValue(self, input):
+        if input is None:
+            return None
         if input == self._missing:
             return self.context.missing_value
         intIds = zope.component.getUtility(IIntIds)
@@ -230,8 +235,10 @@
         intid = self.request.get(targetName)
         if intid is None:
             return self.context.missing_value
-
-        obj = intIds.queryObject(int(intid))
+        try:
+            obj = intIds.queryObject(int(intid))
+        except ValueError:
+            return self.context.missing_value
         if obj is None:
             return self.context.missing_value
         if ref is None:



More information about the Checkins mailing list