server-tools/test_base_time_window/models/res_partner.py

37 lines
1.1 KiB
Python

# 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