Raise Warning Direct Link ke Menu Konfigurasi

Ketika klik button biasanya ada action tertentu seperti membuat record baru yang membutuhkan value dari suatu fields di menu lain. Jika fields tersebut belum diisi maka transaksi tidak bisa lanjut, dan untuk melakukan itu biasanya kita akan mencegat transaksi menggunakan sintak raise dan library exceptions sambil memberikan informasi kepada user konfigurasi apa yang kurang atau belum diisi. Lib exceptions yang sering dipakai biasanya Warning, UserError dan ValidationError. Tapi seringkali user tidak faham konfigurasi atau menu apa yang dimaksud.

Untuk mengatasi hal tersebut, bagi anda yang belum tahu sebenarnya odoo sudah menyediakan tipe lainnya untuk library exceptions yaitu RedirectWarning. Dengan menggunakan lib tersebut, selain memberikan informasi konfigurasi yang harus diisi kita juga bisa memberikan shortcut untuk menuju ke menu yang dimaksud. Caranya seperti berikut ini.

Sintak:

# -*- coding: utf-8 -*-

from odoo import models, fields, api, _
from odoo.exceptions import ValidationError, RedirectWarning


class AccountInvoice(models.Model):
    _inherit = 'account.move'

    def action_post(self):
        for move in self :
            if move.partner_id and not move.partner_id.vat :
                if move.partner_id.supplier_rank :
                    action = self.env.ref('account.res_partner_action_supplier')
                else :
                    action = self.env.ref('account.res_partner_action_customer')
                msg = _("VAT number for vendor/customer %s is not define, please configure it."
                        %(move.partner_id.name_get()[0][1]))
                raise RedirectWarning(msg, action.id, _("Go to vendor/customer form"))
        return super().action_post()

Sintak di atas akan memunculkan pop up warning ketika klik button post di form invoice jika VAT number vendor/customer belum diisi dan memberikan button direct link ke menu vendor/customer. Penambakannya seperti berikut ini.

dan ketika diklik akan masuk ke menu vendor/customer

spasi cuy
Tested on :

  • Operating system : Windows 10
  • Odoo version : 11

spasi cuy
spasi cuy
spasi cuy

Terimakasih, semoga bermanfaat dan CMIIW…

Tutorial odoo/openerp Indonesia