From 4b67c3bf1c5550bf2f32b26777461f6391732c22 Mon Sep 17 00:00:00 2001 From: Pablo Date: Fri, 8 Mar 2019 00:55:46 +0100 Subject: [PATCH] [UPD] store computed fields --- hotel/models/hotel_room_type.py | 2 +- .../models/hotel_room_type/common.py | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/hotel/models/hotel_room_type.py b/hotel/models/hotel_room_type.py index f2f369c28..d9d546f8d 100644 --- a/hotel/models/hotel_room_type.py +++ b/hotel/models/hotel_room_type.py @@ -44,7 +44,7 @@ class HotelRoomType(models.Model): _sql_constraints = [('code_type_unique', 'unique(code_type)', 'code must be unique!')] # total number of rooms in this type - total_rooms_count = fields.Integer(compute='_compute_total_rooms') + total_rooms_count = fields.Integer(compute='_compute_total_rooms', store=True) @api.depends('room_ids') def _compute_total_rooms(self): diff --git a/hotel_channel_connector/models/hotel_room_type/common.py b/hotel_channel_connector/models/hotel_room_type/common.py index 3113eee72..758a88bf2 100644 --- a/hotel_channel_connector/models/hotel_room_type/common.py +++ b/hotel_channel_connector/models/hotel_room_type/common.py @@ -95,6 +95,9 @@ class ChannelHotelRoomType(models.Model): for record in self: if record.ota_capacity < 1: raise ValidationError(_("OTA's capacity can't be less than one")) + if record.ota_capacity > record.capacity: + raise ValidationError(_("OTA's capacity can't be greater than room type capacity")) + @api.multi @api.constrains('channel_short_code') @@ -138,17 +141,13 @@ class HotelRoomType(models.Model): inverse_name='odoo_id', string='Hotel Channel Connector Bindings') - capacity = fields.Integer("Capacity", compute="_compute_capacity") + capacity = fields.Integer("Capacity", compute="_compute_capacity", store=True) - @api.multi + @api.depends('room_ids') def _compute_capacity(self): for record in self: record.capacity = record.get_capacity() - @api.onchange('room_ids') - def _onchange_room_ids(self): - self._compute_capacity() - @api.multi def get_restrictions(self, date, restriction_plan_id): self.ensure_one() @@ -201,9 +200,6 @@ class BindingHotelRoomTypeListener(Component): for binding in record.channel_bind_ids: binding.modify_room() - # @skip_if(lambda self, record, **kwargs: self.no_connector_export(record)) - # def on_record_create(self, record, fields=None): - # record.create_bindings() class ChannelBindingRoomTypeListener(Component): _name = 'channel.binding.room.type.listener'