修改前:

修改后:

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<!-- vim:fdn=3:
-->
<openerp>
<data>
<template id="assets_backend" name="rhwl_gene_inherit assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/rhwl_gene_inherit/static/js/rhwl_gene_inherit.js"></script>
</xpath>
</template>
</data>
</openerp>

js文件:

openerp.rhwl_gene_inherit = function (instance) {
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb; instance.web.rhwl_gene_inherit = instance.web.rhwl_gene_inherit || {}; instance.web.rhwl_gene_inherit.SearchView = instance.web.ListView.Groups.extend({
init: function (view, options) {
this._super.apply(this, arguments);
// all_batch_str :全局变量用于保存批次名和该批次对应的数量
this.all_batch_str = {};
var self = this;
var Mod = new instance.web.Model('rhwl.easy.genes.new');
Mod.call("get_all_batch_num").then(function(all_batch_num) {
self.all_batch_str = all_batch_num;
});
}, render_groups: function (datagroups) {
var self = this;
for ( var i = 0; i < datagroups.length; i++) {
if (datagroups[i].grouped_on === "batch_no"){
var batch_no_name = datagroups[i].value;
var current_num = datagroups[i].length;
for (batch_str in self.all_batch_str) {
if (batch_str === batch_no_name){
datagroups[i].length = current_num+"/"+self.all_batch_str[batch_str];
}
}
}
}
placeholder = this._super.apply(this, arguments);
return placeholder;
}
}); instance.web.views.add('rhwl_gene_inherit_ListView', 'instance.web.rhwl_gene_inherit.ListView');
instance.web.rhwl_gene_inherit.ListView = instance.web.ListView.extend({
init: function (parent, dataset, view_id, options) {
this._super(parent, dataset, view_id, _.extend(options || {}, {
GroupsType: instance.web.rhwl_gene_inherit.SearchView
}));
}
});
};

py文件:

    def get_all_batch_num(self, cr, uid, context=None):
res = {}
sql_str = "SELECT batch_no, count(*) as batch_count from rhwl_easy_genes_new WHERE batch_no is not NULL GROUP BY batch_no "
cr.execute(sql_str)
for i in cr.fetchall():
res.update({i[0]: i[1]})
return res

odoo 分组视图下显示同一批次记录的总数的更多相关文章

  1. win10开启运行下显示历史操作记录

    步骤 设置,隐私,常规,允许windows跟踪应用启动,以改进开始和搜索结果  

  2. linux下history命令显示历史指令记录的使用方法

    Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...

  3. Odoo form视图详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826350.html 一:Header头部 header区域一般用于展示文档流转的阶段和生命周期,以及动作 ...

  4. Android studio 项目的layout的文件打开,preview 视图无法显示,提示“no sdk found...”可能原因?

    1.安装android studio后启动,引导新的下载的sdk文件夹,不要默认在c:\users\你的用户名\appdata...下的sdk文件夹. 2.如果已经默认的,重新在settings/pr ...

  5. Visual studio 类视图和资源视图不显示的问题

    关于Visual studio 类视图和资源视图不显示的问题 解决方法: 1. 工具—选项—文本编辑器—C/C++—高级,浏览/导航下的禁用数据库选项置为False; 2. 输入命令:devenv / ...

  6. cmd&Linux 下使用mysql全记录

    php mysql数据库常用cmd命令集 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...

  7. MVC4 Razor视图下使用iframe加载RDLC报表

    MVC视图下默认是不支持服务器端控件的,所以,为了能够通过report viewer控件加载报表,需要在MVC视图添加嵌入的页面. 起初在stackoverflow上找到一个解决方案,见这里.不过这里 ...

  8. mysql 分组取最新的一条记录(整条记录)

    方法:mysql取分组后最新的一条记录,下面两种方法.一种是先筛选 出最大和最新的时间,在连表查询.一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了  #select * from ...

  9. unity 在Game视图中显示Gizmos

    自己画的Gizmos要想在Game视图中能看到,需要把Game视图窗口右上角的"Gizmos"按钮点下去.如图: 比如,下面代码以角色的capsuleCollider中心为中心画一 ...

随机推荐

  1. 44-Ubuntu-用户管理-09-chmod的数字表示法介绍

    chmod 修改文件和目录权限 chmod在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限. 注意: chmod直接修改文件|目录的'读|写|执行'权限,但是不能精确到拥有者|组 ...

  2. react组件中的方法?

    SetState 设置状态 ReplaceState 替换状态 setProps设置属性 replacerProps替换属性 forceUpdate 强制更新 findDOMNode获取DOM节点 i ...

  3. Django 框架之前

    返回主目录:Django框架 内容目录: 一.Django框架之前的内容 1.1 web应用程序的架构 1.2 HTTP协议 1.3 纯手写简单web框架 一.Django框架之前d的内容 1.1 w ...

  4. 关于CheckListBox触发ItemCheck事件的问题

    开发时遇到一个有趣的问题,我们需要CheckListBox可以实现单选功能,因为默认是多选的,开始我写的代码如下: void cb_ItemCheck(object sender,ItemCheckE ...

  5. swiper缩略图active切换失灵的解决思路

    报错信息:Cannot read property ‘indexOf’ of undefined swiper. 来源是swiper.min.js,首先检查自己写的js配置是否有误,没有就调试插件源代 ...

  6. Perl 运算符

    Perl 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,如: 3+2=5. Perl 语言内置了丰富的运算符,我们来看下常用的几种: 算术运算符 比较运算符 逻辑运算符 赋值运算符 位 ...

  7. 在IDEA安装SonarLint插件的步骤和使用方法

    1.安装SonarLint插件方式 2.使用方式 3.效果

  8. 【硬盘】RAID卡

    独立磁盘冗余阵列,或简称磁盘阵列(Redundant Array of Independent Disks) RAID是一种把多块独立的物理硬盘按不同方式组合起来形成一个逻辑硬盘,一般分为硬RAID卡 ...

  9. python 识别验证码自动登陆

    # python 3.5.0 # 通过Chrom浏览器访问发起请求 # 需要对应版本的Chrom和chromdriver # 作者:linyouyi from selenium import webd ...

  10. kafka拦截器原理|案例实操

    拦截器原理 Producer拦截器(interceptor)是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑. 对于producer而言,interceptor使得用 ...