# -*- coding: utf-8 -*- import re import openerp from openerp.tools.translate import _ from openerp.tools import config from openerp.addons.web import http from openerp.addons.web.controllers.main import Home from openerp.http import request class Home_Debug(Home): @http.route('/', type='http', auth="none") def index(self, s_action=None, db=None, **kw): # Check arguments if openerp.tools.config.get('show_debug', False): return http.local_redirect('/web?debug=1', query=request.params, keep_hash=True) else: return http.local_redirect('/web', query=request.params, keep_hash=True) class WebClient(http.Controller): _cp_path = "/web/testenv" @http.jsonrequest def testmode(self, req, db=False): if not db and req and req.session: db = req.session._db if db: h = req.httprequest.environ['HTTP_HOST'].split(':')[0] d = h.split('.')[0] r = openerp.tools.config.get('dbfilter_test', 'test.*').replace('%h', h).replace('%d', d) try: pattern_list = eval(r) if not hasattr(pattern_list, '__iter__'): pattern_list = [pattern_list] except: pattern_list = [r] for pattern in pattern_list: if isinstance(pattern, str) and re.match(pattern, db): return True return False # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: