如何使用域过滤器和函数来隐藏odoo 9中树视图中的行?

时间:2016-09-22 09:17:23

标签: openerp odoo-9

我有动物模型,笼子模型和用户(工人)和笼子之间的关系模型: 的 cage_manager.py

class animal(osv.osv):
    _name = 'animal'
    _columns = {
                'name': fields.char('Animal Name', size=100),
                'cage_id': fields.many2one('cage', required=True, ondelete='cascade', string="Cage")
                }


class cage(osv.osv):
    _name = 'cage'
    _columns = {
                'name': fields.char('Cage Name', size=100),
                'animals': fields.one2many('animal', 'cage_id', string="Animals"),
                'workers': fields.one2many('cage.user.relation', 'cage_id', string="Workers")
                }


class cage_user_relation(osv.osv):
    _name = 'cage.user.rel'
    _columns = {
                'cage_id': fields.many2one('cage', required=True, ondelete='cascade', string="Cage"),
                'user_id': fields.many2one('res.users', required=True, ondelete='cascade', string="Worker"),
                }

我在 cage_manager.xml

中有这个
<record id="view_cage_manager_tree" model="ir.ui.view">
    <field name="name">cage.tree</field>
    <field name="model">cage</field>
    <field name="type">tree</field>
    <field name="arch" type="xml">
        <tree string="cage_tree">
            <field name="name"/>
            <field name="animals"/>
            <field name="workers"/>
        </tree>
    </field>
</record>

我想让每个工人只看到与他相关的笼子。 (管理员可以看到每个笼子)

我想要这样的事情:

<record id='action_menu_cage_manager' model='ir.actions.act_window'>
    <field name="name">Cages Manager</field>
    <field name="res_model">cage</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
    <field name="domain">[
        ('id', 'in', 'cages_of_current_worker()')
    ]</field>
</record>

但我不知道如何以及在何处实施 cages_of_current_worker()功能

0 个答案:

没有答案