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,带目录

  • 相关阅读:
    Android 开发 深入理解Handler、Looper、Messagequeue 转载
    Android 开发 Handler的基本使用
    Java 学习 注解
    Android 开发 AlarmManager 定时器
    Android 开发 框架系列 百度语音合成
    Android 开发 框架系列 Google的ORM框架 Room
    Android 开发 VectorDrawable 矢量图 (三)矢量图动画
    Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
    Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图
    Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13673683.html
Copyright © 2011-2022 走看看