diff --git a/addons/crm_partner_assign/static/src/js/next.js b/addons/crm_partner_assign/static/src/js/next.js index 73ef09edb2e..b3a4fff2732 100644 --- a/addons/crm_partner_assign/static/src/js/next.js +++ b/addons/crm_partner_assign/static/src/js/next.js @@ -1,18 +1,19 @@ openerp.crm_partner_assign = function (instance) { instance.crm_partner_assign = instance.crm_partner_assign || {}; instance.crm_partner_assign.next_or_list = function(parent) { - if (parent.inner_widget.active_view === "form"){ - var form = parent.inner_widget.views.form.controller; - form.dataset.remove_ids([form.dataset.ids[form.dataset.index]]); - form.reload(); - if (!form.dataset.ids.length){ - parent.inner_widget.switch_mode('list'); - } - } - else{ - parent.inner_widget.views[parent.inner_widget.active_view].controller.reload(); - } - parent.do_action({ type: 'ir.actions.act_window_close' }); + var view = parent.inner_widget.active_view; + var controller = parent.inner_widget.views[view].controller; + if (view === "form"){ + if (controller.dataset.size()) { + controller.execute_pager_action('next'); + } else { + controller.do_action('history_back'); + } + } + controller.do_action({ type: 'ir.actions.act_window_close' }); + if (view === "list"){ + controller.records.remove(controller.records.get(parent.dialog_widget.action.context.active_id)); + } }; instance.web.client_actions.add("next_or_list", "instance.crm_partner_assign.next_or_list"); } \ No newline at end of file