~openerp-dev/openobject-server/trunk-extended-view-inheritance-xmo

« back to all changes in this revision

Viewing changes to openerp/addons/base/ir/ir_ui_view.py

  • Committer: Xavier Morel
  • Date: 2014-05-06 14:41:17 UTC
  • Revision ID: xmo@openerp.com-20140506144117-brna511vbpp8mqbe
[IMP] make mode handling more regular

Before this commit, @mode=primary would be sorta-ignored[0] if the current
view and its parent had the same model: the current view would *still* get
applied (as an extension) when asking OpenERP for its parent. This commit
makes mode=primary views behave regularly, they are *never* applied when
asking for their parent, only when asking for them or their children.

This allows "forking" views, and using extended views in some contexts without
breaking or duplicating the original view

[0] there was actually a problem when asking for the current view directly,
    first its parent would be resolved by applying it, then it would be
    applied to resolve itself, the view would thus get applied twice (oops)

Show diffs side-by-side

added added

removed removed

Lines of Context:
293
293
 
294
294
        user_groups = frozenset(self.pool.get('res.users').browse(cr, 1, uid, context).groups_id)
295
295
 
296
 
        conditions = [['inherit_id', '=', view_id], ['model', '=', model]]
 
296
        conditions = [
 
297
            ['inherit_id', '=', view_id],
 
298
            ['model', '=', model],
 
299
            ['mode', '=', 'extension'],
 
300
        ]
297
301
        if self.pool._init:
298
302
            # Module init currently in progress, only consider views from
299
303
            # modules whose code is already loaded