Chia sẻ kiến thức

[Odoo] Widget là gì? Hướng dẫn tạo Custom Widget trong Odoo

0

Một thành phần quan trọng không thể thiếu khi bạn lập trình bằng CMS Odoo. Đó là tiện ích. Hôm nay vinasupport.com sẽ giới thiệu và hướng dẫn các bạn tạo widget đơn giản trong Odoo.

Tiện ích Odoo là gì?

Widget là các mã được tạo sẵn và được gọi dễ dàng ở bất kỳ đâu trên giao diện dạng xem của Odoo, vì vậy chúng tôi không phải mã lại nhiều.

Danh sách Widget Odoo

Phần đế của Odoo hỗ trợ rất nhiều widget cho bạn lựa chọn. Ví dụ:

  • phù hiệu
  • số ngày còn lại
  • color_picker
  • char_emojis / text_emojis
  • dự báo_widget
  • nhieu2one_avatar_employee
  • sự ưu tiên
  • sản phẩm_giảm giá
  • danh sách_hoạt động
  • kanban_activity
  • account_reequence_widget

Hướng dẫn tạo widget tùy chỉnh

Đây là một ví dụ tôi đã viết để tạo một widget đơn giản, bên cạnh widget trường float của odoo. Mặc định là trong trường hợp dữ liệu float có giá trị bằng 0 thì sau khi sử dụng widget sẽ hiển thị là trống (empty).

Bước 1: Tạo một file js trong thư mục my_addon/static/src/js/hide_zero_float.js có nội dung như sau:

/** @odoo-module **/
"use strict";

var basicFields = require('web.basic_fields');
var fieldRegistry = require('web.field_registry');

var FloatHideZero = basicFields.FieldFloat.extend({

    _renderReadonly: function() {
        this._super.apply(this, arguments);
        if (this.value === 0) {
            this.$el.text("");
        }
    },
});

fieldRegistry.add('float_hide_zero', FloatHideZero);

Bước 2: Thêm File vào __manifest__.py của mô-đun.

'assets': {
    'web.assets_backend': [
        'my_addon/static/src/js/float_hide_zero.js',
    ],
},

Bước 3: Khi gọi trường float trong chế độ xem, chúng tôi thêm thuộc tính widget=’float_hide_zero’

<field name="total" widget="float_hide_zero" />

Nguồn: vinasupport.com

Leave a comment