diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py
index c994d5014fa..cca44be1b2c 100644
--- a/addons/website_blog/controllers/main.py
+++ b/addons/website_blog/controllers/main.py
@@ -116,7 +116,7 @@ class WebsiteBlog(http.Controller):
step=self._blog_post_per_page,
)
- all_tags = blog and blogs.all_tags()[blog.id] or blogs.all_tags(join=True)
+ all_tags = blogs.all_tags(join=True) if not blog else blogs.all_tags().get(blog.id, request.env['blog.tag'])
tag_category = sorted(all_tags.mapped('category_id'), key=lambda category: category.name.upper())
other_tags = sorted(all_tags.filtered(lambda x: not x.category_id), key=lambda tag: tag.name.upper())
diff --git a/addons/website_blog/models/website_blog.py b/addons/website_blog/models/website_blog.py
index 733bafc3a7f..4341966caf7 100644
--- a/addons/website_blog/models/website_blog.py
+++ b/addons/website_blog/models/website_blog.py
@@ -185,7 +185,7 @@ class BlogPost(models.Model):
def _check_for_publication(self, vals):
if vals.get('is_published'):
- for post in self:
+ for post in self.filtered(lambda p: p.active):
post.blog_id.message_post_with_view(
'website_blog.blog_post_template_new_post',
subject=post.name,
@@ -202,6 +202,9 @@ class BlogPost(models.Model):
def write(self, vals):
result = True
+ # archiving a blog post, unpublished the blog post
+ if 'active' in vals and not vals['active']:
+ vals['is_published'] = False
for post in self:
copy_vals = dict(vals)
published_in_vals = set(vals.keys()) & {'is_published', 'website_published'}
diff --git a/addons/website_blog/security/website_blog_security.xml b/addons/website_blog/security/website_blog_security.xml
index 79cfbbe6074..7544dc75338 100644
--- a/addons/website_blog/security/website_blog_security.xml
+++ b/addons/website_blog/security/website_blog_security.xml
@@ -8,4 +8,11 @@
+
+ Blog: active only
+
+ [('active', '=', True)]
+
+
+
diff --git a/addons/website_blog/views/website_blog_views.xml b/addons/website_blog/views/website_blog_views.xml
index 15605473167..c28c6cb6325 100644
--- a/addons/website_blog/views/website_blog_views.xml
+++ b/addons/website_blog/views/website_blog_views.xml
@@ -62,7 +62,7 @@