From 3b0935325eba8dce51a343bde83cfd2953d10b00 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Mon, 1 Jul 2013 14:26:26 +0200 Subject: [PATCH] fields_view_get apply post processing even for default views bzr revid: al@openerp.com-20130701122626-9g2uo6ox3p74e55q --- openerp/osv/orm.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 6073104ed4e..d851a072a44 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1812,6 +1812,8 @@ class BaseModel(object): # otherwise try to find the lowest priority matching ir.ui.view view_id = View.default_view(cr, uid, self._name, view_type, context=context) + # context for postproscessing might be overriden + ctx = context if view_id: # read the view with inherited views applied root_view = View.read_combined(cr, uid, view_id, fields=['id', 'name', 'field_parent', 'type', 'model', 'arch'], context=context) @@ -1820,13 +1822,9 @@ class BaseModel(object): result['type'] = root_view['type'] result['view_id'] = root_view['id'] result['field_parent'] = root_view['field_parent'] - # Apply post processing, groups and modifiers etc... - ctx = context + # override context fro postprocessing if root_view.get('model') != self._name: ctx = dict(context, base_model_name=root_view.get('model')) - xarch, xfields = View.postprocess_and_fields( cr, uid, self._name, etree.fromstring(result['arch']), result['view_id'], context=ctx) - result['arch'] = xarch - result['fields'] = xfields else: # fallback on default views methods if no ir.ui.view could be found try: @@ -1838,6 +1836,10 @@ class BaseModel(object): except AttributeError: raise except_orm(_('Invalid Architecture!'), _("No default view of type '%s' could be found !") % view_type) + # Apply post processing, groups and modifiers etc... + xarch, xfields = View.postprocess_and_fields( cr, uid, self._name, etree.fromstring(result['arch']), result['view_id'], context=ctx) + result['arch'] = xarch + result['fields'] = xfields # Add related action information if aksed if toolbar: