[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