Я хочу создать модуль, который проверяет данные клиента, и если некоторые соответствующие данные отсутствуют, я хочу, чтобы Odoo открывал всплывающее окно и избегал некоторых изменений. При работе с python я знаю, что могу использовать следующий пример кода:
from odoo import exception
raise exception.ValidationError('Some error message')
Если код каким-то образом достигает «поднять», все останавливается и изменения не происходят. В POS Odoo я попытался сделать что-то подобное с javascript: я попытался вызвать всплывающее окно и остановить изменение клиента, когда пользователь пытается установить заказ нового клиента с отсутствующими данными с помощью следующего кода:
var screens = require('point_of_sale.screens');
var models = require('point_of_sale.models');
models.load_fields('res.partner', [
'some_relevant_data',
]);
screens.ClientListScreenWidget.include({
save_changes: function () {
var self = this;
if (this.has_client_changed()) {
if (this.new_client) {
if (this.new_client.some_relevant_data === false) {
self.pos.gui.show_popup('alert',{
title: "MISSING RELEVANT DATA!",
body: "You have to fill the relevant data first!"
});
}
}
}
this._super()
}
})
Я знаю, что всплывающее окно вызывается, потому что оно создает шум ошибки, но сообщение не отображается в окне, и Odoo все равно позволяет изменить клиента, поэтому как должен выглядеть мой код для достижения это?