在odoo12社区创建新的小部件



在Odoo12ce的一个自制模块中,有一些计算结果,我想编写自定义小部件,以便在0以下时将此结果显示为红色,在0以上时显示为黑色。

模型中的变量:

result = fields.Float(string="Results", compute="calc_result")

并且在视图中:

<field name="result" widget="result_widget"/>

其中result_widget是前面提到的新小部件,如果你指导我写这个模块,我真的很感激,因为我在互联网上发现的关于它的信息很差。

使用可能的装饰来获得一个非常简单的解决方案怎么样?

<field name="result" decoration-danger="result < 0.0" />

其他一些可能的装饰是:

  • 装修bf
  • 装饰它
  • 装饰信息
  • 装饰静音
  • 装饰初级
  • 装修成功
  • 装饰警告

IIRC将这些更改为引导程序文本装饰-*类。

为了能够创建一个小部件,您需要了解Javascript继承在Odoo中是如何工作的,这在官方文档中有明确的解释。

我将给你一个如何创建新窗口小部件字段的例子:

  1. 创建一个文件my_module/static/src/js/widget/result_field.js到该文件中放置代码:

    
    odoo.define('my_module.result_field', function(require) {
    "use strict";
    var BasicFields= require('web.basic_fields');
    var FieldFloat = BasicFields.NumericField;
    var ResultFieldFloat;
    ResultFieldFloat= FieldFloat.extend({  
    /* NOW You are able to do as you wish*/                          
    _renderEdit: function () {
    // Override this function to modify your field editing
    }, 
    _renderReadonly: function () {
    // Override this function to modify your field on readonly mode
    },
    
    });
    // This is the name of your new widget field extending the Native Odoo NumericField
    Registry.add('my_result_widget', ResultFieldFloat);
    return {
    ResultFieldFloat: ResultFieldFloat,
    };
    });
    
  2. 创建文件my_module/views/my_modul_view.xml

    <odoo>
    <data>
    <record id="my_module_view_form" model="ir.ui.view">
    <field name="model">mymodule.model</field>
    <field name="arch" type="XML">
    <form string="Mymodule Form"> 
    <sheet>
    <field name="result" widget="my_result_widget" />
    </sheet>
    </form>
    </field>
    </record>
    <template id="my_module_fields_tpl" name="my_module_name assets" inherit_id="web.assets_backend">
    <xpath expr="." position="inside">
    <script type="text/javascript" src="/my_module/static/src/js/widget/result_field.js" />
    </xpath>
    </template>
    </data>
    </odoo>
    
  3. 然后在数据的清单中添加新的视图文件。

相关内容

  • 没有找到相关文章

最新更新