Odoo 允许管理员在树视图中查看所有记录
Odoo allow administrator to see all record in tree view
在树视图中,我显示记录 user_id = uid 的位置,并为此使用:
<field name="domain">[('user_id.id','=',uid)]</field>
我需要允许管理员在没有域过滤器的情况下查看所有记录。
有什么简单的解决办法吗?
您可以使用以下方法完成。
从操作中删除域 & 继承python文件中的搜索方法。
from openerp import models,fields,api,_
from openerp.exceptions import Warning
from openerp.osv import expression
from openerp import SUPERUSER_ID
class mail_message(models.Model):
_inherit = 'mail.message'
def _search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False, access_rights_uid=None):
""" Override that adds specific access rights of mail.message, to restrict
messages to published messages for public users. """
if uid!=SUPERUSER_ID:
args = expression.AND([[('user_id', '=',uid)], list(args)])
return super(mail_message, self)._search(cr, uid, args, offset=offset, limit=limit, order=order,
context=context, count=count, access_rights_uid=access_rights_uid)
When action will execute _search will be called, in which you can check
if user_id is SUPERUSER_ID then do not add domain or add domain.
这可能对你有帮助。
在树视图中,我显示记录 user_id = uid 的位置,并为此使用:
<field name="domain">[('user_id.id','=',uid)]</field>
我需要允许管理员在没有域过滤器的情况下查看所有记录。
有什么简单的解决办法吗?
您可以使用以下方法完成。
从操作中删除域 & 继承python文件中的搜索方法。
from openerp import models,fields,api,_
from openerp.exceptions import Warning
from openerp.osv import expression
from openerp import SUPERUSER_ID
class mail_message(models.Model):
_inherit = 'mail.message'
def _search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False, access_rights_uid=None):
""" Override that adds specific access rights of mail.message, to restrict
messages to published messages for public users. """
if uid!=SUPERUSER_ID:
args = expression.AND([[('user_id', '=',uid)], list(args)])
return super(mail_message, self)._search(cr, uid, args, offset=offset, limit=limit, order=order,
context=context, count=count, access_rights_uid=access_rights_uid)
When action will execute _search will be called, in which you can check if user_id is SUPERUSER_ID then do not add domain or add domain.
这可能对你有帮助。