You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.4 KiB
39 lines
1.4 KiB
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
import logging
|
|
from odoo import fields, models
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
"""Adds last name and first name; name becomes a stored function field."""
|
|
_inherit = 'res.partner'
|
|
|
|
def _compute_is_favorite(self):
|
|
for partner in self:
|
|
partner.is_favorite = self.env.user in partner.favorite_user_ids
|
|
|
|
def _inverse_is_favorite(self):
|
|
favorite_partners = not_fav_partners = self.env['res.partner'].sudo()
|
|
for partner in self:
|
|
if self.env.user in partner.favorite_user_ids:
|
|
favorite_partners |= partner
|
|
else:
|
|
not_fav_partners |= partner
|
|
|
|
# partner User has no write access for partner.
|
|
not_fav_partners.write({'favorite_user_ids': [(4, self.env.uid)]})
|
|
favorite_partners.write({'favorite_user_ids': [(3, self.env.uid)]})
|
|
|
|
def _get_default_favorite_user_ids(self):
|
|
return [(6, 0, [self.env.uid])]
|
|
|
|
favorite_user_ids = fields.Many2many(
|
|
'res.users', 'partner_favorite_user_rel', 'partner_id', 'user_id',
|
|
default=_get_default_favorite_user_ids,
|
|
string='Members')
|
|
is_favorite = fields.Boolean(
|
|
compute='_compute_is_favorite',
|
|
inverse='_inverse_is_favorite',
|
|
string='Show Favorite Partner',
|
|
help="Display this partner with favorite filter")
|