[IMP] orm.fields_view_get: allow passing a view_id from a different model for creative inheritance

There are cases where several objects would like to use a single view, but
by default they cannot because a view belongs to only one model.
With this change, it becomes possible to do inheritance "by copy", reusing
a view from another model without having to redefine it, just by specifying
its view_id in the relevant actions. If the original view needs to be modified,
it is also possible to explicitly inherit the parent view from the other
model, and the effect will be what is expected: the child view can be
specified in an action, and will be the result of the inheritance applied
on the parent view; but on the other hande the parent view itself is
unaffected when used in the context of its own model.

bzr revid: odo@openerp.com-20110221172757-qepq5osjqgd9uf8x
This commit is contained in:
Olivier Dony 2011-02-21 18:27:57 +01:00
parent 2621b707e0
commit 95de9e8cb4
1 changed files with 3 additions and 6 deletions

View File

@ -1553,12 +1553,9 @@ class orm_template(object):
view_id = view_ref_res[0]
if view_id:
query = "SELECT arch,name,field_parent,id,type,inherit_id,model FROM ir_ui_view WHERE id=%s"
params = (view_id,)
if model:
query += " AND model=%s"
params += (self._name,)
cr.execute(query, params)
cr.execute("""SELECT arch,name,field_parent,id,type,inherit_id,model
FROM ir_ui_view
WHERE id=%s""", (view_id,))
else:
cr.execute('''SELECT
arch,name,field_parent,id,type,inherit_id,model