zoukankan      html  css  js  c++  java
  • odoo12 修行基础篇之 列表的筛选和分组 (六)

    直接开始搞吧:

    在my_customer_complain.xml中增加tree视图:

     1 <!--tree列表-->
     2 <record id="tree_my_customer_complain" model="ir.ui.view">
     3     <field name="name">tree.my.customer.complain</field>
     4     <field name="model">my.customer.complain</field>
     5     <field name="arch" type="xml">
     6         <tree decoration-muted="state=='cancel'">
     7             <field name="name"/>
     8             <field name="customer_id"/>
     9             <field name="supplier_id"/>
    10             <field name="order_id"/>
    11             <field name="complains"/>
    12             <field name="state"/>
    13         </tree>
    14     </field>
    15 </record>

    这里第一次出现了decoration-muted属性,可以根据条件对记录进行颜色标识,可以定义以下属性,显示颜色不同。

    上图是引用的来自网络的图片。

    下面开始对状态进行筛选,我想筛选出所有未处理的记录。

    在my_customer_complain.xml中增加search视图:

    <!--search视图-->
    <record id="search_my_customer_complain" model="ir.ui.view">
        <field name="name">search.my.customer.complain</field>
        <field name="model">my.customer.complain</field>
        <field name="arch" type="xml">
            <search>
                <filter name="draft" string="未处理" domain="[('state', '=', 'draft')]"/>
            </search>
        </field>
    </record>

    升级下,点下筛选中的未处理看看吧。

    下面我们来研究下分组:

    <!--search视图-->
    <record id="search_my_customer_complain" model="ir.ui.view">
        <field name="name">search.my.customer.complain</field>
        <field name="model">my.customer.complain</field>
        <field name="arch" type="xml">
            <search>
                <filter name="draft" string="未处理" domain="[('state', '=', 'draft')]"/>
                <group>
                    <filter string="状态" name="state" context="{'group_by':'state'}"/>
                </group>
            </search>
        </field>
    </record>

    在search中添加group标签,里面定义filter标签,context用来指定分组的字段。

    升级下,可以看到如下效果:

    有的需求需要在进入页面时就要默认筛选或分组,我们也来搞一下:

    <!--给tree视图指定默认的筛选和分组条件-->
    <record id="action_my_customer_complaint" model="ir.actions.act_window">
        <field name="context">{'search_default_draft': 1, 'group_by': 'name'}</field>
    </record>

    id就写对应按钮action的id,model的值就写这个,增加context配置,其中默认筛选要带有search_default_前缀,前缀后的名就是对应filter中name属性的值。因此,要有默认的筛选条件,必须要先定义好filter。默认的分组条件可以不用,直接使用group_by属性指定要分组的字段名即可。上面同时使用了筛选和分组,也可以单独定义,升级,试一下吧。

    有点意思吧,现在客户突然来了需求,想要批量处理记录,下一篇我们就来研究下批量处理。

    项目git地址:https://github.com/SamNicole1809/odoo12_my_pro,带目录

  • 相关阅读:
    全站防止SQL注入类
    asp.net 技术网站
    Tekla API 常见问题摘录整理
    C#退出程序结束线程
    C#MetroModernUI库应用实例 WinForm窗体UI的美化
    获取项目物理根目录绝对路径
    计算两个时间月数的差
    centos7安装wps软件
    10 安全运维管理 10.11备份与恢复管理
    10 安全运维管理 10.14外包运维管理
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13673683.html
Copyright © 2011-2022 走看看