Skip to content
Snippets Groups Projects
Commit eae2321c authored by Olivier Dony's avatar Olivier Dony
Browse files

[FIX] ir.ui.view: properly validate newly created inheriting views

  
  When a new inheriting view is imported during a module
  installation, it is validated thanks to the _constraints
  on the ir.ui.view model. However the validation uses
  a rather convoluted system for validating the whole
  view tree at once (root view + all inherited changes)
  while only taking into account the views that belong
  to modules that are currently loaded.
  
  This complicated system is necessary to be able to
  operate on-the-fly at any point during the registry
  loading/initialization.
  
  Now because _constraints are checked during create()
  this particular validation happens *before* the
  external ID (ir.model.data entry) of that new view
  can be created (it obviously needs to wait until
  the view record is inserted). As a consequence the
  view validation cannot determine the module to
  which that new view belongs, and was erroneously
  ignoring it.
  Changing the view filtering to also include views
  from unknown modules fixes this transient problem,
  and also means that manually created inherited
  views will be validated during module init too.

bzr revid: odo@openerp.com-20130703215704-x732bepiifvf4g3n
parent 55e8f9cb
No related branches found
No related tags found
No related merge requests found
......@@ -179,7 +179,7 @@ class view(osv.osv):
if self.pool._init:
# Module init currently in progress, only consider views from modules whose code was already loaded
query = """SELECT v.id FROM ir_ui_view v LEFT JOIN ir_model_data md ON (md.model = 'ir.ui.view' AND md.res_id = v.id)
WHERE v.inherit_id=%s AND v.model=%s AND md.module in %s
WHERE v.inherit_id=%s AND v.model=%s AND (md.module IS NULL or md.module in %s)
ORDER BY priority"""
query_params = (view_id, model, tuple(self.pool._init_modules))
else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment