如何通过在此处选择员工姓名来自动填充数据?

时间:2015-05-15 10:56:18

标签: xml python-2.7 odoo

如果选择emp名称,我必须自动填充所有数据,然后其他字段应自动填充 在这里,我添加了树视图 .py xml 文件,请为此帮助我,
而且我还想再向特定员工提交一份附件。

from openerp.osv import fields, osv

class hr_employee(osv.osv):
    _inherit="hr.employee"
    _columns={
        'emp_line':fields.one2many('empl.line','emp_id','Employee Line'),
    }

class empl_line(osv.osv):
    _name="empl.line"
    APPOINTMENT_SELECTION=[
        ('0','Regular'),
        ('1','Aditional'),
        ('2','Deputation'),
        ('3','Incharge'),
    ]
    _columns = {
        'name':fields.selection(APPOINTMENT_SELECTION,'Appointment For'),
        'surname':fields.char('Name'),
        'doj':fields.date('Date of Joining'),
        'dor':fields.date('Date of Relieving'),
        'emp_id': fields.many2one('hr.employee', 'employee_id'),
    }

empl_line()



<?xml version="1.0" encoding="utf-8"?>

<openerp>
    <data>
        <record id="hr_view_employee_form1" model="ir.ui.view">
            <field name="name">hr.employee.form</field>
            <field name="model">hr.employee</field>

            <field name="inherit_id" ref="hr.view_employee_form"/>
            <field name="arch" type="xml">

                 <page string="HR Settings" groups="base.group_hr_user" position="after"> 

                    <page string="Employee Details">    
                        <field name="emp_line" >
                            <form string="Employee Line">
                            <group>
                                <field name="name"/>
                                <field name="surname"/>
                                <field name="doj"/>
                                <field name="dor"/>

                            </group>

                            </form>
                            <tree string="Employee Line">

                                <field name="name"/>
                                <field name="surname"/>
                                <field name="doj"/>
                                <field name="dor"/>


                            </tree>
                        </field> 
                    </page> 
                </page>

            </field>


        </record>

        <record model="ir.ui.view" id="hr.view_employee_form2">
                <field name="name">hr.employee.form</field>
                <field name="model">hr.employee</field>
                <field name="inherit_id" ref="hr.view_employee_form" />
                <field name="arch" type="xml">
                        <page string="Personal Information" groups="base.group_hr_user" >
                            <attribute name='invisible'>1</attribute> 
                        </page>
                </field>
            </record>

    </data>
</openerp>

1 个答案:

答案 0 :(得分:0)

您可以使用onchange函数并返回所需的值。

为此,请将on_change属性设置为您的字段:

<field name="name" on_change="onchange_name(name)" />

并在 .py 文件中,向您的模型添加如下函数:

def onchange_name(self, cr, uid, ids, name, context=None):
    # Put your logic here
    return {
        'value': {
            'surname': 'this is a surname'
        }
    }

因此,在更改 name 字段时,将更改姓氏。