From 05e4d5edfb0a6b43bc845a8a67c07afe56143237 Mon Sep 17 00:00:00 2001 From: Carmen Bianca BAKKER Date: Tue, 3 Sep 2024 11:14:54 +0200 Subject: [PATCH] [IMP] resource_multi_week_calendar: Add convenience function I need this elsewhere. It _technically_ reduces performance by doing the same calculation twice, but this module is horrible as pertains to performance in any case. Signed-off-by: Carmen Bianca BAKKER --- .../models/resource_calendar.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/resource_multi_week_calendar/models/resource_calendar.py b/resource_multi_week_calendar/models/resource_calendar.py index 20c1c177226..3bb93daa30c 100644 --- a/resource_multi_week_calendar/models/resource_calendar.py +++ b/resource_multi_week_calendar/models/resource_calendar.py @@ -144,6 +144,15 @@ def _get_week_number(self, day=None): ) return (weeks_since_epoch % family_size) + 1 + def _get_calendar(self, day=None): + self.ensure_one() + if not self.is_multi_week: + return self + week_number = self._get_week_number(day=day) + return self.family_calendar_ids.filtered( + lambda item: item.week_number == week_number + ) + @api.depends( "multi_week_epoch_date", "week_number", @@ -153,9 +162,7 @@ def _compute_current_week(self): for calendar in self: current_week_number = calendar._get_week_number() calendar.current_week_number = current_week_number - calendar.current_calendar_id = calendar.family_calendar_ids.filtered( - lambda item: item.week_number == current_week_number - ) + calendar.current_calendar_id = calendar._get_calendar() @api.constrains("parent_calendar_id", "child_calendar_ids") def _check_child_is_not_parent(self): @@ -215,7 +222,6 @@ def _split_into_weeks(self, start_dt, end_dt): # Move to the next week (start of next Monday) current_start = current_end - def _attendance_intervals(self, start_dt, end_dt, resource=None): self.ensure_one() if not self.is_multi_week: