如何在树视图上添加新字段(继承继承)

时间:2016-05-17 02:46:26

标签: xpath replace field openerp add

我试图替换树视图中的字段。请帮帮我。

这是基于odoo enteprice的脚本

    <record model="ir.ui.view" id="view_task_form2_inherited">
        <field name="name">project.task.form.inherited</field>
        <field name="model">project.task</field>
        <field name="inherit_id" ref="project.view_task_form2" />
        <field name="arch" type="xml">
            <field name="project_id" position="attributes">
                <attribute name="on_change">onchange_project(project_id)</attribute>
            </field>
            <field name="tag_ids" position="after">
                <field name="analytic_account_id" invisible="1"/>
                <field name="progress" widget="progressbar"
                            groups="project.group_time_work_estimation_tasks"/>
            </field>
            <xpath expr="//notebook/page[@name='description_page']" position="after">
                <page string="Timesheets" groups="project.group_tasks_work_on_tasks,project.group_time_work_estimation_tasks">
                <field name="timesheet_ids" groups="project.group_tasks_work_on_tasks" context="{'default_account_id' : analytic_account_id, 'default_is_timesheet' : 1}">
                    <tree editable="top" string="Timesheet Activities">
                        <field name="date"/>
                        <field name="user_id" required="1"/>
                        <field name="name"/>
                        <field name="account_id"/>
                        <field name="unit_amount" string="Duration" sum="Total time" widget="float_time"/>
                        <field name="is_timesheet" invisible="1"/>
                    </tree>
                </field>
                <group>
                 <group class="oe_subtotal_footer oe_right" name="project_hours" groups="project.group_time_work_estimation_tasks">
                    <field name="effective_hours" widget="float_time" groups="project.group_time_work_estimation_tasks"/>
                    <field name="remaining_hours" widget="float_time" class="oe_subtotal_footer_separator" groups="project.group_time_work_estimation_tasks"/>
                 </group>
                </group>
            </page>
            </xpath>
        </field>
    </record>

这是我在_view.xml上的自定义脚本:

    <record id="project_task_view_form" model="ir.ui.view">
        <field name="name">project.task.view.form</field>
        <field name="model">project.task</field>
        <field name="inherit_id" ref="project.view_task_form2"/>
        <field name="arch" type="xml">              
            <xpath expr="/notebook/page[@name='description_page']" position="replace">
                <page string="Timesheets" groups="project.group_tasks_work_on_tasks,project.group_time_work_estimation_tasks">
                <field name="timesheet_ids" groups="project.group_tasks_work_on_tasks" context="{'default_account_id' : analytic_account_id, 'default_is_timesheet' : 1}">
                    <tree editable="top" string="Timesheet Activities">
                        <field name="date"/>
                        <field name="user_id" required="1"/>
                        <field name="name"/>                                                        
                        <field name="unit_amount" string="Duration" sum="Total time" widget="float_time"/>
                        <field name="is_timesheet" invisible="1"/>
                        <field name="invoiceable_analytic_line"/>                            
                    </tree>
                </field>
            </page>
            </xpath>
        </field>
    </record>

我想在"invoiceable_analytic_line"内添加新字段"timesheet_ids",但它不起作用。

有人帮帮我吗?

感谢。

1 个答案:

答案 0 :(得分:0)


查看
该过程是正确的,但只是 xpath 内的 expr 属性出错。
相反:
<xpath expr="/notebook/page[@name='description_page']" position="replace">,你必须写:
<xpath expr="//sheet/notebook/page[1]" position="replace">
odoo 10
<xpath expr="/sheet/notebook/page[@string='Description']" position="replace">时因为 description_page不存在
/project/project_view.xml 复制整个<page string="Description">..</page>标记,然后通过修改字符串将其粘贴到 xpath标记中。之后,将您的字段插入您想要的字段

<强>模型

class Add_in_timesheet(models.Model)
    _inherit = 'project.task
    invoiceable_analytic_line = fields.Char(string=u"Invoiceable")

picture from odoo8/addons/project/project_view.xml