From 0df86bd5e24187b4ba1d0221c8e4ed5a60500314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Sat, 22 May 2021 09:18:54 +0200 Subject: [PATCH] [IMP] Multiproperty checks --- pms/models/account_bank_statement.py | 4 +++- pms/models/account_journal.py | 1 + pms/models/pms_availability.py | 1 + pms/models/pms_availability_plan_rule.py | 1 + pms/models/pms_checkin_partner.py | 1 + pms/models/pms_folio.py | 1 + pms/models/pms_reservation.py | 4 ++-- pms/models/pms_reservation_line.py | 3 ++- pms/models/pms_room_closure_reason.py | 2 -- pms/models/pms_room_type.py | 1 - pms/models/pms_room_type_class.py | 1 + pms/models/pms_service.py | 1 + pms/models/pms_service_line.py | 1 + pms/views/account_bank_statement_views.xml | 2 +- pms/wizards/wizard_folio.py | 1 + pms/wizards/wizard_folio_availability.py | 2 +- pms/wizards/wizard_massive_changes.py | 1 + .../wizard_split_join_swap_reservation.py | 19 ++++++++++--------- .../wizard_split_join_swap_reservation.xml | 2 +- 19 files changed, 30 insertions(+), 19 deletions(-) diff --git a/pms/models/account_bank_statement.py b/pms/models/account_bank_statement.py index 26bb1222b..ffd9205a1 100644 --- a/pms/models/account_bank_statement.py +++ b/pms/models/account_bank_statement.py @@ -3,12 +3,14 @@ from odoo import fields, models class AccountBankStatement(models.Model): _inherit = "account.bank.statement" + _check_pms_properties_auto = True - property_id = fields.Many2one( + pms_property_id = fields.Many2one( string="Property", help="Properties with access to the element", copy=False, comodel_name="pms.property", + check_pms_properties=True, ) company_id = fields.Many2one( string="Company", diff --git a/pms/models/account_journal.py b/pms/models/account_journal.py index 841b18ed4..3c9d3470d 100644 --- a/pms/models/account_journal.py +++ b/pms/models/account_journal.py @@ -3,6 +3,7 @@ from odoo import fields, models class AccountJournal(models.Model): _inherit = "account.journal" + _check_pms_properties_auto = True pms_property_ids = fields.Many2many( string="Properties", diff --git a/pms/models/pms_availability.py b/pms/models/pms_availability.py index 81f58ad8d..cfc47107a 100644 --- a/pms/models/pms_availability.py +++ b/pms/models/pms_availability.py @@ -31,6 +31,7 @@ class PmsAvailability(models.Model): required=True, comodel_name="pms.property", ondelete="restrict", + check_pms_properties=True, ) reservation_line_ids = fields.One2many( string="Reservation Lines", diff --git a/pms/models/pms_availability_plan_rule.py b/pms/models/pms_availability_plan_rule.py index e2408f533..6ad60d831 100644 --- a/pms/models/pms_availability_plan_rule.py +++ b/pms/models/pms_availability_plan_rule.py @@ -85,6 +85,7 @@ class PmsAvailabilityPlanRule(models.Model): ondelete="restrict", required=True, comodel_name="pms.property", + check_pms_properties=True, ) avail_id = fields.Many2one( string="Avail record", diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index 66e5f2139..8d1a846cf 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -49,6 +49,7 @@ class PmsCheckinPartner(models.Model): store=True, comodel_name="pms.property", related="folio_id.pms_property_id", + check_pms_properties=True, ) name = fields.Char( string="Name", diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index 8c25b74ae..0d66da77b 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -34,6 +34,7 @@ class PmsFolio(models.Model): comodel_name="pms.property", required=True, default=lambda self: self.env.user.get_active_property_ids()[0], + check_pms_properties=True, ) partner_id = fields.Many2one( string="Partner", diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index ffa72d376..f62d4d13b 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -139,6 +139,7 @@ class PmsReservation(models.Model): default=lambda self: self.env.user.get_active_property_ids()[0], related="folio_id.pms_property_id", comodel_name="pms.property", + check_pms_properties=True, ) reservation_line_ids = fields.One2many( string="Reservation Lines", @@ -650,10 +651,9 @@ class PmsReservation(models.Model): "reservation_line_ids.date", "reservation_line_ids.room_id", "reservation_line_ids.occupies_availability", - "overbooking", - "state", "preferred_room_id", "pricelist_id", + "pms_property_id", ) def _compute_allowed_room_ids(self): for reservation in self: diff --git a/pms/models/pms_reservation_line.py b/pms/models/pms_reservation_line.py index d327e2ec1..5f21b7067 100644 --- a/pms/models/pms_reservation_line.py +++ b/pms/models/pms_reservation_line.py @@ -54,6 +54,7 @@ class PmsReservationLine(models.Model): store=True, comodel_name="pms.property", related="reservation_id.pms_property_id", + check_pms_properties=True, ) date = fields.Date( string="Date", @@ -105,7 +106,7 @@ class PmsReservationLine(models.Model): ) impacts_quota = fields.Integer( string="Impacts quota", - help="", + help="This line has been taken into account in the avail quota", readonly=False, store=True, compute="_compute_impact_quota", diff --git a/pms/models/pms_room_closure_reason.py b/pms/models/pms_room_closure_reason.py index 9d96c53b9..a1135c623 100644 --- a/pms/models/pms_room_closure_reason.py +++ b/pms/models/pms_room_closure_reason.py @@ -6,7 +6,6 @@ from odoo import fields, models class RoomClosureReason(models.Model): _name = "room.closure.reason" _description = "Cause of out of service" - _check_pms_properties_auto = True name = fields.Char( string="Name", @@ -23,7 +22,6 @@ class RoomClosureReason(models.Model): column1="room_closure_reason_type_id", column2="pms_property_id", ondelete="restrict", - check_pms_properties=True, ) description = fields.Text( string="Description", diff --git a/pms/models/pms_room_type.py b/pms/models/pms_room_type.py index ea627f8e9..f0bb28d61 100644 --- a/pms/models/pms_room_type.py +++ b/pms/models/pms_room_type.py @@ -31,7 +31,6 @@ class PmsRoomType(models.Model): required=True, delegate=True, ondelete="cascade", - # check_pms_properties=True, ) room_ids = fields.One2many( string="Rooms", diff --git a/pms/models/pms_room_type_class.py b/pms/models/pms_room_type_class.py index cd4df128e..179315ec7 100644 --- a/pms/models/pms_room_type_class.py +++ b/pms/models/pms_room_type_class.py @@ -16,6 +16,7 @@ class PmsRoomTypeClass(models.Model): _name = "pms.room.type.class" _description = "Room Type Class" _order = "sequence, name, default_code" + _check_pms_properties_auto = True name = fields.Char( string="Class Name", diff --git a/pms/models/pms_service.py b/pms/models/pms_service.py index 4c962ceb0..61b6835e7 100644 --- a/pms/models/pms_service.py +++ b/pms/models/pms_service.py @@ -78,6 +78,7 @@ class PmsService(models.Model): store=True, comodel_name="pms.property", related="folio_id.pms_property_id", + check_pms_properties=True, ) tax_ids = fields.Many2many( string="Taxes", diff --git a/pms/models/pms_service_line.py b/pms/models/pms_service_line.py index 687320751..d583d4c5f 100644 --- a/pms/models/pms_service_line.py +++ b/pms/models/pms_service_line.py @@ -47,6 +47,7 @@ class PmsServiceLine(models.Model): store=True, comodel_name="pms.property", related="service_id.pms_property_id", + check_pms_properties=True, ) date = fields.Date( string="Date", diff --git a/pms/views/account_bank_statement_views.xml b/pms/views/account_bank_statement_views.xml index 8b97d48a3..331a331db 100644 --- a/pms/views/account_bank_statement_views.xml +++ b/pms/views/account_bank_statement_views.xml @@ -5,7 +5,7 @@ - + diff --git a/pms/wizards/wizard_folio.py b/pms/wizards/wizard_folio.py index a5948fe72..29649f178 100644 --- a/pms/wizards/wizard_folio.py +++ b/pms/wizards/wizard_folio.py @@ -35,6 +35,7 @@ class FolioWizard(models.TransientModel): help="Property to which the folio belongs", default=lambda self: self._default_pms_property_id(), comodel_name="pms.property", + check_pms_properties=True, ) segmentation_ids = fields.Many2many( string="Segmentation", diff --git a/pms/wizards/wizard_folio_availability.py b/pms/wizards/wizard_folio_availability.py index 42ae946b3..e821ed3bd 100644 --- a/pms/wizards/wizard_folio_availability.py +++ b/pms/wizards/wizard_folio_availability.py @@ -81,7 +81,7 @@ class AvailabilityWizard(models.TransientModel): help="Board Service included in the room", comodel_name="pms.board.service.room.type", domain="[('pms_room_type_id','=',room_type_id)]", - tracking=True, + check_pms_properties=True, ) @api.depends("room_type_id", "checkin", "checkout") diff --git a/pms/wizards/wizard_massive_changes.py b/pms/wizards/wizard_massive_changes.py index 7ac68e466..3750fd328 100644 --- a/pms/wizards/wizard_massive_changes.py +++ b/pms/wizards/wizard_massive_changes.py @@ -16,6 +16,7 @@ class AvailabilityWizard(models.TransientModel): default=lambda self: self.env["pms.property"].browse( self.env.user.get_active_property_ids()[0] ), + check_pms_properties=True, ) massive_changes_on = fields.Selection( string="On", diff --git a/pms/wizards/wizard_split_join_swap_reservation.py b/pms/wizards/wizard_split_join_swap_reservation.py index abb1cc76d..a55d8a435 100644 --- a/pms/wizards/wizard_split_join_swap_reservation.py +++ b/pms/wizards/wizard_split_join_swap_reservation.py @@ -6,10 +6,11 @@ from odoo.exceptions import UserError class ReservationSplitJoinSwapWizard(models.TransientModel): _name = "pms.reservation.split.join.swap.wizard" - string = ("Operation",) - help = ("Operation to be applied on the reservation",) + operation = fields.Selection( - [ + string="Operation", + help="Operation to be applied on the reservation", + selection=[ ("swap", "Swap rooms"), ("split", "Split reservation"), ("join", "Join reservation"), @@ -45,7 +46,7 @@ class ReservationSplitJoinSwapWizard(models.TransientModel): if self._context.get("active_id") else False, ) - reservations = fields.Many2many( + reservation_ids = fields.Many2many( string="Reservations", readonly=False, store=True, @@ -100,7 +101,7 @@ class ReservationSplitJoinSwapWizard(models.TransientModel): ) @api.depends("checkin", "checkout", "room_source", "room_target") - def _compute_reservations(self): + def _compute_reservation_ids(self): for record in self: if record.checkin and record.checkout: reservation_ids = list() @@ -131,9 +132,9 @@ class ReservationSplitJoinSwapWizard(models.TransientModel): ) .sorted("rooms") ) - record.reservations = reservations + record.reservation_ids = reservations else: - record.reservations = False + record.reservation_ids = False @api.depends("reservation_id") def _compute_reservation_lines(self): @@ -160,7 +161,7 @@ class ReservationSplitJoinSwapWizard(models.TransientModel): def _compute_allowed_rooms_source(self): for record in self: record.allowed_rooms_sources = ( - record.reservations.reservation_line_ids.mapped("room_id") + record.reservation_ids.reservation_line_ids.mapped("room_id") ) @api.depends_context("default_operation") @@ -187,7 +188,7 @@ class ReservationSplitJoinSwapWizard(models.TransientModel): ( "id", "in", - record.reservations.reservation_line_ids.mapped( + record.reservation_ids.reservation_line_ids.mapped( "room_id" ).ids, ) diff --git a/pms/wizards/wizard_split_join_swap_reservation.xml b/pms/wizards/wizard_split_join_swap_reservation.xml index 3ad6051d7..129828822 100644 --- a/pms/wizards/wizard_split_join_swap_reservation.xml +++ b/pms/wizards/wizard_split_join_swap_reservation.xml @@ -66,7 +66,7 @@ class="col-12" attrs="{'invisible': [('operation','!=','swap')]}" > - +