From 698f076d42c64d4a38cd480a0a73ae6840a75de5 Mon Sep 17 00:00:00 2001
From: Carmen Bianca BAKKER <carmen@coopiteasy.be>
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 <carmen@coopiteasy.be>
---
 .../models/resource_calendar.py                     | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/resource_multi_week_calendar/models/resource_calendar.py b/resource_multi_week_calendar/models/resource_calendar.py
index 525b25d8503..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):