From 3d53dbf3ee1f9295d37ded2ad8c6195504455999 Mon Sep 17 00:00:00 2001 From: Pablo Date: Fri, 9 Nov 2018 18:43:38 +0100 Subject: [PATCH] [WIP] Fix Room Type Listener and Binding external_id --- hotel_node_master/components/backend_adapter.py | 7 ++++--- hotel_node_master/models/hotel_room_type/common.py | 2 +- hotel_node_master/models/hotel_room_type/exporter.py | 4 ++-- hotel_node_master/models/hotel_room_type/importer.py | 9 +++++---- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/hotel_node_master/components/backend_adapter.py b/hotel_node_master/components/backend_adapter.py index c8367d370..7fbb884f1 100644 --- a/hotel_node_master/components/backend_adapter.py +++ b/hotel_node_master/components/backend_adapter.py @@ -78,7 +78,6 @@ class HotelNodeInterfaceAdapter(AbstractComponent): ) return node_server.server - class HotelNodeAdapter(AbstractComponent): _name = 'hotel.node.adapter' _inherit = 'hotel.node.interface.adapter' @@ -91,13 +90,15 @@ class HotelNodeAdapter(AbstractComponent): def modify_room_type(self, room_type_id, name, rooms_id): return self._server.env['hotel.room.type'].write( - room_type_id, + [room_type_id], { 'name': name }) def delete_room_type(self, room_type_id): - return self._server.env['hotel.room.type'].unlink(room_type_id) + _logger.warning("_delete_room_type(%s, room_type_id) is not yet implemented.", self) + return True + # return self._server.env['hotel.room.type'].unlink(room_type_id) def fetch_room_types(self): return self._server.env['hotel.room.type'].search_read( diff --git a/hotel_node_master/models/hotel_room_type/common.py b/hotel_node_master/models/hotel_room_type/common.py index 0147b85af..d1c8f0774 100644 --- a/hotel_node_master/models/hotel_room_type/common.py +++ b/hotel_node_master/models/hotel_room_type/common.py @@ -68,7 +68,7 @@ class NodeRoomTypeAdapter(Component): class NodeBindingRoomTypeListener(Component): _name = 'node.binding.room.type.listener' _inherit = 'base.connector.listener' - _apply_on = ['node.hotel.room.type'] + _apply_on = ['node.room.type'] @skip_if(lambda self, record, **kwargs: self.no_connector_export(record)) def on_record_create(self, record, fields=None): diff --git a/hotel_node_master/models/hotel_room_type/exporter.py b/hotel_node_master/models/hotel_room_type/exporter.py index b812c1d0a..0a506fa6f 100644 --- a/hotel_node_master/models/hotel_room_type/exporter.py +++ b/hotel_node_master/models/hotel_room_type/exporter.py @@ -15,14 +15,14 @@ class NodeRoomTypeExporter(Component): @api.model def modify_room_type(self, binding): return self.backend_adapter.modify_room_type( - binding.room_type_id, + binding.external_id, binding.name, binding.room_ids ) @api.model def delete_room_type(self, binding): - return self.backend_adapter.delete_room_type(binding.room_type_id) + return self.backend_adapter.delete_room_type(binding.external_id) @api.model def create_room_type(self, binding): diff --git a/hotel_node_master/models/hotel_room_type/importer.py b/hotel_node_master/models/hotel_room_type/importer.py index c6e7d9a00..2013622ae 100644 --- a/hotel_node_master/models/hotel_room_type/importer.py +++ b/hotel_node_master/models/hotel_room_type/importer.py @@ -23,12 +23,13 @@ class HotelRoomTypeImporter(Component): node_room_type_obj = self.env['node.room.type'] for rec in results: map_record = room_type_mapper.map_record(rec) - room_bind = node_room_type_obj.search([('external_id', '=', rec['id'])], + room_type = node_room_type_obj.search([('external_id', '=', rec['id'])], limit=1) - if room_bind: - room_bind.write(map_record.values()) + # NEED REVIEW Import a record triggers a room_type.write / room_type.create back to the node + if room_type: + room_type.write(map_record.values()) else: - room_bind.create(map_record.values(for_create=True)) + room_type.create(map_record.values(for_create=True)) class NodeRoomTypeImportMapper(Component):