From fec4e77a6c7059a4b63dd38fd443c194f6f8cb14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Thu, 5 Sep 2019 13:58:19 +0000 Subject: [PATCH] [IMP] website_blog: avoid searching all blogs twice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The same `search` was done twice in a row. Part of task-2061122 closes odoo/odoo#36485 Signed-off-by: Jérémy Kersten (jke) --- addons/website_blog/controllers/main.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py index 0a85439471d..ebe5ddde54c 100644 --- a/addons/website_blog/controllers/main.py +++ b/addons/website_blog/controllers/main.py @@ -52,15 +52,12 @@ class WebsiteBlog(http.Controller): return OrderedDict((year, [m for m in months]) for year, months in itertools.groupby(groups, lambda g: g['year'])) - def _prepare_blog_values(self, blog=False, date_begin=False, date_end=False, tags=False, state=False, page=False): + def _prepare_blog_values(self, blogs, blog=False, date_begin=False, date_end=False, tags=False, state=False, page=False): """ Prepare all values to display the blogs index page or one specific blog""" - - Blog = request.env['blog.blog'] BlogPost = request.env['blog.post'] # prepare domain domain = request.website.website_domain() - blogs = Blog.search(domain, order="create_date asc, id asc") if blog: domain += [('blog_id', '=', blog.id)] @@ -143,12 +140,13 @@ class WebsiteBlog(http.Controller): raise werkzeug.exceptions.NotFound() blogs = Blog.search(request.website.website_domain(), order="create_date asc, id asc") + if not blog and len(blogs) == 1: return werkzeug.utils.redirect('/blog/%s' % slug(blogs[0]), code=302) date_begin, date_end, state = opt.get('date_begin'), opt.get('date_end'), opt.get('state') - values = self._prepare_blog_values(blog=blog, date_begin=date_begin, date_end=date_end, tags=tag, state=state, page=page) + values = self._prepare_blog_values(blogs=blogs, blog=blog, date_begin=date_begin, date_end=date_end, tags=tag, state=state, page=page) if blog: values['main_object'] = blog