openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #00235
[Merge] lp:~kangol/openobject-client-web/trunk-fix-templatelookup into lp:openobject-client-web
Christophe (OpenERP) has proposed merging lp:~kangol/openobject-client-web/trunk-fix-templatelookup into lp:openobject-client-web.
Requested reviews:
OpenERP SA's Web Client R&D (openerp-dev-web)
--
https://code.launchpad.net/~kangol/openobject-client-web/trunk-fix-templatelookup/+merge/39837
Your team OpenERP SA's Web Client R&D is requested to review the proposed merge of lp:~kangol/openobject-client-web/trunk-fix-templatelookup into lp:openobject-client-web.
=== modified file 'openobject/tools/_expose.py'
--- openobject/tools/_expose.py 2010-10-28 14:21:03 +0000
+++ openobject/tools/_expose.py 2010-11-02 10:58:41 +0000
@@ -52,22 +52,26 @@
filters = ["__content"]
imports = ["from openobject.tools import content as __content"]
-class TL(TemplateLookup):
-
- cache = {}
-
- def get_template(self, uri):
- try:
- return self.cache[str(uri)]
- except Exception, e:
- pass
- self.cache[str(uri)] = res = super(TL, self).get_template(uri)
- return res
-
-template_lookup = TL(directories=[paths.root(), paths.addons()],
- default_filters=filters,
- imports=imports,
- preprocessor=templating.edition_preprocessor)
+_template_lookups = {} # XXX use mako.util.LRUCache ?
+
+def get_template_lookup():
+ """Return the Template Lookup for the current database"""
+ db_name = None
+ try:
+ db_name = cherrypy.session['db']
+ except (AttributeError, KeyError):
+ pass
+
+ try:
+ return _template_lookups[db_name]
+ except KeyError:
+ lookup = _template_lookups[db_name] = TemplateLookup(
+ directories=[paths.root(), paths.addons()],
+ default_filters=filters,
+ imports=imports,
+ preprocessor=templating.edition_preprocessor)
+ return lookup
+
def load_template(template):
@@ -75,7 +79,7 @@
return template
if re.match('(.+)\.(html|mako)\s*$', template):
- return template_lookup.get_template(template)
+ return get_template_lookup().get_template(template)
else:
return Template(template, default_filters=filters, imports=imports)
Follow ups