[FIX] base: don't unlink base.open_menu but reset it
The ir.actions.todo record base.open_menu is used to redirect the user
to a menu after installing a module.
To do so, a new module override the record changing its action (toward a
menu) and setting its state to "open".
But with f7fe753
when one such changed action is removed after
uninstalling a module (or removing the action by any other way) the
base.open_menu would also be removed. Thus thereafter the open_menu will
not work anymore (since type "automatic" is lost).
With this commit, when whenever base.open_menu is removed, instead its
action will be replaced by base.action_client_base_menu which is the
original action.
closes #11224
related to: #11216, opw-660269
This commit is contained in:
parent
aca8a8bebc
commit
4309bd311f
|
@ -1088,6 +1088,19 @@ Launch Manually Once: after having been launched manually, it sets automatically
|
|||
}
|
||||
_order="sequence,id"
|
||||
|
||||
@openerp.api.multi
|
||||
def unlink(self):
|
||||
if self:
|
||||
try:
|
||||
todo_open_menu = self.env.ref('base.open_menu')
|
||||
# don't remove base.open_menu todo but set its original action
|
||||
if todo_open_menu in self:
|
||||
todo_open_menu.action_id = self.env.ref('base.action_client_base_menu').id
|
||||
self -= todo_open_menu
|
||||
except ValueError:
|
||||
pass
|
||||
return super(ir_actions_todo, self).unlink()
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
return [(rec.id, rec.action_id.name) for rec in self.browse(cr, uid, ids, context=context)]
|
||||
|
||||
|
|
Loading…
Reference in New Issue