Я работаю в модуле для Odoo 12, в частности в системе POS, основанной на магистрали.
Можно взглянуть на код в [point_of_sale] (https://github.com/OCA/OCB/blob/12.0/addons/point_of_sale/static/src/js/
Существуют другие расширения для этого модуля, и я пытаюсь создать KDS (кухонную систему отображения). У меня есть версия KDS для Odoo 10, но этот модуль не точный, потому что он использует событие 'change' для рендеринга экрана на кухне. Это преобразуется в слишком много рендеринга. Я пытаюсь рендерить экран только после нажатия кнопки в главном Pos (в этом клике порядок сохраняется на сервере). ). Это делает изменение атрибута, и я связываю это и получаю его правильно, но триггер, который я запускаю позже, не сработал, и мое представление никогда не получит это. Оно запускается только когда я использую событие 'change', а не изменение атрибута event -> 'change: order_saved'
Я не знаю, почему событие 'change' прибывает в представление, но 'change: my_atribute' не приходит. Возможно для вложенной строки Учение о POS ??
Спасибо за avance, я немного расстроен и надеюсь найти решение.
var PosModelSuper = models.PosModel;
models.PosModel = models.PosModel.extend({
initialize: function(){
var self = this;
PosModelSuper.prototype.initialize.apply(this, arguments);
this.get('orders').bind('change:order_saved', function(){
console.log('received')--> console prints 'received'
self.trigger('update:sended_to_kitchen')--> it never arrives to the view
},this)
Но если я поменяю на:
var PosModelSuper = models.PosModel;
models.PosModel = models.PosModel.extend({
initialize: function(){
var self = this;
PosModelSuper.prototype.initialize.apply(this, arguments);
this.get('orders').bind('change', function(){
console.log('received')--> console prints 'received'
self.trigger('update:sended_to_kitchen') --> it seems to be executed and received by the view in kitchen
},this)
Кухня получает триггер. Это часть кода на экране кухни:
var KitchenScreenWidget = screens.ScreenWidget.extend({
template : 'KitchenScreenWidget',
show: function () {
var self = this;
this._super();
/*Bind Triggers */
this.pos.bind('update:sended_to_kitchen', function(){
console.log('enter in kitchen')
},this)
}
,