تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1588 أدوات العرض

I have tried to modify the search method in Odoo 17 to show only the contacts the user has permission to view based on tags. However, this has not worked, even though it was functional in version 16 without any issues. Here is the code:

from odoo import fields, models,api

class ResPartner(models.Model):
_inherit = 'res.partner'

@api.model
def search(self, args, offset=0, limit=None, order=None):

user = self.env.user
if not user.view_all_contacts:
allowed_categories = user.allowed_partner_category_ids.ids

if allowed_categories:
args = args or []
args.append(('category_id', 'in', allowed_categories))
else:

args = args or []
args.append(('id', '=', -1))

return super(ResPartner, self).search(args, offset=offset, limit=limit, order=order)



from odoo import api, fields, models


class ResUsers(models.Model):
_inherit = "res.users"

allowed_partner_category_ids = fields.Many2many(
string="Allowed Partner Categories",
comodel_name="res.partner.category",
relation="prt_user_partner_category_rel",
column1="user_id",
column2="category_id",
)

view_all_contacts = fields.Boolean(
string="View All Contacts",
help="If checked, this user will be able to view all contacts without restrictions.",
)



الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
0
يناير 25
1402
7
ديسمبر 24
8660
0
يوليو 24
1374
1
أبريل 24
2037
0
مايو 24
1805