[MERGE]:quick help on menuitem when a user clicks on for the first time

bzr revid: nch@tinyerp.com-20100709051755-jbvooy4m5u21v3an
This commit is contained in:
nch@tinyerp.com
2010-07-09 10:47:55 +05:30
+23 -6
View File
@@ -222,17 +222,25 @@ class act_window(osv.osv):
res[act.id] = str(form_arch)
return res
def _get_help_status(self, cr, uid, ids, name, arg, context={}):
cr.execute(""" SELECT action.id,
CASE WHEN r.uid IS NULL THEN True ELSE False END
AS help_status FROM ir_act_window action
LEFT JOIN ir_act_window_user_rel r ON
(action.id = r.act_id AND (r.uid IS NULL or r.uid= %s)) WHERE action.id = ANY(%s)""",(uid,ids,))
return dict(cr.fetchall())
_columns = {
'name': fields.char('Action Name', size=64, translate=True),
'type': fields.char('Action Type', size=32, required=True),
'view_id': fields.many2one('ir.ui.view', 'View Ref.', ondelete='cascade'),
'domain': fields.char('Domain Value', size=250,
'domain': fields.char('Domain Value', size=250,
help="Optional domain filtering of the destination data, as a Python expression"),
'context': fields.char('Context Value', size=250, required=True,
'context': fields.char('Context Value', size=250, required=True,
help="Context dictionary as Python expression, empty by default (Default: {})"),
'res_model': fields.char('Object', size=64, required=True,
'res_model': fields.char('Object', size=64, required=True,
help="Model name of the object to open in the view window"),
'src_model': fields.char('Source Object', size=64,
'src_model': fields.char('Source Object', size=64,
help="Optional model name of the objects on which this action should be visible"),
'target': fields.selection([('current','Current Window'),('new','New Window')], 'Target Window'),
'view_type': fields.selection((('tree','Tree'),('form','Form')), string='View Type', required=True,
@@ -253,8 +261,11 @@ class act_window(osv.osv):
'default_user_ids': fields.many2many('res.users', 'ir_act_window_user_rel', 'act_id', 'uid', 'Users'),
'search_view' : fields.function(_search_view, type='text', method=True, string='Search View'),
'menus': fields.char('Menus', size=4096),
'help': fields.text('Action description',
help='Optional help text for the users with a description of the target view, such as its usage and purpose.')
'help': fields.text('Action description',
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'),
'display_help':fields.function(_get_help_status, type='boolean', method=True, string='Display Help',
help='It gives the status if the help message has to be displayed or not when a user performs an action')
}
_defaults = {
'type': lambda *a: 'ir.actions.act_window',
@@ -266,6 +277,12 @@ class act_window(osv.osv):
'auto_refresh': lambda *a: 0,
'auto_search':lambda *a: True
}
def _auto_init(self, cr, context={}):
super(act_window, self)._auto_init(cr, context)
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'act_window_action_uid_index\'')
if not cr.fetchone():
cr.execute('CREATE INDEX act_window_action_uid_index ON ir_act_window_user_rel (act_id, uid)')
cr.commit()
act_window()
class act_window_view(osv.osv):