From 3c998acaaf5ca8d745e5dc3af13c32e84c339de2 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Fri, 12 Jan 2018 13:56:30 +0100 Subject: [PATCH] [FIX] website_blog: archive multiple blog.post throws a server error Step to reproduce: - Go to 'Blog' > 'Blog Posts' in the 'Website Admin' module - Select several blog.post on the list view - Click on 'Archive' in the 'Action' dropdown This will throw a server error since write() is overriden for blog.post and do an ensure_one() This commit closes #22208 --- addons/website_blog/models/website_blog.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/website_blog/models/website_blog.py b/addons/website_blog/models/website_blog.py index c2747094b62..e5c39e8b594 100644 --- a/addons/website_blog/models/website_blog.py +++ b/addons/website_blog/models/website_blog.py @@ -207,11 +207,12 @@ class BlogPost(models.Model): @api.multi def write(self, vals): - self.ensure_one() - if 'website_published' in vals and 'published_date' not in vals: - if self.published_date <= fields.Datetime.now(): - vals['published_date'] = vals['website_published'] and fields.Datetime.now() - result = super(BlogPost, self).write(vals) + result = True + for post in self: + copy_vals = vals + if 'website_published' in vals and 'published_date' not in vals and post.published_date <= fields.Datetime.now(): + copy_vals['published_date'] = vals['website_published'] and fields.Datetime.now() or False + result &= super(BlogPost, self).write(copy_vals) self._check_for_publication(vals) return result