[REF] stock: convert stock_orderpoint_list to OWL
X-original-commit: 262366c693ffdb5b9d4bc3c7bef293f52bd6a344 Part-of: odoo/odoo#101305
This commit is contained in:
@@ -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;
|
||||
|
||||
});
|
||||
@@ -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;
|
||||
|
||||
});
|
||||
@@ -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;
|
||||
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<templates id="template" xml:space="preserve">
|
||||
|
||||
<t t-name="stock.StockOrderpoint.Buttons" t-inherit="web.ListView.Buttons" owl="1">
|
||||
<xpath expr="//button[hasclass('o_list_button_add')]" position="attributes">
|
||||
<attribute name="class">btn btn-secondary o_list_button_add</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//button[hasclass('o_list_button_add')]" position="before">
|
||||
<button t-if="nbSelected" type="button" t-on-click="onClickOrder"
|
||||
class="o_button_order btn btn-primary me-1">
|
||||
Order
|
||||
</button>
|
||||
<button t-if="nbSelected" type="button" t-on-click="onClickSnooze"
|
||||
class="o_button_snooze btn btn-primary me-1">
|
||||
Snooze
|
||||
</button>
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
@@ -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',
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<templates id="template" xml:space="preserve">
|
||||
<t t-name="StockOrderpoint.Buttons">
|
||||
<span>
|
||||
<button type="button" class="btn d-none btn-primary o_button_order">
|
||||
Order
|
||||
</button>
|
||||
<button type="button" class="btn d-none btn-primary o_button_snooze">
|
||||
Snooze
|
||||
</button>
|
||||
</span>
|
||||
</t>
|
||||
</templates>
|
||||
@@ -38,7 +38,7 @@
|
||||
<field name="name">stock.warehouse.orderpoint.tree.editable</field>
|
||||
<field name="model">stock.warehouse.orderpoint</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Reordering Rules" editable="bottom" js_class="stock_orderpoint_list" sample="1" multi_edit="1">
|
||||
<tree string="Reordering Rules" editable="bottom" js_class="stock_orderpoint_list" sample="1" multi_edit="1" export_xlsx="0">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="product_category_id" invisible="1"/>
|
||||
|
||||
Reference in New Issue
Block a user