Latest Post

Tăng thứ hạng và truy cập tự nhiên với 10 phương pháp SEO hay nhất Kiếm Tiền Online (mmo): Khái Niệm và Các Hình Thức Phổ Biến

Một yếu tố quan trọng mà bạn không thể bỏ qua khi bạn làm việc với hệ thống quản lý nội dung (CMS) Odoo là sử dụng các widget. Trong bài viết này, chúng tôi sẽ giới thiệu và hướng dẫn bạn cách tạo một widget đơn giản trong Odoo.

Odoo Widget là gì?

Widget là những đoạn mã đã được xây dựng trước và có thể dễ dàng sử dụng trên giao diện của Odoo, giúp tiết kiệm thời gian và công sức khi bạn không cần phải viết mã từ đầu.

Danh sách các Odoo Widget

Odoo base hỗ trợ rất nhiều các widget để bạn lựa chọn. Ví dụ:

  • badge
  • remaining_days
  • color_picker
  • char_emojis / text_emojis
  • forecast_widget
  • many2one_avatar_employee
  • priority
  • product_discount
  • list_activity
  • kanban_activity
  • account_resequence_widget

Hướng dẫn tạo một custom widget

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

Bước 1: Tạo 1 file js ở thư mục my_addon/static/src/js/hide_zero_float.js có nội dung 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 ở trong __manifest__.py của module.

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

Bước 3: Khi gọi field float trong views chúng ta thêm thuộc tính widget=’float_hide_zero’

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

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *