Python 如何为资产制定记录规则?

Python 如何为资产制定记录规则?,python,xml,odoo,Python,Xml,Odoo,我有资产模块。我继承了那里的资产代码,我将分配给用户。如果我有两个公司供两个用户使用,如何为公司资产制定记录规则 如果指定给用户的公司 和分配给B用户的B公司 我将资产继承类别和公司ID 1作为公司名称 当一个用户登录时,他应该只获得一个公司资产或一个用户资产,与B相同 class asset_asset(osv.osv): _inherit = "asset.asset" #_name = "asset_asset" _rec_name= "folio_num"

我有资产模块。我继承了那里的资产代码,我将分配给用户。如果我有两个公司供两个用户使用,如何为公司资产制定记录规则 如果指定给用户的公司 和分配给B用户的B公司

我将资产继承类别和公司ID 1作为公司名称

当一个用户登录时,他应该只获得一个公司资产或一个用户资产,与B相同

class asset_asset(osv.osv):
    _inherit = "asset.asset"
    #_name = "asset_asset"
    _rec_name= "folio_num"
    _columns = {
        'name': fields.char('Asset Name', size=64),
        'company_id1': fields.many2one('res.company', 'Company', required=True),
        'place1': fields.many2one('asset.parentlocation', 'Location'),
        'asset_catg_id' : fields.many2one('asset.catg', 'Asset Catg Selection',select=True, required=True),
            'area_id' : fields.many2one('asset.name', 'Asset Name Selection', domain="[('asset_catg_id', '=', asset_catg_id)]", select=True, required=True),
        'assetmodelid_add' : fields.many2one('agile.portfolio1','Asset Model Code',domain="[('area_id', '=', area_id)]",),
        'folio_num' : fields.char('Folio No',),
        'asse_line':fields.one2many('asset.line','emp_id','Name Plate'),
        'asse_line2':fields.one2many('asset.part','emp_id1','Parts'),
               #'assed_modelid':fields.many2one('agile.portfolio1','Asset Model ID',select=True, required=True),
        'quantity': fields.char('Quantity',size=64),
        'uom': fields.char('Uinit of Measure',size=64),
        'model_no' : fields.char('Model', size=64),

        #'asset_id':fields.many2one('agile.portfolio','Asset ID'),

    }
我需要完整的代码,即xml或带有解释的记录规则

转到->

  • 背景
    • 技术的
      • 保安
        • 记录规则 为资产创建新规则
取消选中读、写、创建和删除的所有访问权限。

在xml、csv文件中设置规则的访问权限

我创建的新模块依赖于项目管理,我想在安全文件夹中添加新的组、用户、规则和访问控制。我成功地添加了组和用户,并扩展了一些访问控制

我的问题是:如何为每个规则指定访问权限(读/写/创建/删除)

例如:

1.用户可以创建/读取/写入任务(ACL)

2.用户只能读取/修改分配给他的任务(规则)

3.项目经理可以查看其项目中的所有任务(规则)

例如:

<record model="ir.rule" id="ir_values_my_costume_rule">
    <field name="name">My Rule Name</field>
    <field name="model_id" ref="model_your_model_name"/>
    <field name="domain_force">[('field','operator','value'),('user_id','=',user.id)]</field>
    <field name="perm_read" eval="True"/>
    <field name="perm_write" eval="True"/>
    <field name="perm_unlink" eval="True"/>
    <field name="perm_create" eval="True"/>
</record>

我的规则名
[('field'、'operator'、'value')、('user_id'、'=',user.id)]
您必须在模型名称之前传递模型,如下所示:模型销售订单或模型项目任务

在eval中,您可以根据需要传递True或False

也可以从菜单中定义记录规则,而无需创建任何文件:设置->技术->安全->记录规则

为了定义“记录规则”,您需要仔细配置三个主要字段

对象:要对其应用记录规则。(本例中为“任务”对象)

:设置用于筛选数据的域。 组:添加要应用此记录规则的组。如果没有要添加的内容,则此规则为全局应用,通常用于配置多公司记录规则。 我将以OpenERP的“任务”对象为例来解释这种访问规则

在我的示例中,假设我的需求如下:

用户“rch”只能访问以下类型的任务列表

未分配给任何用户的所有任务的列表。i、 e.('user_id','=',False)

分配给用户“rch”的所有任务的列表。i、 e.('user_id','=',user.id)

他所参与的所有项目的所有任务的列表。i、 e.('project_id.members','in',[user.id])

他是项目经理的项目所有任务的列表。i、 e.('project_id.user_id','=',user.id)

按如下方式配置记录规则:

名称:根据用户和项目的任务

对象:任务

域:['|','|','|',('user_id','=',False),('user_id','=',user.id),('project_id.members','in',[user.id]),('project_id.user_id','=',user.id)]

组:项目/用户


现在将此组(项目/用户)添加到用户“rch”中。

您是否选中了?请帮助我任何一个我无法单击全局复选框它在一个实例中不工作,但在另一个实例中它的工作精度不需要单击全局复选框。当您无法在网格中指定任何组时,将自动选中“全局”复选框。其显示的弹出消息应选择任意一个访问权限