[Erp5-report] r17543 - in /erp5/trunk/products/ERP5Form: ./ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Nov 12 19:00:50 CET 2007
Author: jerome
Date: Mon Nov 12 19:00:50 2007
New Revision: 17543
URL: http://svn.erp5.org?rev=17543&view=rev
Log:
add a dict like interface for selection tool, so that we can use this kind of
TALES expressions:
context/portal_selections/test_selection/not_found | string:default
Modified:
erp5/trunk/products/ERP5Form/SelectionTool.py
erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
Modified: erp5/trunk/products/ERP5Form/SelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/SelectionTool.py?rev=17543&r1=17542&r2=17543&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/SelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/SelectionTool.py Mon Nov 12 19:00:50 2007
@@ -190,6 +190,9 @@
selection = self._getSelectionFromContainer(selection_name)
if selection is not None:
return selection.__of__(self)
+
+ def __getitem__(self, key):
+ return self.getSelectionParamsFor(key)
security.declareProtected(ERP5Permissions.View, 'setSelectionFor')
def setSelectionFor(self, selection_name, selection_object, REQUEST=None):
Modified: erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testSelectionTool.py?rev=17543&r1=17542&r2=17543&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testSelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/tests/testSelectionTool.py Mon Nov 12 19:00:50 2007
@@ -83,6 +83,18 @@
if not run: return
self.assertEquals({'key':'value'},
self.portal_selections.getSelectionParamsFor('test_selection'))
+
+ def testGetSelectionParamsDictInterface(self):
+ self.assertEquals('value',
+ self.portal_selections['test_selection']['key'])
+ # the main use case is to have a dict interface in TALES expressions:
+ from Products.PageTemplates.Expressions import getEngine
+ evaluate_tales = getEngine().getContext(dict(context=self.portal)).evaluate
+ self.assertEquals('value',
+ evaluate_tales('context/portal_selections/test_selection/key'))
+ self.assertEquals('default', evaluate_tales(
+ 'context/portal_selections/test_selection/not_found | string:default'))
+
def testCallSelectionFor(self, quiet=quiet, run=run_all_test):
if not run: return
More information about the Erp5-report
mailing list