CLIENT,BASE: allow to specify many view_id in act_window

bzr revid: ced-d1279c56b1a13e42d35ff9561af57c455c0ddda0
This commit is contained in:
ced 2007-05-15 13:27:39 +00:00
parent 05f754e228
commit 6447853d7a
2 changed files with 36 additions and 3 deletions

View File

@ -208,11 +208,23 @@
<form string="Open a Window">
<field name="name" colspan="4" select="1"/>
<field name="type" readonly="1"/>
<field name="view_id"/>
<field name="res_model" select="1"/>
<field name="usage"/>
<field name="view_type"/>
<field name="view_mode"/>
<field name="view_id"/>
<field name="view_ids" colspan="4">
<form string="Views">
<field name="sequence" colspan="4"/>
<field name="view_mode"/>
<field name="view_id" domain="[('type', '=', view_mode)]"/>
</form>
<tree string="Views">
<field name="sequence"/>
<field name="view_mode"/>
<field name="view_id"/>
</tree>
</field>
<field name="domain" colspan="4"/>
</form>
</field>

View File

@ -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'