odoo17 tree视图添加按钮

news2024/9/20 9:04:17

需求描述

点击下图中tree视图上的同步退货单按钮,弹出相应的form视图进行退货单同步,然后点击同步按钮调用后端python代码处理。

在这里插入图片描述

实现步骤

主要文件目录结构

在这里插入图片描述

js文件的创建
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { listView } from "@web/views/list/list_view";
import { ListController } from "@web/views/list/list_controller";
import { useService } from "@web/core/utils/hooks";
export class OwlDemoTest extends ListController {

    setup() {
        super.setup();
        this.orm = useService("orm");
    }

    message_button() {
        this.orm.call('temporary.receipt', 'update_message', []).then(function(result) {
                self.model.root.notifyChanges();
            }).catch(function(error) {
                console.error("Error calling update_message:", error);
            });
}

registry.category("views").add("owl_demo_test", {
    ...listView,
    Controller: OwlDemoTest,
    buttonTemplate: "OwlDemoButtons",
});
}

define方法的第一个参数为名称,自行定义,require方法表示所用到的依赖,然后对按钮的点击事件绑定相应的方法,这个方法返回一个动作视图(就是所定义的瞬态模型的向导)

创建按钮模板

也就是定义在/static/xml 文件夹下面的xml文件,用来定义所加的按钮

<?xml version="1.0" encoding="utf-8"?>
<templates id="template" xml:space="preserve">

<t t-name="OwlDemoButtons" t-inherit="web.ListView.Buttons" t-inherit-mode="primary" owl="1">
    <xpath expr="(//div/*)[last()]" position="after">
        <button class="btn btn-primary" type="button" t-on-click="message_button">
            测试按钮
        </button>
    </xpath>
</t>

</templates>
xml、js文件引入到__manifest__.py
    "assets": {
        "web.assets_backend":[
            "erp_app/static/src/js/test.js",
            "erp_app/static/src/xml/test.xml",
        ]
    }
对应模型添加方法
    @api.model
    def update_message(self):
        print('执行的代码')
tree视图添加 js_class
<tree js_class="owl_demo_test">
	...
</tree>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1860359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

芒果YOLOv10改进66:特征融合Neck篇之原创 HFAMPAN 结构:信息高阶特征对齐融合和注入,全局融合多级特征,将全局信息注入更高级别

💡本篇内容:YOLOv10 改进原创 HFAMPAN 结构,信息高阶特征对齐融合和注入,全局融合多级特征,将全局信息注入更高级别 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv10 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,YOLOv10 专属 论文…

Spring Boot基础入门

引言 Spring Boot是一个开源的Java框架&#xff0c;旨在简化Spring应用程序的创建和部署过程。它提供了一种快速和简便的方式来创建独立的、生产级别的基于Spring的应用程序。本文将介绍Spring Boot的基础知识&#xff0c;包括其核心特性、如何开始使用Spring Boot以及构建你的…

Docker 安装和加速

目录 1.安装 2.了解 docker 信息 3.查询状态 4. 重新启动Docker 1.安装 yum install –y docker 2.了解 docker 信息 cat /etc/redhat-release 3.查询状态 systemctl status docker 4.支持 1.12 的 docker 镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docke…

关于关闭防火墙后docker启动不了容器

做项目的时候遇到个怪事&#xff0c;在Java客户端没办法操作redis集群。反复检查了是否运行&#xff0c;端口等一系列细节的操作&#xff0c;结果都不行。 根据提示可能是Linux的防火墙原因。于是去linux关闭了防火墙。 关闭后果不其然 可以操作reids了&#xff0c;可是没想到另…

【linux学习十七】文件服务管理

一、FTP FTP server:FTP(File Transfer Protocol,文件传输协议 )是 TCP/IP 协议组中的协议之一 软件包&#xff1a;vsftpd/安装 yum -y install vsftpd//准备文件 touch /var/ftp/abc.txt //注释:FTP服务器的主目录:“/var/ftp/”&#xff0c;是FTP程序分享内容的本机目录…

ArkUI开发学习随机——得物卡片,京东登录界面

案例一&#xff1a;得物卡片 代码&#xff1a; Column(){Column(){Image($r("app.media.mihoyo")).width(200).height(200)Row(){Text("今晚玩这个 | 每日游戏打卡").fontWeight(700).fontSize(16).padding(4)}.width(200)Text("No.12").fontWe…

罗德与施瓦茨 ZND (RS) ZNB8 矢量网络分析仪

R&SZND 矢量网络分析仪 简介 R&S ZND 是一款提供最高 4.5 GHz 的单向测量的基本网络分析仪。 用户可选择选件以执行双向测量&#xff0c;并将频率范围扩展到 8.5 GHz。 主要特点 双端口网络分析仪&#xff0c;适用于 100 kHz 至 4.5 GHz 的单向测量 频率范围可扩展…

一分钟扫盲:互联网产品B端,C端,G端都是啥,有什么特征。

在互联网产品中&#xff0c;B端、C端和G端是常用的分类方式&#xff0c;用于描述产品的目标用户群体和市场定位。 B端&#xff08;Business-to-Business&#xff09;&#xff1a; B端产品是面向企业或机构的产品&#xff0c;即企业与企业之间的交互和服务。B端产品的特点包括…

​Python20 Numpy基础

NumPy&#xff08;Numerical Python&#xff09;是一个开源的Python库&#xff0c;广泛用于科学计算。它提供了一个高性能的多维数组对象&#xff0c;以及用于处理这些数组的工具和函数。NumPy是数据分析、机器学习、工程和科学研究中不可或缺的工具之一&#xff0c;因为它提供…

Navicat连接Oracle出现Oracle library is not loaded的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 使用Navicat链接Oracle的时候,出现如下提示:Oracle library is not loaded. 截图如下所示: 2. 原理分析 通常是由于缺少必需的 Oracle 客户端库或环境变量未正确配置所致 还有一种情况是 32位与64位的不匹配:Navica…

Labview_网络流

网络流的介绍 网络流是一种易于配置、紧密集成的动态通信方法&#xff0c;用于将数据从一个应用程序传输到另一个应用程序&#xff0c;其吞吐量和延迟特性可与 TCP 相媲美。但是&#xff0c;与 TCP 不同的是&#xff0c;网络流直接支持任意数据类型的传输&#xff0c;而无需先…

一键设置水印,全面护航:跨境平台产品刊登新功能上线

一、Allegro、OZON、Coupang、Cdiscount、Wish、Temu、Walmart、OnBuy、TikTok、Wildberries平台新增产品刊登支持设置水印。 【普通水印】直接跳转到添加水印页面&#xff0c;勾选所要的图片&#xff0c;点击确定&#xff0c;自动替换原图。 【管理水印】直接跳转到水印模版页…

JAVA【案例5-2】模拟默认密码自动生成

【模拟默认密码自动生成】 1、案例描述 本案例要求编写一个程序&#xff0c;模拟默认密码的自动生成策略&#xff0c;手动输入用户名&#xff0c;根据用户名自动生成默认密码。在生成密码时&#xff0c;将用户名反转即为默认的密码。 2、案例目的 &#xff08;1&#xff09…

汇凯金业:现货黄金交易规则有哪些 投资必读

现货黄金投资近年来发展迅猛&#xff0c;吸引了许多新手投资者进入市场。那么&#xff0c;现货黄金交易规则究竟有哪些?本文将详细介绍现货黄金交易的关键规则&#xff0c;帮助投资者更好地掌握投资技巧&#xff0c;实现稳健收益。 一、保证金交易制 什么是保证金交易? 现…

【智能家居照明磁吸灯驱动方案】LED磁吸轨道灯智能照明调光控制芯片FP7195,耐压80V降压恒流无频闪芯片,0.1%深度调光无频闪无抖动,调光细腻丝滑

随着极简主义无主灯照明的设计风潮来袭&#xff0c;磁吸灯成了室内灯光设计的重点元素&#xff0c;磁吸灯的设计采用模块化的概念。 预设好轨道后&#xff0c;可以自由选择光源的样式&#xff1a;筒灯、射灯、格栅灯、泛光条、吊线灯等等&#xff0c;各种灯具及不同色温光源的…

怎么改png图片的颜色?

要改变PNG图片的颜色&#xff0c;可以采取以下几种方法&#xff1a; 使用Photoshop等图像编辑软件&#xff1a;或者&#xff0c;也可以使用Photoshop中的选区工具&#xff08;如矩形选框、椭圆选框、套索工具等&#xff09;选中图片中需要改变颜色的部分&#xff0c;然后创建一…

Kompas AI自然语言处理能力对比

一、引言 自然语言处理&#xff08;NLP&#xff09;是衡量人工智能&#xff08;AI&#xff09;系统智能程度的重要指标之一。NLP技术的进步使得机器能够理解、解释和生成人类语言&#xff0c;在各个领域中发挥了巨大的作用。本文将对比Kompas AI与其他主要AI产品在NLP方面的表…

暴雨虐长沙,生灵受煎熬

今天&#xff0c;“湖南长沙市遭遇强降雨,一小时的降雨量足够注满54个西湖”这消息&#xff0c;终于登上互联网社交平台热搜榜。 截图&#xff1a;来源社交网站 综合多家媒体消息概述如下。 昨&#xff08;24日&#xff09;天&#xff0c;湖南长沙市遭遇强降雨&#xff0c;一…

房产平台系统小程序源码

&#x1f3e0; 一键解锁购房新体验 &#x1f513; 房产小程序 实现前端 发布二手房 租房 商品 求租 求购等信息&#xff1b; 后台发布 新房&#xff0c;二手房租房 商品 写字楼 求租求购等房源信息&#xff1b; 功能完善的一块房产小程序 &#x1f31f; 房产平台小程序的魅力…

LeetCode —— 只出现一次的数字

只出现一次的数字 I 本题依靠异或运算符的特性&#xff0c;两个相同数据异或等于0&#xff0c;数字与0异或为本身即可解答。代码如下: class Solution { public:int singleNumber(vector<int>& nums) {int ret 0;for (auto e : nums){ret ^ e;}return ret;} };只出…