# Copyright 2020 ACSONE SA/NV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from collections import defaultdict from odoo import fields, models class ResPartner(models.Model): _inherit = "res.partner" time_window_ids = fields.One2many( comodel_name="test.partner.time.window", inverse_name="partner_id", string="Time windows", ) def get_delivery_windows(self, day_name): """ Return the list of delivery windows by partner id for the given day :param day: The day name (see time.weekday, ex: 0,1,2,...) :return: dict partner_id:[time_window_ids, ] """ weekday_id = self.env["time.weekday"]._get_id_by_name(day_name) res = defaultdict(list) windows = self.env["test.partner.time.window"].search( [ ("partner_id", "in", self.ids), ("time_window_weekday_ids", "in", weekday_id), ] ) for window in windows: res[window.partner_id.id].append(window) return res