summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2020-06-19 13:24:57 +0000
committerVictor Feyens <vfe@odoo.com>2020-06-19 13:27:41 +0000
commitbdcad21ccc3b9ff5110230440eb2aa5e18e13ffa (patch)
tree14dc465fc0417f5f4262fb9afb0ca10307b98cc1
parent630beba02eac72626e4bea1c0f4d81e17c2fec3e (diff)
[FIX] *: correct support of multi records in methods
Wrong usage of self in for loops makes some apparently multi-friendly methods not work correctly when called with a recordset of len > 1. This commit replaces those references by the correct unique record reference which should be used at this iteration of the loop, avoiding potential exceptions or wrong behavior in the concerned methods. closes odoo/odoo#53320 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
-rw-r--r--addons/account/wizard/account_resequence.py2
-rw-r--r--addons/fleet_account/models/fleet_vehicle.py4
-rw-r--r--addons/hr_expense/models/hr_expense.py2
-rw-r--r--addons/website/models/res_config_settings.py2
-rw-r--r--addons/website_forum/models/forum.py6
-rw-r--r--addons/website_slides/models/slide_slide.py2
-rw-r--r--odoo/addons/base/models/ir_cron.py2
7 files changed, 10 insertions, 10 deletions
diff --git a/addons/account/wizard/account_resequence.py b/addons/account/wizard/account_resequence.py
index bd0b9378cd4..07303f72029 100644
--- a/addons/account/wizard/account_resequence.py
+++ b/addons/account/wizard/account_resequence.py
@@ -38,7 +38,7 @@ class ReSequenceWizard(models.TransientModel):
@api.depends('first_name')
def _compute_sequence_number_reset(self):
for record in self:
- record.sequence_number_reset = self.move_ids[0]._deduce_sequence_number_reset(record.first_name)
+ record.sequence_number_reset = record.move_ids[0]._deduce_sequence_number_reset(record.first_name)
@api.depends('move_ids')
def _compute_first_name(self):
diff --git a/addons/fleet_account/models/fleet_vehicle.py b/addons/fleet_account/models/fleet_vehicle.py
index 0f6be4e50b5..6c936af07b6 100644
--- a/addons/fleet_account/models/fleet_vehicle.py
+++ b/addons/fleet_account/models/fleet_vehicle.py
@@ -16,7 +16,7 @@ class FleetVehicle(models.Model):
raise AccessError(_("Sorry, you must be at least a fleet user to make this action."))
for vehicle in self:
analytic_account = self.env['account.analytic.account'].sudo().create([{
- 'name': self._get_analytic_name(),
- 'company_id': self.company_id.id or self.env.company.id,
+ 'name': vehicle._get_analytic_name(),
+ 'company_id': vehicle.company_id.id or self.env.company.id,
}])
vehicle.write({'analytic_account_id': analytic_account.id})
diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index b7a337e924d..f1dd1607e55 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -938,7 +938,7 @@ class HrExpenseSheet(models.Model):
self.write({'state': 'cancel'})
for sheet in self:
- sheet.message_post_with_view('hr_expense.hr_expense_template_refuse_reason', values={'reason': reason, 'is_sheet': True, 'name': self.name})
+ sheet.message_post_with_view('hr_expense.hr_expense_template_refuse_reason', values={'reason': reason, 'is_sheet': True, 'name': sheet.name})
self.activity_update()
def reset_expense_sheets(self):
diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py
index 21737456fa5..a90210817e9 100644
--- a/addons/website/models/res_config_settings.py
+++ b/addons/website/models/res_config_settings.py
@@ -138,7 +138,7 @@ class ResConfigSettings(models.TransientModel):
@api.depends('language_ids')
def _compute_website_language_count(self):
for config in self:
- config.website_language_count = len(self.language_ids)
+ config.website_language_count = len(config.language_ids)
def set_values(self):
super(ResConfigSettings, self).set_values()
diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py
index abe6d4c39da..4c3adede878 100644
--- a/addons/website_forum/models/forum.py
+++ b/addons/website_forum/models/forum.py
@@ -976,16 +976,16 @@ class Vote(models.Model):
values.pop('user_id', None)
for vote in self:
- self._check_general_rights(values)
+ vote._check_general_rights(values)
if 'vote' in values:
if (values['vote'] == '1' or vote.vote == '-1' and values['vote'] == '0'):
upvote = True
elif (values['vote'] == '-1' or vote.vote == '1' and values['vote'] == '0'):
upvote = False
- self._check_karma_rights(upvote)
+ vote._check_karma_rights(upvote)
# karma update
- self._vote_update_karma(vote.vote, values['vote'])
+ vote._vote_update_karma(vote.vote, values['vote'])
res = super(Vote, self).write(values)
return res
diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py
index 45bf3a722be..801d8257123 100644
--- a/addons/website_slides/models/slide_slide.py
+++ b/addons/website_slides/models/slide_slide.py
@@ -530,7 +530,7 @@ class Slide(models.Model):
mail_ids = []
base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
for record in self:
- template = self.channel_id.share_template_id.with_context(
+ template = record.channel_id.share_template_id.with_context(
user=self.env.user,
email=email,
base_url=base_url,
diff --git a/odoo/addons/base/models/ir_cron.py b/odoo/addons/base/models/ir_cron.py
index a9c2a6ee6ca..d3467093410 100644
--- a/odoo/addons/base/models/ir_cron.py
+++ b/odoo/addons/base/models/ir_cron.py
@@ -80,7 +80,7 @@ class ir_cron(models.Model):
def method_direct_trigger(self):
self.check_access_rights('write')
for cron in self:
- self.with_user(cron.user_id).ir_actions_server_id.run()
+ cron.with_user(cron.user_id).ir_actions_server_id.run()
return True
@api.model