2015-12-03 5 views
2

В Odoo 8 я использую настраиваемый модуль, который проверяет, что НДС уникален, используя @ api.constrains ('vat', 'parent_id', 'company_id') и предупреждая, когда ват уже существует.Как поднять предупреждающее сообщение на сайте Odoo

Но на странице оформления заказа на покупку, я делаю заказчики, вводя НДС. Бывает, что, когда вводится повторный НДС, я получаю ошибку внутреннего внутреннего сервера 500, так как веб-сайт не предоставляет способ поднять предупреждение.

Как я должен реализовать предупреждение, всплывающее окно или подобное, чтобы избежать ошибок внутреннего сервера?

ответ

3

Вы можете использовать вызов JSON-RPC для бэкэнд при нажатии кнопки отправки, перед отправкой данных формы.

  1. Создать новый контроллер в питоне для проверки достоверности НДС:

    @http.route(['/vat/validator'], type='json', auth="public", website=True) 
    def vat_validator(self, vat): 
        # Your validation code here 
        return 'OK' 
    
  2. Создать метод JS для вызова валидатора:

    (function() { 
        'use strict'; 
    
        function vat_validator(vat) { 
         openerp.jsonRpc('/vat/validator', 'call', {'vat': vat}).then(function(result) { 
          // Your JS code here for checking backend validator result 
         })   
        } 
    })(); 
    
  3. указан метод JS валидации формы, как это : http://www.w3schools.com/js/js_validation.asp

+0

Спасибо Антонио. Поэтому я должен написать другой валидатор для веб-сайта, вместо того, чтобы расширять или изменять текущий модуль проверки, или просто украсить мою текущую проверку http.route? –

+0

Вы можете использовать текущий модуль валидатора валов, например, вызвать метод res.partner.simple_vat_check или написать еще один валидатор для вашего нового контроллера. –

Смежные вопросы