Как поднять всплывающие окна и методы остановки в POS Odoo - PullRequest
0 голосов
/ 10 июля 2020

Я хочу создать модуль, который проверяет данные клиента, и если некоторые соответствующие данные отсутствуют, я хочу, чтобы 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 все равно позволяет изменить клиента, поэтому как должен выглядеть мой код для достижения это?

...