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

  • 相关阅读:
    May 1 2017 Week 18 Monday
    April 30 2017 Week 18 Sunday
    April 29 2017 Week 17 Saturday
    April 28 2017 Week 17 Friday
    April 27 2017 Week 17 Thursday
    April 26 2017 Week 17 Wednesday
    【2017-07-04】Qt信号与槽深入理解之一:信号与槽的连接方式
    April 25 2017 Week 17 Tuesday
    April 24 2017 Week 17 Monday
    为什么丑陋的UI界面却能创造良好的用户体验?
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13673683.html
Copyright © 2011-2022 走看看