From 6447853d7aeffefdfa398097b3b92e7400f6b763 Mon Sep 17 00:00:00 2001 From: ced <> Date: Tue, 15 May 2007 13:27:39 +0000 Subject: [PATCH] CLIENT,BASE: allow to specify many view_id in act_window bzr revid: ced-d1279c56b1a13e42d35ff9561af57c455c0ddda0 --- bin/addons/base/ir/ir.xml | 14 +++++++++++++- bin/addons/base/ir/ir_actions.py | 25 +++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 3bb9b4c3b41..a8f051b8a1c 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -208,11 +208,23 @@
- + + + + + + + + + + + + + diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 2e3205d5609..df7edd1858f 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -106,6 +106,13 @@ class act_window(osv.osv): _name = 'ir.actions.act_window' _table = 'ir_act_window' _sequence = 'ir_actions_id_seq' + + def _views_get_fnc(self, cr, uid, ids, name, arg, context={}): + res={} + for act in self.browse(cr, uid, ids): + res[act.id]=[(view.view_id.id, view.view_mode) for view in act.view_ids] + return res + _columns = { 'name': fields.char('Action Name', size=64, translate=True), 'type': fields.char('Action Type', size=32, required=True), @@ -114,9 +121,10 @@ class act_window(osv.osv): 'context': fields.char('Context Value', size=250), 'res_model': fields.char('Model', size=64), 'view_type': fields.selection((('tree','Tree'),('form','Form')),string='Type of view'), -# 'view_mode': fields.selection((('form,list','Form - List'),('list,form','List - Form')), string='Mode of view'), 'view_mode': fields.char('Mode of view', size=250), - 'usage': fields.char('Action Usage', size=32) + 'usage': fields.char('Action Usage', size=32), + 'view_ids': fields.one2many('ir.actions.act_window.view', 'act_window_id', 'Views'), + 'views': fields.function(_views_get_fnc, method=True, type='binary', string='Views'), } _defaults = { 'type': lambda *a: 'ir.actions.act_window', @@ -126,6 +134,19 @@ class act_window(osv.osv): } act_window() +class act_window_view(osv.osv): + _name = 'ir.actions.act_window.view' + _table = 'ir_act_window_view' + _rec_name = 'view_id' + _columns = { + 'sequence': fields.integer('Sequence'), + 'view_id': fields.many2one('ir.ui.view', 'View'), + 'view_mode': fields.selection((('tree', 'Tree'),('form', 'Form'),('graph', 'Graph')), string='Type of view', required=True), + 'act_window_id': fields.many2one('ir.actions.act_window', 'Action'), + } + _order = 'sequence' +act_window_view() + class act_wizard(osv.osv): _name = 'ir.actions.wizard' _table = 'ir_act_wizard'