diff --git a/hotel_node_master/__manifest__.py b/hotel_node_master/__manifest__.py index ab8d8f1b7..a936b4ebe 100644 --- a/hotel_node_master/__manifest__.py +++ b/hotel_node_master/__manifest__.py @@ -18,6 +18,7 @@ 'views/hotel_node.xml', 'views/hotel_node_user.xml', 'views/hotel_node_group.xml', + 'views/hotel_node_group_remote.xml', 'views/hotel_node_room_type.xml', 'views/inherited_res_partner_views.xml', 'security/hotel_node_security.xml', diff --git a/hotel_node_master/models/__init__.py b/hotel_node_master/models/__init__.py index 9d741ca83..e7d98eb6e 100644 --- a/hotel_node_master/models/__init__.py +++ b/hotel_node_master/models/__init__.py @@ -3,6 +3,7 @@ from . import hotel_node from . import hotel_node_user from . import hotel_node_group +from . import hotel_node_group_remote from . import hotel_node_room from . import hotel_node_room_type from . import inherited_res_partner diff --git a/hotel_node_master/models/hotel_node.py b/hotel_node_master/models/hotel_node.py index f6863cbb4..f30f87b9f 100644 --- a/hotel_node_master/models/hotel_node.py +++ b/hotel_node_master/models/hotel_node.py @@ -42,8 +42,10 @@ class HotelNode(models.Model): user_ids = fields.One2many('hotel.node.user', 'node_id', 'Users with access to this hotel') - group_ids = fields.Many2many('hotel.node.group', 'hotel_node_group_rel', 'node_id', 'group_id', - string='Access Groups') + # group_ids = fields.Many2many('hotel.node.group', 'hotel_node_group_rel', 'node_id', 'group_id', + # string='Access Groups') + group_ids = fields.One2many('hotel.node.group.remote', 'node_id', + 'Access Groups') room_type_ids = fields.One2many('hotel.node.room.type', 'node_id', 'Rooms Type in this hotel') diff --git a/hotel_node_master/models/hotel_node_group.py b/hotel_node_master/models/hotel_node_group.py index 9fbb313f2..a1100b0d2 100644 --- a/hotel_node_master/models/hotel_node_group.py +++ b/hotel_node_master/models/hotel_node_group.py @@ -20,8 +20,10 @@ class HotelNodeGroup(models.Model): help="Gives the sequence order when displaying the list of Groups.") name = fields.Char(required=True, translate=True) - node_ids = fields.Many2many('project.project', 'hotel_node_group_rel', 'group_id', 'node_id', - string='Hotels') + # node_ids = fields.Many2many('project.project', 'hotel_node_group_rel', 'group_id', 'node_id', + # string='Hotels') + remote_group_ids = fields.One2many('hotel.node.group.remote', 'group_id', + 'Access Groups') user_ids = fields.Many2many('hotel.node.user', 'hotel_node_user_group_rel', 'group_id', 'user_id', string='Users') # xml_id represents the complete module.name, xml_id = ("%s.%s" % (data['module'], data['name'])) @@ -32,5 +34,6 @@ class HotelNodeGroup(models.Model): _sql_constraints = [ ('xml_id_uniq', 'unique (odoo_version, xml_id)', - '_(The external identifier of the group must be unique within an Odoo version!') + 'The external identifier of the group must be unique within an Odoo version!') ] + diff --git a/hotel_node_master/models/hotel_node_group_remote.py b/hotel_node_master/models/hotel_node_group_remote.py new file mode 100644 index 000000000..768b2b1f9 --- /dev/null +++ b/hotel_node_master/models/hotel_node_group_remote.py @@ -0,0 +1,25 @@ +# Copyright 2018 Pablo Q. Barriuso +# Copyright 2018 Alexandre Díaz +# Copyright 2018 Dario Lodeiros +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging +from odoo import models, fields, api, _ + +_logger = logging.getLogger(__name__) + + +class HotelNodeGroupRemote(models.Model): + _name = "hotel.node.group.remote" + _description = "Remote Access Groups IDs" + + node_id = fields.Many2one('project.project', 'Hotel', required=True) + group_id = fields.Many2one('hotel.node.group', 'Group', require=True) + name = fields.Char(related='group_id.name') + remote_group_id = fields.Integer(require=True, copy=False, readonly=True, + help="ID of the target record in the remote database") + + _sql_constraints = [ + ('node_remote_group_id_uniq', 'unique (node_id, remote_group_id)', + 'The remote identifier of the group must be unique within a Node!') + ] diff --git a/hotel_node_master/views/hotel_node_group_remote.xml b/hotel_node_master/views/hotel_node_group_remote.xml new file mode 100644 index 000000000..c8c56c1d6 --- /dev/null +++ b/hotel_node_master/views/hotel_node_group_remote.xml @@ -0,0 +1,14 @@ + + + + hotel.node.group.remote.tree + hotel.node.group.remote + + + + + + + + +