Files
Odoo-18.0-20251222/sale_wishlist/models/res_partner.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

43 lines
1.3 KiB
Python
Executable File

# Copyright 2019 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResPartner(models.Model):
_inherit = "res.partner"
wishlists_count = fields.Integer(
compute="_compute_wishlists_count", string="# Wishlists"
)
def _compute_wishlists_count(self):
# do just one query for all records
data = self.env["product.set"].read_group(
self._wishlist_domain(), ["partner_id"], ["partner_id"]
)
data_mapped = {
count["partner_id"][0]: count["partner_id_count"] for count in data
}
for rec in self:
rec.wishlists_count = data_mapped.get(rec.id, 0)
def _wishlist_domain(self):
return [("partner_id", "in", self.ids), ("typology", "=", "wishlist")]
def action_view_wishlists(self):
self.ensure_one()
xmlid = "product_set.act_open_product_set_view"
action = self.env["ir.actions.act_window"]._for_xml_id(xmlid)
action.update(
{
"name": self.env._("Wishlists"),
"domain": self._wishlist_domain(),
"context": {
"default_typology": "wishlist",
"default_partner_id": self.id,
},
}
)
return action