[Checkins] SVN: z3c.formjs/trunk/src/z3c/formjs/j Stabilized field/widget lookup.

Stephan Richter srichter at cosmos.phy.tufts.edu
Fri Jul 6 20:51:56 EDT 2007


Log message for revision 77548:
  Stabilized field/widget lookup.
  

Changed:
  U   z3c.formjs/trunk/src/z3c/formjs/jqueryrenderer.py
  U   z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py
  U   z3c.formjs/trunk/src/z3c/formjs/jsvalidator.txt

-=-
Modified: z3c.formjs/trunk/src/z3c/formjs/jqueryrenderer.py
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/jqueryrenderer.py	2007-07-06 22:43:31 UTC (rev 77547)
+++ z3c.formjs/trunk/src/z3c/formjs/jqueryrenderer.py	2007-07-07 00:51:55 UTC (rev 77548)
@@ -98,8 +98,8 @@
         # build js expression for extracting widget value
         valueString = '$("#%s").val()' % widget.id
         # build a js expression that joins valueString expression
-        queryString = '"?widget-id=%s&%s=" + %s' % (
-            widget.id, widget.name, valueString)
+        queryString = '"?widget-name=%s&%s=" + %s' % (
+            widget.__name__, widget.name, valueString)
         # build a js expression that joins form url, validate path, and query
         # string
         ajaxURL = '"'+form.request.getURL() + '/validate" + ' + queryString

Modified: z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py	2007-07-06 22:43:31 UTC (rev 77547)
+++ z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py	2007-07-07 00:51:55 UTC (rev 77548)
@@ -25,27 +25,25 @@
 
 from z3c.formjs import interfaces
 
-
+# Traverser Plugin to the ``validate()`` method of the ``IAJAXValidator``
 ValidateTraverser = SingleAttributeTraverserPlugin('validate')
 
 class BaseValidator(object):
     zope.interface.implements(interfaces.IAJAXValidator, IPluggableTraverser)
 
-    # See IAJAXValidator
+    # See ``interfaces.IAJAXValidator``
     ValidationScript = None
 
     def _validate(self):
-        # XXX: Hard coded. Need a better approach.
-        widgetID = self.request.get('widget-id')
-        fieldName = widgetID.replace('form-widgets-','')
-        self.fields = self.fields.select(fieldName)
+        shortName = self.request.get('widget-name')
+        self.fields = self.fields.select(shortName)
         self.updateWidgets()
         return self.widgets.extract()
 
     def publishTraverse(self, request, name):
         # Act like a pluggable traverser.
-        for traverser in zope.component.subscribers((self, request),
-                                                    ITraverserPlugin):
+        for traverser in zope.component.subscribers(
+                 (self, request), ITraverserPlugin):
             try:
                 return traverser.publishTraverse(request, name)
             except NotFound:

Modified: z3c.formjs/trunk/src/z3c/formjs/jsvalidator.txt
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/jsvalidator.txt	2007-07-06 22:43:31 UTC (rev 77547)
+++ z3c.formjs/trunk/src/z3c/formjs/jsvalidator.txt	2007-07-07 00:51:55 UTC (rev 77548)
@@ -53,7 +53,7 @@
     >>> print edit.fieldValidator(
     ...     None, jsaction.WidgetSelector(edit.widgets['zip']), request)
     $.get("http://127.0.0.1/validate" +
-          "?widget-id=form-widgets-zip&form.widgets.zip=" +
+          "?widget-name=zip&form.widgets.zip=" +
           $("#form-widgets-zip").val(),
           function(data){
               alert(data);
@@ -66,14 +66,14 @@
     ...     (jsinterfaces.IAJAXValidator, IPublisherRequest))
 
     >>> from z3c.traverser.traverser import PluggableTraverser
-    >>> request = TestRequest(form={'widget-id' : 'form-widgets-zip',
+    >>> request = TestRequest(form={'widget-name' : 'zip',
     ...                             'form.widgets.zip' : u'29132'})
     >>> edit = AddressEditForm(None, request)
     >>> edit.update()
     >>> PluggableTraverser(edit, request).publishTraverse(request, 'validate')()
     u''
 
-    >>> request = TestRequest(form={'widget-id':'form-widgets-zip',
+    >>> request = TestRequest(form={'widget-name': 'zip',
     ...                             'form.widgets.zip':'notazipcode'})
     >>> edit = AddressEditForm(None, request)
     >>> edit.update()



More information about the Checkins mailing list