mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX] Preferred room id compute (#79)
This commit is contained in:
@@ -37,9 +37,6 @@ class PmsReservation(models.Model):
|
|||||||
"empty if reservation is splitted",
|
"empty if reservation is splitted",
|
||||||
copy=False,
|
copy=False,
|
||||||
comodel_name="pms.room",
|
comodel_name="pms.room",
|
||||||
compute="_compute_preferred_room_id",
|
|
||||||
store=True,
|
|
||||||
readonly=False,
|
|
||||||
domain="[('id', 'in', allowed_room_ids)]",
|
domain="[('id', 'in', allowed_room_ids)]",
|
||||||
ondelete="restrict",
|
ondelete="restrict",
|
||||||
tracking=True,
|
tracking=True,
|
||||||
@@ -989,20 +986,14 @@ class PmsReservation(models.Model):
|
|||||||
|
|
||||||
@api.depends("reservation_line_ids", "reservation_line_ids.room_id")
|
@api.depends("reservation_line_ids", "reservation_line_ids.room_id")
|
||||||
def _compute_splitted(self):
|
def _compute_splitted(self):
|
||||||
|
# REVIEW: Updating preferred_room_id here avoids cyclical dependency
|
||||||
for reservation in self:
|
for reservation in self:
|
||||||
room_ids = reservation.reservation_line_ids.mapped("room_id.id")
|
room_ids = reservation.reservation_line_ids.mapped("room_id.id")
|
||||||
if len(room_ids) > 1:
|
if len(room_ids) > 1:
|
||||||
reservation.splitted = True
|
reservation.splitted = True
|
||||||
|
reservation.preferred_room_id = False
|
||||||
else:
|
else:
|
||||||
reservation.splitted = False
|
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:
|
if room_ids:
|
||||||
reservation.preferred_room_id = room_ids[0]
|
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")
|
@api.depends("reservation_line_ids", "reservation_line_ids.room_id")
|
||||||
def _compute_rooms(self):
|
def _compute_rooms(self):
|
||||||
self.rooms = False
|
self.rooms = False
|
||||||
|
|
||||||
for reservation in self:
|
for reservation in self:
|
||||||
if reservation.splitted:
|
if reservation.splitted:
|
||||||
reservation.rooms = ", ".join(
|
reservation.rooms = ", ".join(
|
||||||
[r for r in reservation.reservation_line_ids.mapped("room_id.name")]
|
[r for r in reservation.reservation_line_ids.mapped("room_id.name")]
|
||||||
)
|
)
|
||||||
reservation.preferred_room_id = False
|
|
||||||
else:
|
else:
|
||||||
reservation.rooms = reservation.preferred_room_id.name
|
reservation.rooms = reservation.preferred_room_id.name
|
||||||
|
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ class PmsReservationLine(models.Model):
|
|||||||
for line in self.filtered("reservation_id.room_type_id").sorted(
|
for line in self.filtered("reservation_id.room_type_id").sorted(
|
||||||
key=lambda r: (r.reservation_id, r.date)
|
key=lambda r: (r.reservation_id, r.date)
|
||||||
):
|
):
|
||||||
|
_logger.info("LINE ROOM ID")
|
||||||
reservation = line.reservation_id
|
reservation = line.reservation_id
|
||||||
if reservation.preferred_room_id != line.room_id or not line.room_id:
|
if reservation.preferred_room_id != line.room_id or not line.room_id:
|
||||||
# If reservation has a preferred_room_id We can allow
|
# If reservation has a preferred_room_id We can allow
|
||||||
|
|||||||
Reference in New Issue
Block a user