diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index 3b5fbeae0b4..c3d229135e6 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -235,8 +235,6 @@ class WebsiteForum(WebsiteProfile): if question.state == 'pending' and user.karma < forum.karma_post and question.create_uid != user: raise werkzeug.exceptions.NotFound() - # increment view counter - question.sudo().set_viewed() if question.parent_id: redirect_url = "/forum/%s/question/%s" % (slug(forum), slug(question.parent_id)) return werkzeug.utils.redirect(redirect_url, 301) @@ -252,6 +250,10 @@ class WebsiteForum(WebsiteProfile): }) if (request.httprequest.referrer or "").startswith(request.httprequest.url_root): values['back_button_url'] = request.httprequest.referrer + + # increment view counter + question.sudo().set_viewed() + return request.render("website_forum.post_description_full", values) @http.route('/forum//question//toggle_favourite', type='json', auth="user", methods=['POST'], website=True) diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py index d77270c55a9..98cd889e12d 100644 --- a/addons/website_forum/models/forum.py +++ b/addons/website_forum/models/forum.py @@ -838,7 +838,8 @@ class Post(models.Model): return result def set_viewed(self): - self._cr.execute("""UPDATE forum_post SET views = views+1 WHERE id IN %s""", (self._ids,)) + self.ensure_one() + self._cr.execute("""UPDATE forum_post SET views = views+1 WHERE views = %s and id = %s""", (self.views, self.id,)) return True def get_access_action(self, access_uid=None):