mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[FIX] contract: remove groupby if it is in context + consistency between contract count and contract action
On the commercial entity, the count shows all contracts of child partners. However clicking on the action might show no contract, as the action only restricted the domain to the partner itself. We extract the domain into a function to share it in both cases. Co-authored by @Lopsanz
This commit is contained in:
@@ -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)",
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user