[WIP] Synchronize manually from a remote node

This commit is contained in:
Pablo
2018-10-11 19:12:33 +02:00
parent 924bbcc38b
commit ed43be57b0
3 changed files with 22 additions and 1 deletions

View File

@@ -146,6 +146,12 @@ class HotelNode(models.Model):
user_ids = []
for user in remote_users:
group_ids = []
# retrieve the remote external ID(s) of group records
remote_xml_ids = noderpc.env['res.groups'].browse(user['groups_id']).get_external_id()
for key, value in remote_xml_ids.items():
group_ids.append(gui_ids[xml_ids.index(value)])
if user['id'] in remote_ids:
idx = remote_ids.index(user['id'])
user_ids.append((1, master_ids[idx], {
@@ -154,6 +160,11 @@ class HotelNode(models.Model):
'email': user['email'],
'active': user['active'],
'remote_user_id': user['id'],
'group_ids': [[
6,
False,
group_ids
]]
}))
else:
partner = self.env['res.partner'].search([('email', '=', user['email'])])
@@ -163,7 +174,6 @@ class HotelNode(models.Model):
'is_company': False,
'email': user['email'],
})
user_ids.append((0, 0, {
'name': user['name'],
'login': user['login'],
@@ -171,6 +181,11 @@ class HotelNode(models.Model):
'active': user['active'],
'remote_user_id': user['id'],
'partner_id': partner.id,
'group_ids': [[
6,
False,
group_ids
]]
}))
vals.update({'user_ids': user_ids})

View File

@@ -119,6 +119,7 @@ class HotelNodeUser(models.Model):
:param dict vals: a dictionary of fields to update and the value to set on them.
:raise: ValidationError
"""
for rec in self:
if 'node_id' in vals and vals['node_id'] != rec.node_id.id:
msg = _("Changing a user between nodes is not allowed. Please create a new user instead.")
@@ -143,6 +144,9 @@ class HotelNodeUser(models.Model):
remote_vals = {}
if 'login' in vals:
remote_vals.update({'login': vals['login']})
if 'active' in vals:
remote_vals.update({'active': vals['active']})

View File

@@ -12,3 +12,5 @@ class ResPartner(models.Model):
# As res.partner has already a `user_ids` field, you can not use that name in this inheritance
node_user_ids = fields.One2many('hotel.node.user', 'partner_id',
'Users associated to this partner')
# TODO Override write for updating in remote nodes