将登录用户销售团队指定为域参数是不可能的,但我们可以通过另一种方式来实现这一点。IE; 在我看来,我将域指定为:
<field name="domain">[('user_id.default_section_id', 'in', user_sale_team())]</field>
其中 user_id 是任务的负责用户。现在继承 ir.actions.act_window 的读取函数并检查读取结果域中是否存在 user_sale_team() 并将其替换为登录用户销售团队 ID。这可以这样做:
class ir_action_window(osv.osv):
_inherit = 'ir.actions.act_window'
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
user_pool = self.pool.get('res.users')
obj_user = user_pool.browse(cr, uid, uid, context=context)
res = super(ir_action_window, self).read(cr, uid, ids, fields=fields, context=context, load=load)
if not isinstance(res, list):
res = [res]
sale_team_id = obj_user.default_section_id and obj_user.default_section_id.id or''
for r in res:
mystring = 'user_sale_team()'
if mystring in (r.get('domain', '[]') or ''):
r['domain'] = r['domain'].replace(mystring, str([sale_team_id]))
if isinstance(ids, (int, long)):
if res:
return res[0]
else:
return False
return res
ir_action_window()
这会根据每个用户的销售团队过滤要显示给每个用户的任务结果。
希望这可以帮助.....