diff --git a/addons/note/models/res_users.py b/addons/note/models/res_users.py index 0623a3d7a8a..a2780f865f9 100644 --- a/addons/note/models/res_users.py +++ b/addons/note/models/res_users.py @@ -12,13 +12,13 @@ class Users(models.Model): _name = 'res.users' _inherit = ['res.users'] - @api.model - def create(self, values): - user = super(Users, self).create(values) + @api.model_create_multi + def create(self, vals_list): + users = super().create(vals_list) + user_group_id = self.env['ir.model.data'].xmlid_to_res_id('base.group_user') # for new employee, create his own 5 base note stages - if user.has_group('base.group_user'): - user._create_note_stages() - return user + users.filtered_domain([('groups_id', 'in', [user_group_id])])._create_note_stages() + return users @api.model def _init_data_user_note_stages(self): diff --git a/addons/snailmail/models/res_partner.py b/addons/snailmail/models/res_partner.py index ae50e43c999..c7f40f7b3a8 100644 --- a/addons/snailmail/models/res_partner.py +++ b/addons/snailmail/models/res_partner.py @@ -10,16 +10,18 @@ class ResPartner(models.Model): _inherit = "res.partner" def write(self, vals): - for id in self.ids: - letter_address_vals = {} - address_fields = ['street', 'street2', 'city', 'zip', 'state_id', 'country_id'] - for field in address_fields: - if field in vals: - letter_address_vals[field] = vals[field] + letter_address_vals = {} + address_fields = ['street', 'street2', 'city', 'zip', 'state_id', 'country_id'] + for field in address_fields: + if field in vals: + letter_address_vals[field] = vals[field] - if len(letter_address_vals): - letter_ids = self.env['snailmail.letter'].search([('state', 'not in', ['sent', 'canceled']), ('partner_id', '=', id)]) - letter_ids.write(letter_address_vals) + if letter_address_vals: + letters = self.env['snailmail.letter'].search([ + ('state', 'not in', ['sent', 'canceled']), + ('partner_id', 'in', self.ids), + ]) + letters.write(letter_address_vals) return super(ResPartner, self).write(vals) diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py index f16cb7eee8d..4d012ad0ee4 100644 --- a/odoo/addons/base/models/res_users.py +++ b/odoo/addons/base/models/res_users.py @@ -1271,8 +1271,10 @@ class UsersView(models.Model): def write(self, values): values = self._remove_reified_groups(values) res = super(UsersView, self).write(values) + if 'company_ids' not in values: + return res group_multi_company = self.env.ref('base.group_multi_company', False) - if group_multi_company and 'company_ids' in values: + if group_multi_company: for user in self: if len(user.company_ids) <= 1 and user.id in group_multi_company.users.ids: user.write({'groups_id': [(3, group_multi_company.id)]})