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.
|
|
# Copyright 2019 Open Source Integrators # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models
class TierValidation(models.AbstractModel): _inherit = "tier.validation"
@api.model def _get_under_validation_exceptions(self): """Extend for more field exceptions.""" res = super(TierValidation, self)._get_under_validation_exceptions() or [] ex_fields = ["categ_id", "state", "customer", "supplier", "excise_tax"] for val in ex_fields: res.append(val) return res
def validate_tier(self): super(TierValidation, self).validate_tier() # make sure to only work with res.partner object. if self._name != "res.partner": return for partner in self: rec = self.env["tier.review"].search( [("res_id", "=", partner.id), ("model", "=", "res.partner")] ) if rec and rec.status == "approved": partner.state = "approved"
# Need to override for Partner Tier Validation since can_review field # is set to True based only # if current user is a member of reviewer_ids. This can_review field # is used to enable or disable the boolean # field Is Customer / Is Vendor not only during the Validation process # but even if it is in Approved State. @api.depends("review_ids") def _compute_reviewer_ids(self): if str(self.__class__) == "<class 'odoo.api.res.partner'>": for rec in self: rec.reviewer_ids = rec.review_ids.filtered( lambda r: r.status in ("pending", "approved") ).mapped("reviewer_ids") else: for rec in self: rec.reviewer_ids = rec.review_ids.filtered( lambda r: r.status == "pending" ).mapped("reviewer_ids")
def request_validation(self): res = super().request_validation() for rec in self.filtered(lambda x: x._name == "res.partner"): rec.message_subscribe( partner_ids=[ self.env.user.partner_id.id, ] ) return res
|