[REF] Change pms_room_type (m2o->m2m) pms_property

This commit is contained in:
Darío Lodeiros
2020-10-23 12:12:08 +02:00
parent 392502cfd5
commit 38abcaa2c0
9 changed files with 17 additions and 64 deletions

View File

@@ -310,16 +310,16 @@
<!-- pms.room.type -->
<record id="demo_pms_room_type_0" model="pms.room.type">
<field name="pms_property_ids" eval="[(4, ref('pms.demo_pms_property'))]" />
<field name="name">Prop. Demo Economic</field>
<field name="code_type">ECO</field>
<field name="name">Prop. Demo Suite</field>
<field name="code_type">SUI</field>
<field name="list_price">21.00</field>
<field name="class_id" ref="pms_room_type_class_0" />
<field name="room_amenity_ids" eval="[(4, ref('pms_amenity_0'))]" />
</record>
<record id="demo_pms_room_type_1" model="pms.room.type">
<field name="pms_property_ids" eval="[(4, ref('pms.demo_pms_property'))]" />
<field name="name">Prop. Demo Single</field>
<field name="code_type">SNG</field>
<field name="name">Prop. Demo Views</field>
<field name="code_type">VIE</field>
<field name="list_price">20.00</field>
<field name="class_id" ref="pms_room_type_class_0" />
<field

View File

@@ -12,6 +12,7 @@
<field name="board_service_room_id" ref="pms_board_service_room_2" />
</record>
<record id="pms_reservation_1" model="pms.reservation">
<field name="partner_id" ref="main_pms_property" />
<field name="reservation_type">"out"</field>
<field name="room_type_id" ref="pms_room_type_0" />
<field name="checkin" eval="DateTime.today() + timedelta(-3)" />

View File

@@ -48,7 +48,7 @@ class PmsBoardServiceRoomType(models.Model):
"pms.board.service.room.type.line", "pms_board_service_room_type_id"
)
pms_property_id = fields.Many2one(
"pms.property", related="pms_room_type_id.pms_property_id"
"pms.property",
)
price_type = fields.Selection(
[("fixed", "Fixed"), ("percent", "Percent")],

View File

@@ -30,7 +30,6 @@ class PmsProperty(models.Model):
"user_id",
string="Accepted Users",
)
room_type_ids = fields.Many2many("pms.room.type", "pms_property_ids", "Room Types")
room_ids = fields.One2many("pms.room", "pms_property_id", "Rooms")
default_pricelist_id = fields.Many2one(
"product.pricelist",

View File

@@ -68,46 +68,6 @@ class PmsRoom(models.Model):
)
)
# CRUD methods
@api.model
def create(self, vals):
if (
vals.get("pms_property_id", self.env.user.pms_property_id.id)
!= self.env["pms.room.type"].browse(vals["room_type_id"]).pms_property_id.id
):
raise ValidationError(
_(
"A room cannot be created in a room type \
of another property."
)
)
return super().create(vals)
def write(self, vals):
for record in self:
if (
vals.get("pms_property_id", record.pms_property_id.id)
!= record.pms_property_id.id
):
raise ValidationError(
_("A room cannot be changed to another property.")
+ " "
+ _("%s does not belong to %s.") % (record, record.pms_property_id)
)
room_type_ids = (
self.env["pms.room.type"]
.search([("pms_property_id", "=", record.pms_property_id.id)])
.ids
)
if vals.get("room_type_id", record.room_type_id.id) not in room_type_ids:
raise ValidationError(
_(
"A room cannot be changed to a room type of \
another property or unlinked from a room type."
)
)
return super().write(vals)
# Business methods
def get_capacity(self, extra_bed=0):

View File

@@ -17,11 +17,6 @@ class PmsRoomType(models.Model):
_inherits = {"product.product": "product_id"}
_order = "sequence, code_type, name"
# Default methods
@api.model
def _get_default_pms_property(self):
return self.env.user.pms_property_id
# Fields declaration
product_id = fields.Many2one(
"product.product",
@@ -30,12 +25,13 @@ class PmsRoomType(models.Model):
delegate=True,
ondelete="cascade",
)
pms_property_id = fields.Many2one(
pms_property_ids = fields.Many2many(
"pms.property",
"Property",
required=True,
"pms_property_room_type_rel",
"room_type_id",
"pms_property_id",
ondelete="restrict",
default=_get_default_pms_property,
string="Properties",
)
room_ids = fields.One2many("pms.room", "room_type_id", "Rooms")
class_id = fields.Many2one("pms.room.type.class", "Property Type Class")
@@ -77,8 +73,8 @@ class PmsRoomType(models.Model):
_sql_constraints = [
(
"code_type_pms_unique",
"unique(code_type, pms_property_id)",
"Room Type Code must be unique by Property!",
"unique(code_type)",
"Room Type Code must be unique",
),
]

View File

@@ -20,11 +20,9 @@ class PmsSharedRoom(models.Model):
ondelete="restrict",
domain=[("shared_room", "=", True)],
)
pms_property_id = fields.Many2one(
# TODO: properties relation
pms_property_ids = fields.Many2many(
"pms.property",
store=True,
readonly=True,
related="room_type_id.pms_property_id",
)
floor_id = fields.Many2one(
"pms.floor",

View File

@@ -43,7 +43,6 @@
</page>
<page string="Rooms" name="property_rooms">
<group>
<field name="room_type_ids" />
<field name="room_ids" />
</group>
</page>

View File

@@ -27,7 +27,7 @@
<field name="class_id" />
</group>
<group>
<field name="pms_property_ids" invisible="1" />
<field name="pms_property_ids" widget="many2many_tags" />
<field
name="list_price"
widget='monetary'
@@ -82,7 +82,7 @@
<field name="arch" type="xml">
<tree string=" Property Room Type">
<field name="sequence" widget="handle" />
<field name="pms_property_ids" />
<field name="pms_property_ids" widget="many2many_tags" />
<field name="name" />
<field name="code_type" />
<field name="list_price" />