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: