# 一、直接在tree根元素中新增。这种有个限制就是必须要勾选一或多条记录的时候按钮才会显示
<tree>
<header>
<button type="object" class="btn-primary" name="tests" icon="fa-whatsapp" string="Import Part"/>
</header>
</tree>
# 然后在编写处理方法
@api.model
def tests(self, select_ids):
pass # 二、如果你要按钮一直显示的话
# 1.tree_button_template.xml
<?xml version="1.0" encoding="UTF-8"?>
<templates id="sync_import_base_partinfo" xml:space="preserve">
<t t-extend="ListView.buttons">
<t t-jquery=".o_list_buttons" t-operation="append">
<!-- 找到名为 "shipyard.parttype"的模型,并在它的列表(tree)视图后面append一个按钮 -->
<t t-if="widget and widget.modelName == 'shipyard.parttype'">
<!--btn表示按钮,btn-sm小按钮,btn-default默认按钮,btn-primary主要按钮?-->
<button class="btn btn-primary o_list_tender_bt_sync_equip" type="button">Sync Import</button>
</t>
</t>
</t>
</templates>
# 2.tree_button.js
odoo.define('shipyard_parttype.list_sync_import_base_partinfo_button_create', function (require) {
"use strict";
var ListView = require('web.ListView');
var viewRegistry = require('web.view_registry');
var ListController = require('web.ListController');
ListController.include({
renderButtons: function ($node) {
this._super.apply(this, arguments);
if (this.$buttons) {
# .o_list_tender_bt_sync_equip该选择器是上边template中的
this.$buttons.on('click', '.o_list_tender_bt_sync_equip', this._sync_import_base_partinfo.bind(this));
}
},
_sync_import_base_partinfo: function () {
var self = this;
var records = this.getSelectedIds();
self._rpc({ # rpc不明白可以往上翻其他小节
model: 'shipyard.parttype', # 模块
method: 'import_partitem', # 调用的方法
args: [records]
},
[]
);
}
});
})
;
# 3.定义python处理
@api.model
def import_partitem(self, pids): # pids为tree列表中勾选记录的id列表
pass
# 4.将js和xml加入到资源中去
<template id="assets_end" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script src="/ship_manage/static/src/js/tree_button.js" type="text/javascript" />
</xpath>
</template> 'qweb': [ # __manifase__.py中
'static/src/xml/tree_button_template.xml',
],

Odoo4 tree视图左上角新增Button的更多相关文章

  1. Odoo13之在tree视图左上角添加自定义按钮

    前言 首先展示效果图,如下图所示,在资产设备模块tree视图的左上角添加了一个同步资产的按钮. 要完成按钮的添加,分为四步,分别是: 1.编写xml文件,找到相关模型tree视图,并给模型tree视图 ...

  2. odoo12 Tree视图创建编辑旁边新增按钮,并根据条件隐藏

    前言 我们通常在form视图中可以很简单地在header里面添加按钮,但是在某些情况下,我们也需要在Tree视图中添加按钮,但是odoo官方目前没有给我们提供相应的接口,因此,我们尝试自己来实现它.最 ...

  3. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  4. Odoo 二次开发教程(三)-第一个Model及Form、Tree视图

    创建完我们的模块,接下来我们就要为我们的模块添加一些对象.今天我们将要创建一个学生对象(tech.student)和一些基本的属性,并将用form和tree视图将其展示出来: 一. 创建tech.st ...

  5. tree视图显示的记录数量

    在act_window中,定义limit字段,可以指定打开的tree视图的记录数量. limit:列表视图中每个页面的记录数.

  6. OpenERP为form和tree视图同时指定view_id的方法

    Odoo,OpenERP中文网 / 2014-07-16 文所说的是关于OpenERP中同一个对象(同名继承)使用view_id来指定form和tree视图的方法,由于官方文档中Views and E ...

  7. 控制跳转的tree视图显示的列表项数量

    在act_window中,定义limit字段,可以指定打开的tree视图的记录数量.   limit:列表视图中每个页面的记录数.

  8. odoo视图入门学习- tree视图的使用

    上一篇内容:如何快速在odoo中创建自己的菜单 前言 上面的内容我们已经学会了如何去创建odoo的菜单,下面我们要学习的是odoo的基础视图tree视图,我们的目标是实现型号管理的列表页面 创建mod ...

  9. IE兼容性视图,新增元素导致白页面

    环境:     浏览器:IE8/9浏览器[兼容性视图]     doctype:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit ...

随机推荐

  1. [漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞

    免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 war文件 0x01 漏洞介绍 影响范围:Tomcat 8.0版本 漏洞类型:弱口令 漏洞成因:在tomc ...

  2. Python数据分析--Numpy常用函数介绍(3)

    摘要:先汇总相关股票价格,然后有选择地对其分类,再计算移动均线.布林线等. 一.汇总数据 汇总整个交易周中从周一到周五的所有数据(包括日期.开盘价.最高价.最低价.收盘价,成交量等),由于我们的数据是 ...

  3. 第06组Alpha冲刺总结

    目录 1. 基本情况 2. 思考与总结 2.1. 设想和目标 2. 计划 3. 资源 4. 变更管理 5. 设计/实现 6. 测试/发布 7. 团队的角色,管理,合作 8. 总结 3. 敏捷开发 1. ...

  4. 手把手教你使用 Spring Boot 3 开发上线一个前后端分离的生产级系统(一) - 介绍

    项目简介 novel 是一套基于时下最新 Java 技术栈 Spring Boot 3 + Vue 3 开发的前后端分离的学习型小说项目,配备详细的项目教程手把手教你从零开始开发上线一个生产级别的 J ...

  5. [学习笔记] pd_ds黑科技

    https://www.cnblogs.com/jiqimin/p/11226809.html 丢个链接,跑路 // Author: wlzhouzhuan #pragma GCC optimize( ...

  6. 在windows下使用s3cmd和s3browser来管理amazon s3的笔记

    S3是Amazon S3的简称,s3cmd是一款命令行工具用来管理s3,同时还有一款图形化的管理工具:s3 browser. 因为绝大多数用户都是在linux下管理s3,而我们的打包机是在window ...

  7. 开源流程引擎Camunda BPM如何扩展数据库表

    前言 在使用开源流程引擎(如:JBPM.Activiti.Flowable.Camunda等)的时候,经常会遇到这样的需求,我们需要按照业务需求增加一张数据库的表,而且这张表是跟工作流引擎有交互的(注 ...

  8. JS:构造函数

    定义:在JavaScript中,用new关键字来调用的函数,称为构造函数,构造函数首字母一般大写. 理解: 构造函数就是初始化一个实例对象,对象的prototype属性是继承一个实例对象. 创建对象, ...

  9. gitlab备份迁移与升级

    升级计划: https://docs.gitlab.com/ee/update/index.html#upgrade-paths 1. 安装gitlab(和源版本必须保持一致) wget https: ...

  10. Docker安装Portainer管理工具

    1.下载镜像 docker pull portainer/portainer 2.启动 docker run -d -p 9000:9000 --restart=always -v /var/run/ ...