首页 > 其他分享 >odoo15自定义小部件widget

odoo15自定义小部件widget

时间:2023-08-15 17:34:09浏览次数:40  
标签:widget AbstractField 自定义 fields odoo15 js basic my

添加自定义widget的步骤比较简单,以下三步就可以了:

1、JS实现widget的功能

/*
这个文件(文件名为my_basic_fields.js)要在__manifest__.py中设置,如下:
'assets': {
    'web.assets_backend': [
        'testaddons/static/src/js/my_basic_fields.js',
    ],
},
 */
odoo.define('testaddons.my_basic_fields_module', function(require){
    var AbstractField = require('web.AbstractField');
    var fieldRegistry = require('web.field_registry');

    var ColorFields = AbstractField.extend({
        className: 'o_field_orderOperate',
        tagName: 'span',
        isQuickEditable: true,
        events: _.extend({}, AbstractField.prototype.events, {
            'click': '_onClick',
        }),
        
        //处理单击事件
        _onClick: function (event) {
            event.preventDefault()
            let self = this
        },
        //设置字段值
        _renderReadonly: function () {
            this.$el.text(this._formatValue(this.value));
        },
        //页面渲染,这里修改颜色和字体
        _render: function () {
            this.$el.data('value', this.value).css('color', '#CC6633').
                css('font-size', '20px');

            return this._super.apply(this, arguments);
        }
    })

    //注册widget,注册后的widget将可以在视图xml中被字段引用,引用格式为:widget="my_basic_fields_widget"
    fieldRegistry.add('my_basic_fields_widget', ColorFields);

})

2、在视图中引用,view视图的设置如下:

<field name="name" widget="my_basic_fields_widget"/>

3、设置__manifest__.py,这里是ODOO15的方法

    'assets': {
        'web.assets_backend': [
            'testaddons/static/src/js/my_basic_fields.js',
        ],
    },

实现效果如下:

标签:widget,AbstractField,自定义,fields,odoo15,js,basic,my
From: https://www.cnblogs.com/3cock/p/17631886.html

相关文章

  • python重采样tif影像,自定义空间分辨率
    importwarningsimportnetCDF4warnings.filterwarnings('ignore')warnings.filterwarnings('ignore',category=DeprecationWarning)importnetCDF4importpandasaspdimportnumpyasnpfromosgeoimportgdalimportmatplotlib.pyplotasp......
  • 自定义实现可跨线程(线程池)的ThreadLocal
    packageTest0814;importcom.google.common.collect.Maps;importjava.util.HashMap;importjava.util.Map;importjava.util.WeakHashMap;publicclassMyThreadLocal<T>extendsInheritableThreadLocal<T>{//方法1publicstaticfinalInherita......
  • elementUi table表格 标头自定义,给表头加点击事件
    <el-table-columnlabel="">  <el-table-columnprop="column":render-header="renderHeader"width="160">    <templateslot-scope="scope">      <span>{{scope.row.column[......
  • 使用vue自定义指令实现按钮权限管理
    原文链接:https://www.jianshu.com/p/f7d6b9420cee官网链接:https://v2.cn.vuejs.org/v2/guide/custom-directive.html注册全局指令Vue提供了一个directive方法给我们注册自定义指令,在main.js中注册一个全局的自定义指令。directive方法接收两个参数:指令名称、包含指令钩子函......
  • 优维低代码实践:自定义模板
    优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。优维低代码实践连载第14期《自定义模板》▽一、概述构件是我们的页面最基......
  • 不背单词自定义词书制作与导入
    0前言最近不得不开始准备GRE了,从张巍公众号白嫖了好多单词书,但是我从高中开始就不习惯使用纸质材料背单词了,都是使用不背单词这个app了。没错,我的高中是允许带手机的哈哈哈不背单词的自定义词书功能还不完善。所以我花了一上午研究怎么把PDF导入进去思路:通过将pdf文件转成一......
  • 自定义springboot-starter包
    https://www.cnblogs.com/yuansc/p/9088212.html 前言我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。例如我想......
  • ApiPost自定义环境变量 缓存token的操作步骤
    使用场景:测试的时候获取token,然后其他请求的时候自动带token。获取Token后,执行后执行脚本,apt.variables.set("token",response.json.access_token);请求回来的参数在json中,根据需要修改这时候token就存储到环境变量中了2.使用的时候如下:......
  • Qt 之 QWidget QLabel
    @TOC前言一、Qt工程介绍QtCreator以工程项目的方式对源码进行管理一个QtCreator工程包含不同类型的文件。a-.pro.user用户配置描述文件-.h头文件.cpp源文件.ui界面描述文件资源文件(图片,音频,等)pro项目描述文件的基本组成#一注释起始符:以“#”开始,到这一行结束。快捷键:C......
  • feign中传递自定义MultipartFile
    前言在使用SpringCloud的feign组件过程中,我们想传递一个文件到服务提供者.但是我们只有byte[],这是就需要手动创建MultipartFile实现接口MultipartFileimportjava.io.ByteArrayInputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOExc......