From 40c80e2ce4b96a5d4c6870d3eff05b443139d6e3 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 13 Aug 2013 16:08:09 +0200 Subject: [PATCH] [ADD] Added repr() and t-debug to QWeb bzr revid: fme@openerp.com-20130813140809-qr12j6cy5ix4glsp --- openerp/tools/qweb.py | 52 ++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/openerp/tools/qweb.py b/openerp/tools/qweb.py index c076b3e94c9..fab0cf14ac0 100644 --- a/openerp/tools/qweb.py +++ b/openerp/tools/qweb.py @@ -11,32 +11,33 @@ import traceback _logger = logging.getLogger(__name__) +BUILTINS = { + 'False': False, + 'None': None, + 'True': True, + 'abs': abs, + 'bool': bool, + 'dict': dict, + 'filter': filter, + 'len': len, + 'list': list, + 'map': map, + 'max': max, + 'min': min, + 'reduce': reduce, + 'repr': repr, + 'round': round, + 'set': set, + 'str': str, + 'tuple': tuple, +} + class QWebContext(dict): def __init__(self, data, undefined_handler=None): self.undefined_handler = undefined_handler - d = { - 'True': True, - 'False': False, - 'None': None, - 'str': str, - 'globals': locals, - 'locals': locals, - 'bool': bool, - 'dict': dict, - 'list': list, - 'tuple': tuple, - 'map': map, - 'abs': abs, - 'min': min, - 'max': max, - 'reduce': reduce, - 'filter': filter, - 'round': round, - 'len': len, - 'set': set - } - d.update(data) - dict.__init__(self, d) + dic = BUILTINS.copy() + dic.update(data) + dict.__init__(self, dic) self['defined'] = lambda key: key in self def __getitem__(self, key): @@ -339,4 +340,9 @@ class QWebXml(object): return self.render_element(e, t_att, g_att, v, str(inner)) + def render_tag_debug(self, e, t_att, g_att, v): + debugger = t_att.get('debug', 'pdb') + __import__(debugger).set_trace() # pdb, ipdb, pudb, ... + return self.render_element(e, t_att, g_att, v) + # leave this, al.