diff --git a/addons/stock/static/src/js/stock_orderpoint_list_controller.js b/addons/stock/static/src/js/stock_orderpoint_list_controller.js
deleted file mode 100644
index ff38d58a4bb..00000000000
--- a/addons/stock/static/src/js/stock_orderpoint_list_controller.js
+++ /dev/null
@@ -1,73 +0,0 @@
-odoo.define('stock.StockOrderpointListController', function (require) {
-"use strict";
-
-var core = require('web.core');
-var ListController = require('web.ListController');
-
-var qweb = core.qweb;
-
-
-var StockOrderpointListController = ListController.extend({
-
- // -------------------------------------------------------------------------
- // Public
- // -------------------------------------------------------------------------
-
- /**
- * @override
- */
- renderButtons: function () {
- this._super.apply(this, arguments);
- this.$buttons.find('.o_list_export_xlsx').addClass('d-none');
- this.$buttons.find('.o_list_button_add').removeClass('btn-primary').addClass('btn-secondary');
- var $buttons = $(qweb.render('StockOrderpoint.Buttons'));
- var $buttonOrder = $buttons.find('.o_button_order');
- var $buttonSnooze = $buttons.find('.o_button_snooze');
- $buttonOrder.on('click', this._onReplenish.bind(this));
- $buttonSnooze.on('click', this._onSnooze.bind(this));
- $buttons.prependTo(this.$buttons);
- },
-
- // -------------------------------------------------------------------------
- // Handlers
- // -------------------------------------------------------------------------
-
- _onButtonClicked: function (ev) {
- if (ev.data.attrs.class && ev.data.attrs.class.split(' ').includes('o_replenish_buttons')) {
- ev.stopPropagation();
- var self = this;
- this._callButtonAction(ev.data.attrs, ev.data.record).then(function () {
- self.reload();
- });
- } else {
- this._super.apply(this, arguments);
- }
- },
-
- _onReplenish: function () {
- var records = this.getSelectedRecords();
- this.model.replenish(records);
- },
-
- _onSelectionChanged: function (ev) {
- this._super(ev);
- var $buttonOrder = this.$el.find('.o_button_order');
- var $buttonSnooze = this.$el.find('.o_button_snooze');
- if (this.getSelectedIds().length === 0){
- $buttonOrder.addClass('d-none');
- $buttonSnooze.addClass('d-none');
- } else {
- $buttonOrder.removeClass('d-none');
- $buttonSnooze.removeClass('d-none');
- }
- },
-
- _onSnooze: function () {
- var records = this.getSelectedRecords();
- this.model.snooze(records);
- },
-});
-
-return StockOrderpointListController;
-
-});
diff --git a/addons/stock/static/src/js/stock_orderpoint_list_model.js b/addons/stock/static/src/js/stock_orderpoint_list_model.js
deleted file mode 100644
index dc65dde3f1d..00000000000
--- a/addons/stock/static/src/js/stock_orderpoint_list_model.js
+++ /dev/null
@@ -1,43 +0,0 @@
-odoo.define('stock.StockOrderpointListModel', function (require) {
-"use strict";
-
-var ListModel = require('web.ListModel');
-
-
-var StockOrderpointListModel = ListModel.extend({
-
- // -------------------------------------------------------------------------
- // Public
- // -------------------------------------------------------------------------
- /**
- */
- replenish: function (records) {
- var self = this;
- var model = records[0].model;
- var recordResIds = _.pluck(records, 'res_id');
- var context = records[0].getContext();
- return this._rpc({
- model: model,
- method: 'action_replenish',
- args: [recordResIds],
- context: context,
- }).then(function () {
- return self.do_action('stock.action_replenishment');
- });
- },
-
- snooze: function (records) {
- var recordResIds = _.pluck(records, 'res_id');
- var self = this;
- return this.do_action('stock.action_orderpoint_snooze', {
- additional_context: {
- default_orderpoint_ids: recordResIds
- },
- on_close: () => self.do_action('stock.action_replenishment')
- });
- },
-});
-
-return StockOrderpointListModel;
-
-});
diff --git a/addons/stock/static/src/js/stock_orderpoint_list_view.js b/addons/stock/static/src/js/stock_orderpoint_list_view.js
deleted file mode 100644
index d893ba9e5da..00000000000
--- a/addons/stock/static/src/js/stock_orderpoint_list_view.js
+++ /dev/null
@@ -1,21 +0,0 @@
-odoo.define('stock.StockOrderpointListView', function (require) {
-"use strict";
-
-var ListView = require('web.ListView');
-var StockOrderpointListController = require('stock.StockOrderpointListController');
-var StockOrderpointListModel = require('stock.StockOrderpointListModel');
-var viewRegistry = require('web.view_registry');
-
-
-var StockOrderpointListView = ListView.extend({
- config: _.extend({}, ListView.prototype.config, {
- Controller: StockOrderpointListController,
- Model: StockOrderpointListModel,
- }),
-});
-
-viewRegistry.add('stock_orderpoint_list', StockOrderpointListView);
-
-return StockOrderpointListView;
-
-});
diff --git a/addons/stock/static/src/views/stock_orderpoint_list_buttons.xml b/addons/stock/static/src/views/stock_orderpoint_list_buttons.xml
new file mode 100644
index 00000000000..1d314a5f3f8
--- /dev/null
+++ b/addons/stock/static/src/views/stock_orderpoint_list_buttons.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ btn btn-secondary o_list_button_add
+
+
+
+
+
+
+
+
diff --git a/addons/stock/static/src/views/stock_orderpoint_list_controller.js b/addons/stock/static/src/views/stock_orderpoint_list_controller.js
new file mode 100644
index 00000000000..f871f498c49
--- /dev/null
+++ b/addons/stock/static/src/views/stock_orderpoint_list_controller.js
@@ -0,0 +1,30 @@
+/** @odoo-module */
+
+import { ListController } from '@web/views/list/list_controller';
+
+export class StockOrderpointListController extends ListController {
+ async onClickOrder() {
+ const resIds = await this.getSelectedResIds();
+ const action = await this.model.orm.call(this.props.resModel, 'action_replenish', [resIds], {
+ context: this.props.context,
+ });
+ if (action) {
+ await this.actionService.doAction(action);
+ }
+ return this.actionService.doAction('stock.action_replenishment', {
+ stackPosition: 'replaceCurrentAction',
+ });
+ }
+
+ async onClickSnooze() {
+ const resIds = await this.getSelectedResIds();
+ this.actionService.doAction('stock.action_orderpoint_snooze', {
+ additionalContext: { default_orderpoint_ids: resIds },
+ onClose: () => {
+ this.actionService.doAction('stock.action_replenishment', {
+ stackPosition: 'replaceCurrentAction',
+ });
+ }
+ });
+ }
+}
diff --git a/addons/stock/static/src/views/stock_orderpoint_list_view.js b/addons/stock/static/src/views/stock_orderpoint_list_view.js
new file mode 100644
index 00000000000..bb5c1f59e51
--- /dev/null
+++ b/addons/stock/static/src/views/stock_orderpoint_list_view.js
@@ -0,0 +1,13 @@
+/** @odoo-module */
+
+import { listView } from '@web/views/list/list_view';
+import { registry } from "@web/core/registry";
+import { StockOrderpointListController as Controller } from './stock_orderpoint_list_controller';
+
+export const StockOrderpointListView = {
+ ...listView,
+ Controller,
+ buttonTemplate: 'stock.StockOrderpoint.Buttons',
+};
+
+registry.category("views").add("stock_orderpoint_list", StockOrderpointListView);
diff --git a/addons/stock/static/src/xml/stock_orderpoint.xml b/addons/stock/static/src/xml/stock_orderpoint.xml
deleted file mode 100644
index b73225e7feb..00000000000
--- a/addons/stock/static/src/xml/stock_orderpoint.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/addons/stock/views/stock_orderpoint_views.xml b/addons/stock/views/stock_orderpoint_views.xml
index b1f1e81a186..1477f1cff8e 100644
--- a/addons/stock/views/stock_orderpoint_views.xml
+++ b/addons/stock/views/stock_orderpoint_views.xml
@@ -38,7 +38,7 @@
stock.warehouse.orderpoint.tree.editable
stock.warehouse.orderpoint
-
+