[IMP] Move some qweb rendering context vars from website#ir.qweb to server#ir.ui.view

bzr revid: fme@openerp.com-20140206161204-vp6kydvdxhg5qykx
This commit is contained in:
Fabien Meghazi 2014-02-06 17:12:04 +01:00
parent 2f682975bc
commit 297781df08
1 changed files with 26 additions and 1 deletions

View File

@ -20,15 +20,19 @@
##############################################################################
import collections
import copy
import fnmatch
import logging
from lxml import etree
from operator import itemgetter
import os
import simplejson
import werkzeug
import HTMLParser
import openerp
from openerp import tools
from openerp.http import request
from openerp.osv import fields, osv, orm
from openerp.tools import graph, SKIPPED_ELEMENT_TYPES
from openerp.tools.safe_eval import safe_eval as eval
@ -40,6 +44,17 @@ _logger = logging.getLogger(__name__)
MOVABLE_BRANDING = ['data-oe-model', 'data-oe-id', 'data-oe-field', 'data-oe-xpath']
def keep_query(*args, **kw):
if not args and not kw:
args = ('*',)
params = kw.copy()
query_params = frozenset(werkzeug.url_decode(request.httprequest.query_string).keys())
for keep_param in args:
for param in fnmatch.filter(query_params, keep_param):
if param not in params and param in request.params:
params[param] = request.params[param]
return werkzeug.urls.url_encode(params)
class view_custom(osv.osv):
_name = 'ir.ui.view.custom'
_order = 'create_date desc' # search(limit=1) should return the last customization
@ -805,10 +820,20 @@ class view(osv.osv):
if not context:
context = {}
if values is None:
values = dict()
qcontext = dict(
keep_query=keep_query,
request=request,
json=simplejson,
quote_plus=werkzeug.url_quote_plus,
)
qcontext.update(values)
def loader(name):
return self.read_template(cr, uid, name, context=context)
return self.pool[engine].render(cr, uid, tname, values, loader=loader, context=context)
return self.pool[engine].render(cr, uid, tname, qcontext, loader=loader, context=context)
#------------------------------------------------------
# Misc