Python 如何为资产制定记录规则?
我有资产模块。我继承了那里的资产代码,我将分配给用户。如果我有两个公司供两个用户使用,如何为公司资产制定记录规则 如果指定给用户的公司 和分配给B用户的B公司 我将资产继承类别和公司ID 1作为公司名称 当一个用户登录时,他应该只获得一个公司资产或一个用户资产,与B相同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"
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”中。您是否选中了?请帮助我任何一个我无法单击全局复选框它在一个实例中不工作,但在另一个实例中它的工作精度不需要单击全局复选框。当您无法在网格中指定任何组时,将自动选中“全局”复选框。其显示的弹出消息应选择任意一个访问权限