[Checkins] SVN: z3c.formext/trunk/src/z3c/formext/ Fix syntax for Python2.4

Laurent Mignon Laurent.Mignon at softwareag.com
Wed Feb 4 03:16:11 EST 2009


Log message for revision 96060:
  Fix syntax for Python2.4
  Give the context when translating
  
  

Changed:
  U   z3c.formext/trunk/src/z3c/formext/component.py
  U   z3c.formext/trunk/src/z3c/formext/form.py
  U   z3c.formext/trunk/src/z3c/formext/jsoncompat.py
  U   z3c.formext/trunk/src/z3c/formext/jsoncompat.txt

-=-
Modified: z3c.formext/trunk/src/z3c/formext/component.py
===================================================================
--- z3c.formext/trunk/src/z3c/formext/component.py	2009-02-04 08:09:40 UTC (rev 96059)
+++ z3c.formext/trunk/src/z3c/formext/component.py	2009-02-04 08:16:11 UTC (rev 96060)
@@ -24,19 +24,25 @@
 from z3c.form.interfaces import IForm, DISPLAY_MODE, HIDDEN_MODE
 from z3c.form.interfaces import IPasswordWidget, IRadioWidget, IButtonAction
 from z3c.form.interfaces import ITextAreaWidget
-from z3c.form.interfaces import ITextWidget, ISelectWidget, ISingleCheckBoxWidget
+from z3c.form.interfaces import ITextWidget
+from z3c.form.interfaces import ISelectWidget
+from z3c.form.interfaces import ISingleCheckBoxWidget
 
 from z3c.formext import interfaces
 from z3c.formext.jsoncompat import jsonEncode
 
+
 class Component(object):
 
     def _getConfig(self):
         return {}
 
     def getConfig(self, json=False):
-        return jsonEncode(self._getConfig()) if json else self._getConfig()
+        if json:
+            return jsonEncode(self._getConfig(), context=self.request)
+        return self._getConfig()
 
+
 class Field(Component):
 
     xtype = None
@@ -87,11 +93,13 @@
 
     xtype = 'datefield'
 
+
 class ComboBox(Field):
     zope.interface.implements(interfaces.IExtJSComponent)
     zope.component.adapts(ISelectWidget)
 
     xtype = 'combo'
+
     def _getConfig(self, json=False):
         config = super(ComboBox, self)._getConfig()
         config['hiddenName'] = config['name']+':list'
@@ -103,11 +111,13 @@
                            for item in self.widget.items]
         return config
 
+
 class CheckBox(Field):
     zope.interface.implements(interfaces.IExtJSComponent)
     zope.component.adapts(ISingleCheckBoxWidget)
 
     xtype = 'checkbox'
+
     def _getConfig(self, json=False):
         config = super(CheckBox, self)._getConfig()
         checkbox = self.widget.items[0]
@@ -116,6 +126,7 @@
         del config['value']
         return config
 
+
 class RadioGroup(Field):
     zope.interface.implements(interfaces.IExtJSComponent)
     zope.component.adapts(IRadioWidget)
@@ -130,7 +141,7 @@
                           name=self.widget.name,
                           inputValue=item['value'],
                           checked=item['checked'])
-                     for index, item in enumerate(self.widget.items)]
+                     for index, item in enumerate(self.widget.items)],
             )
         # we must pass in an items list even if there aren't any.  So
         # we will just pass in one item that is hidden.  This is most
@@ -141,11 +152,13 @@
             config['title'] = self.widget.title
         return config
 
+
 class Button(Field):
     zope.interface.implements(interfaces.IExtJSComponent)
     zope.component.adapts(IButtonAction)
 
     xtype = 'button'
+
     def _getConfig(self, json=False):
         config = super(Button, self)._getConfig()
         config['text'] = self.widget.value
@@ -163,6 +176,7 @@
     return dict([(name, interfaces.IExtJSComponent(action).getConfig())
                  for name, action in form.actions.items()])
 
+
 def getWidgetsConfig(form, asDict=True):
     if not asDict:
         widgets = []
@@ -180,6 +194,7 @@
         widgets[name] = factory(widget).getConfig()
     return widgets
 
+
 class FormPanel(Component):
     zope.interface.implements(interfaces.IExtJSComponent)
     zope.component.adapts(IForm)
@@ -224,6 +239,7 @@
             config['handler']['failure'] = self.widget.field.failure
         return config
 
+
 def getAjaxButtonsConfig(form, asDict=True):
     if not asDict:
         buttons = getButtonsConfig(form, asDict=False)
@@ -262,4 +278,3 @@
         if hasattr(self.form, 'ownerCt'):
             config['ownerCt'] = self.form.ownerCt
         return config
