diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 39f7ab324..8109593ae 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -37,9 +37,6 @@ class PmsReservation(models.Model): "empty if reservation is splitted", copy=False, comodel_name="pms.room", - compute="_compute_preferred_room_id", - store=True, - readonly=False, domain="[('id', 'in', allowed_room_ids)]", ondelete="restrict", tracking=True, @@ -989,20 +986,14 @@ class PmsReservation(models.Model): @api.depends("reservation_line_ids", "reservation_line_ids.room_id") def _compute_splitted(self): + # REVIEW: Updating preferred_room_id here avoids cyclical dependency for reservation in self: room_ids = reservation.reservation_line_ids.mapped("room_id.id") if len(room_ids) > 1: reservation.splitted = True + reservation.preferred_room_id = False else: reservation.splitted = False - - @api.depends("splitted") - def _compute_preferred_room_id(self): - for reservation in self: - room_ids = reservation.reservation_line_ids.mapped("room_id.id") - if reservation.splitted: - reservation.preferred_room_id = False - elif not reservation.preferred_room_id: if room_ids: reservation.preferred_room_id = room_ids[0] @@ -1126,13 +1117,11 @@ class PmsReservation(models.Model): @api.depends("reservation_line_ids", "reservation_line_ids.room_id") def _compute_rooms(self): self.rooms = False - for reservation in self: if reservation.splitted: reservation.rooms = ", ".join( [r for r in reservation.reservation_line_ids.mapped("room_id.name")] ) - reservation.preferred_room_id = False else: reservation.rooms = reservation.preferred_room_id.name diff --git a/pms/models/pms_reservation_line.py b/pms/models/pms_reservation_line.py index 1ee2b874d..f3a0632ad 100644 --- a/pms/models/pms_reservation_line.py +++ b/pms/models/pms_reservation_line.py @@ -157,6 +157,7 @@ class PmsReservationLine(models.Model): for line in self.filtered("reservation_id.room_type_id").sorted( key=lambda r: (r.reservation_id, r.date) ): + _logger.info("LINE ROOM ID") reservation = line.reservation_id if reservation.preferred_room_id != line.room_id or not line.room_id: # If reservation has a preferred_room_id We can allow