diff --git a/contract/__manifest__.py b/contract/__manifest__.py index 72704c2d7..c06dce504 100644 --- a/contract/__manifest__.py +++ b/contract/__manifest__.py @@ -11,7 +11,7 @@ { "name": "Recurring - Contracts Management", - "version": "13.0.2.3.3", + "version": "13.0.2.3.5", "category": "Contract Management", "license": "AGPL-3", "author": "Tecnativa, ACSONE SA/NV, Odoo Community Association (OCA)", diff --git a/contract/models/res_partner.py b/contract/models/res_partner.py index bbfda4a74..6b1175e4e 100644 --- a/contract/models/res_partner.py +++ b/contract/models/res_partner.py @@ -17,10 +17,14 @@ class ResPartner(models.Model): comodel_name="contract.contract", inverse_name="partner_id", string="Contracts", ) + def _get_partner_contract_domain(self): + self.ensure_one() + return [("partner_id", "child_of", self.ids)] + def _compute_contract_count(self): contract_model = self.env["contract.contract"] fetch_data = contract_model.read_group( - [("partner_id", "child_of", self.ids)], + self._get_partner_contract_domain(), ["partner_id", "contract_type"], ["partner_id", "contract_type"], lazy=False, @@ -50,14 +54,11 @@ class ResPartner(models.Model): contract_type = self._context.get("contract_type") res = self._get_act_window_contract_xml(contract_type) - res.update( - context=dict( - self.env.context, - search_default_partner_id=self.id, - default_partner_id=self.id, - default_pricelist_id=self.property_product_pricelist.id, - ), - ) + action_context = {k: v for k, v in self.env.context.items() if k != "group_by"} + action_context["domain"] = self._get_partner_contract_domain() + action_context["default_partner_id"] = self.id + action_context["default_pricelist_id"] = self.property_product_pricelist.id + res["context"] = action_context return res def _get_act_window_contract_xml(self, contract_type):