OpenERP - 如何通过继承修改'看板'元素?

时间:2014-01-02 15:11:20

标签: xml inheritance view openerp

我试图在视图中修改看板元素,为它添加更多属性,但它给了我这个错误:

2014-01-02 14:22:23,653 23604 ERROR test2 openerp.addons.base.ir.ir_ui_view: <string>:1:0:ERROR:RELAXNGV:RELAXNG_ERR_NOELEM: Expecting an element , got nothing

我的观点:

    <record model="ir.ui.view" id="crm_case_kanban_view_leads_inherit">
        <field name="name">CRM - Leads Kanban Inherit</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_kanban_view_leads"/>
        <field name="arch" type="xml">
            <kanban default_group_by="stage_id" position="replace">
                <kanban default_group_by="stage_id" edit="false" quick_create="false"/>
            </kanban>
        </field>
    </record> 

我通过简单地复制原始模块中定义的整个视图并更改它来解决这个问题,但我认为应该有更好的解决方案。我如何修改视图中的“root”元素(因为“kanban”元素是所有字段,按钮等的根。)

P.S。我也在这里发布了这个问题http://help.openerp.com/question/40598/how-to-modify-kanban-element-via-inheritance/,但由于社区规模较小,所以我在这里问,因为有更好的变化,有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你的观点实际上是错误的。在这里,您使用的是position="replace",它将取代<kanban>... </kanban>下的所有内容。由于您只需要向此看板添加新属性,因此可以使用position="attributes"。例如

<record model="ir.ui.view" id="crm_case_kanban_view_leads_inherit">
    <field name="name">CRM - Leads Kanban Inherit</field>
    <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.crm_case_kanban_view_leads"/>
    <field name="arch" type="xml">
        <kanban default_group_by="stage_id" position="attributes">
            <attribute name='edit'>false</attribute>
            <attribute name='quick_create'>false</attribute>
        </kanban>
    </field>
</record>