Odoo:根据one2many域的department_id输入员工 [英] Odoo : inputing employee based on department_id, one2many domain

查看:92
本文介绍了Odoo:根据one2many域的department_id输入员工的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从这张图片中此处

当我单击添加新项目时,我希望显示的员工列表仅是员工 在所选部门中,在图例中是"IT"部门.使用odoo v8进行iam

when i click on the add new item, i want employee list that show up is only employees from the selected department, in the pict case is "IT" department. iam using odoo v8

ive在我的o2m字段中尝试过此操作:

ive tried this in my o2m field :

class overtime(models.Model):
    _name = 'overtime.overtime'

    department_id = fields.Many2one('hr.department', string='Department', readonly=True, states={'draft': [('readonly', False)]})
    employee_ids = fields.One2many('overtime.overtime_details', 'overtime_id', string="Employee", 
                                domain="[('hr.employee.department_id', '=', department_id)]")


class overtime_details(models.Model):
    _name='overtime.overtime_details'

    nik = fields.Char('NIK', size=250, required=True)
    overtime_id = fields.Many2one('overtime.overtime', string="Overtime", ondelete='cascade')
    job_id = fields.Many2one('hr.job', string="Position")
    employee_id = fields.Many2one('hr.employee', "Employee", required=True, select=True)

并出现如下错误:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\http.py", line 544, in _handle_exception
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\http.py", line 581, in dispatch
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\http.py", line 317, in _call_function
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\service\model.py", line 118, in wrapper
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\http.py", line 314, in checked_call
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\http.py", line 810, in __call__
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\http.py", line 410, in response_wrap
  File "C:\Program Files (x86)\Odoo 8.0\server\openerp\addons\web\controllers\main.py", line 944, in call_kw
  File "C:\Program Files (x86)\Odoo 8.0\server\openerp\addons\web\controllers\main.py", line 936, in _call_kw
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\api.py", line 268, in wrapper
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\models.py", line 3148, in read
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\api.py", line 266, in wrapper
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\models.py", line 3183, in read
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\api.py", line 266, in wrapper
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\models.py", line 3370, in _read_from_database
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\osv\fields.py", line 774, in get
TypeError: cannot concatenate 'str' and 'list' objects

这是xml:

   <record id="overtime_form1" model="ir.ui.view">
            <field name="name">overtime_form1</field>
            <field name="model">overtime.overtime</field>
            <field name="arch" type="xml">
                <form string="Overtime Request Form">
                  <sheet>
                    <div class="oe_title">
                        <label for="code" class="oe_edit_only"
                            string="Overtime Code" />
                        <h1>
                            <field name="code" />
                        </h1>
                    </div>
                    <group>
                        <field name="department_id"/>
                        <label string="Duration"/>
                        <div>
                            <group col="5">
                                <field name="start_date" class="oe_inline"/>
                                <label string="-" class="oe_inline"/>
                                <field name="end_date" class="oe_inline"/>
                            </group>
                            </div>
                            <field name="total_overtime"/>
                            <field name="overtime_bonus"/>
                            <field name="reason"/>  
                        </group>
                        <notebook>
                            <page string="Employees">
                                <field name="employee_ids" >
                                    <tree string="Employees" editable="bottom">
                                        <field name="nik"/>
                                        <field name="employee_id"/>
                                        <field name="job_id"/>
                                    </tree>
                                </field>
                            </page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>

感谢:)

推荐答案

您可以使用 parent.department_id 来实现.

<notebook>
<page string="Employees">
    <field name="employee_ids" >
        <tree string="Employees" editable="bottom">
            <field name="nik"/>
            <field name="employee_id" domain="[('department_id', '=',parent.department_id)]" />
            <field name="job_id"/>
        </tree>
    </field>
</page>

这可能会对您有所帮助.

This may help you.

这篇关于Odoo:根据one2many域的department_id输入员工的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