-

Modified: z3c.formext/trunk/src/z3c/formext/form.py
===================================================================
--- z3c.formext/trunk/src/z3c/formext/form.py	2009-02-04 08:09:40 UTC (rev 96059)
+++ z3c.formext/trunk/src/z3c/formext/form.py	2009-02-04 08:16:11 UTC (rev 96060)
@@ -94,7 +94,8 @@
 
         jsVars = ''
         if hasattr(self, 'jsproperties'):
-            jsVars = '\n'.join(['    var %s=%s;' % (name, jsonEncode(prop(self)))
+            jsVars = '\n'.join(['    var %s=%s;' % (name,
+                jsonEncode(prop(self), context=self.request))
                                 for name, prop in self.jsproperties.items()])
 
         return tagWrap % (closureWrap % (depWraps % ('%s\n%s' % (jsVars, script))))
@@ -116,7 +117,8 @@
 
     @property
     def response(self):
-        return jsonEncode(self.jsonResponse or dict(success=True))
+        return jsonEncode(self.jsonResponse or dict(success=True),
+                context=self.request)
 
     def addFormError(self, error):
         self.jsonResponse['success'] = False
@@ -136,7 +138,7 @@
                 formErrors=[])
             for error in errors:
                 error = removeSecurityProxy(error)
-                message = translate(error.message)
+                message = translate(error.message, context=self.request)
                 if error.widget:
                     self.jsonResponse['errors'][error.widget.id] = message
                 else:

Modified: z3c.formext/trunk/src/z3c/formext/jsoncompat.py
===================================================================
--- z3c.formext/trunk/src/z3c/formext/jsoncompat.py	2009-02-04 08:09:40 UTC (rev 96059)
+++ z3c.formext/trunk/src/z3c/formext/jsoncompat.py	2009-02-04 08:16:11 UTC (rev 96060)
@@ -36,19 +36,21 @@
 
 from zope.i18n import translate
 
-def translateObject(o):
+
+def translateObject(o, context):
     if isinstance(o, list):
         for index, value in enumerate(o):
-            o[index] = translateObject(value)
+            o[index] = translateObject(value, context)
     elif isinstance(o, tuple):
-        o = [translateObject(value) for value in o]
+        o = [translateObject(value, context) for value in o]
     elif isinstance(o, dict):
         for key, value in o.items():
-            o[key] = translateObject(value)
+            o[key] = translateObject(value, context)
     elif isinstance(o, unicode):
-        o = translate(o)
+        o = translate(o, context=context)
     return o
 
-def jsonEncode(o):
-    o = translateObject(o)
+
+def jsonEncode(o, context=None):
+    o = translateObject(o, context)
     return encode(o)

Modified: z3c.formext/trunk/src/z3c/formext/jsoncompat.txt
===================================================================
--- z3c.formext/trunk/src/z3c/formext/jsoncompat.txt	2009-02-04 08:09:40 UTC (rev 96059)
+++ z3c.formext/trunk/src/z3c/formext/jsoncompat.txt	2009-02-04 08:16:11 UTC (rev 96060)
@@ -28,7 +28,10 @@
   ...   })
 
   >>> from zope.component import provideUtility
+  >>> from zope.i18n.negotiator import negotiator
+  >>> from zope.i18n.interfaces import INegotiator
   >>> provideUtility(test, name='test')
+  >>> provideUtility(negotiator, INegotiator)
 
   >>> from zope.i18nmessageid.message import MessageFactory
   >>> _ = MessageFactory('test')
@@ -41,16 +44,17 @@
 
   >>> from z3c.formext import jsoncompat
   >>> import zope.i18n
-  >>> jsoncompat.translate = lambda s: zope.i18n.translate(s, target_language='es')
-
+  
   >>> zope.i18n.translate(_(u'Hello'), target_language='es')
   u'Hola'
 
 
+  >>> from zope.i18n.tests.test_itranslationdomain import Environment
+  >>> context = Environment(('es',))
   >>> from pprint import pprint as pp
-  >>> pp(jsoncompat.jsonDecode(jsoncompat.jsonEncode(data)))
+  >>> pp(jsoncompat.jsonDecode(jsoncompat.jsonEncode(data, context=context)))
   {'aList': ['Hola', 'Que pasa', 'Como estas'],
    'aNest': [[{'foo': 'Como estas'}, 'Hola'], 'Que pasa'],
    'aTuple': ['Hola', 'Que pasa', 'Como estas']}
 
-  >>> jsoncompat.translate = zope.i18n.translate
\ No newline at end of file
+  >>> jsoncompat.translate = zope.i18n.translate



More information about the Checkins mailing list