默认按两个字段分组的树视图Odoo 10

时间:2018-12-21 13:06:39

标签: xml listview group-by odoo odoo-10

我正在尝试在列表视图中进行默认分组。 如果我使用下面的行,那么它在一个字段上工作正常。

<field name="context">{'group_by':'sector_id'}</field>

但是,我的要求是默认情况下将扇区和自然两个级别分组。因此,我尝试了下面的代码,但没有任何反应,也没有错误。

操作:

<record id="program_activity_action_window_chairman" model="ir.actions.act_window">
    <field name="name">Activity</field>
    <field name="res_model">program.activity</field>
    <field name="view_ids" eval="[(5,0,0),(0,0,{'view_mode':'tree','view_id':ref('view_program_activity_tree')}),(0,0,{'view_mode':'form','view_id':ref('view_program_activity_form_chairman')})]"/>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form,graph</field>
    <field name="domain">[('state', 'in', ['chairman_approve','done'])]</field>
    <!--<field name="context">{'default_state': 'chairman_approve'}</field>-->
    <!--<field name="context">{'group_by':'sector_id'}</field>-->
    <field name="context">{'search_default_group_sector_id': 1,'search_default_group_nature': 1}</field>

    <field name="help" type="html">
        <p class="oe_view_nocontent_create">
            Create a new Program Activity.
        </p>
    </field>
</record>

树状视图:

<record id="view_program_activity_tree" model="ir.ui.view">
    <field name="name">program.activity.tree</field>
    <field name="model">program.activity</field>
    <field name="arch" type="xml">

        <tree string="Program Activity" colors="green:type_id[1] == 'REVENUE'">
            <field name="department_id"/>
            <field name="sector_id"/>
            <field name="major_program_id"/>
            <field name="minor_program_id"/>
            <field name="name"/>
            <field name="code"/>
            <field name="type_id"/>
            <field name="weight_from_minor"/>
            <field name="total_planned" sum="Total Planned"/>
            <field name="total_actual" sum="Total Actual"/>
            <field name="total_diff_amount" sum="Total Difference Amount"/>
            <field name="total_diff_percentage" sum="Total Difference Percentage %"/>
        </tree>
    </field>
</record>

请提供帮助或任何建议,我们将不胜感激。谢谢

2 个答案:

答案 0 :(得分:3)

您的代码似乎没问题,您必须做的是将nature字段添加到树视图中,当然,两个字段都必须是树视图{{1}的搜索视图中的过滤器}:

树状视图

view_program_activity_tree

搜索视图

<field name="sector_id"/>
<field name="nature" invisible="1"/>

您的操作中没有<filter string="Sector" name="group_sector_id" domain="[]" context="{'group_by':'sector_id'}" help="Grouping by sector"/> <filter string="Nature" name="group_nature" domain="[]" context="{'group_by':'nature'}" help="Grouping by nature"/> 字段,因此继承并修改模型search_view_id的默认搜索视图。如果不存在,请为其创建一个新的搜索视图,然后在操作中添加指向该视图的链接。

program.activity

答案 1 :(得分:3)

如果您希望不使用搜索视图过滤器进行分组(使用forvas方法),只需在上下文中进行多个分组:

<field name="context">{'group_by':['sector_id', 'nature']}</field>

字段列表中的顺序很重要。