| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_info |
Blog Post Info | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_form_add |
blog.post.view.form.add | blog.post | form | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category.list | blog.tag.category | list | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag.list | blog.tag | list | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_big_picture |
Big picture | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_card |
Card | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_horizontal |
Horizontal | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_list |
List | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_single_aside |
Solo Aside | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_single_badge |
Solo Badge | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_single_circle |
Solo Circle | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_single_full |
Solo Full | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_blog_posts |
Blog Posts | ir.ui.view | qweb | New |
s_blog_posts_big_picture |
Blog Posts Big Picture | ir.ui.view | qweb | New |
s_blog_posts_card |
Blog Posts Card | ir.ui.view | qweb | New |
s_blog_posts_horizontal |
Blog Posts Horizontal | ir.ui.view | qweb | New |
s_blog_posts_list |
Blog Posts List | ir.ui.view | qweb | New |
s_blog_posts_single_aside |
Single Blog Post Aside | ir.ui.view | qweb | New |
s_blog_posts_single_badge |
Single Blog Post Badge | ir.ui.view | qweb | New |
s_blog_posts_single_circle |
Single Blog Post Circle | ir.ui.view | qweb | New |
s_blog_posts_single_full |
Single Blog Post Full | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_card_preview_data |
Blogs Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_horizontal_preview_data |
Blogs Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_list_preview_data |
Blogs Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_preview_data |
Blogs Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_single_aside_preview_data |
Single Blog Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_single_badge_preview_data |
Single Blog Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_single_circle_preview_data |
Single Blog Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_blog_posts_single_full_preview_data |
Single Blog Preview Data | ir.ui.view | qweb | New |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
tags_list |
Tags List | ir.ui.view | qweb | New |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | list | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
Blog Post Pages List | blog.post | list | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_author |
Blog Post Author | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_category |
Blog Post Category | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_date |
Blog Post Date | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_teaser |
Blog Post Teaser | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
blog_post_count
Integer
compute='_compute_blog_post_count'
args: 'Posts'
blog_post_ids
One2many → blog.post
content
Html
sanitize=False
translate=html_translate
args: 'Content'
name
Char
required=True
translate=True
args: 'Blog Name'
sequence
Integer
default=_default_sequence
args: 'Sequence'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
index='btree_not_null'
args: 'res.partner', 'Author'
author_name
Char
readonly=False
related='author_id.display_name'
store=True
string='Author Name'
blog_id
Many2one → blog.blog
default=<expr>
index=True
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
create_date
Datetime
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
translate=True
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
translate=True
visits
Integer
copy=False
default=0
readonly=True
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
store=True
website_message_ids
One2many
domain=<expr>
write_date
Datetime
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Last Contributor'
copy_data(self, default=None)
create(self, vals_list)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
color
Integer
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (2)configurator_set_menu_links(self, menu_company, module_data)
get_suggested_controllers(self)
No new fields.
Public methods (1)default_get(self, fields)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_form_add |
blog.post.view.form.add | blog.post | form | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_searchbar_input_snippet_options |
blog search bar snippet options | ir.ui.view | qweb | Inherits website.searchbar_input_snippet_options |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category.list | blog.tag.category | list | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag.list | blog.tag | list | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_big_picture |
Big picture | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_card |
Card | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_horizontal |
Horizontal | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_list |
List | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_comment |
Select to Comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_blog_posts |
Blog Posts | ir.ui.view | qweb | New |
s_blog_posts_options |
s_blog_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
s_dynamic_snippet_blog_posts_preview_data |
Blogs Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_options_template |
s_dynamic_snippet_options_template | ir.ui.view | qweb | Inherits website.s_dynamic_snippet_options_template |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
snippet_options |
Blog snippet options | ir.ui.view | qweb | Inherits website.snippet_options |
tags_list |
Tags List | ir.ui.view | qweb | New |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | list | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
Blog Post Pages List | blog.post | list | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_author |
Blog Post Author | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_date |
Blog Post Date | ir.ui.view | qweb | New |
website_blog.s_dynamic_snippet_template_teaser |
Blog Post Teaser | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
blog_post_count
Integer
compute='_compute_blog_post_count'
args: 'Posts'
blog_post_ids
One2many → blog.post
content
Html
sanitize=False
translate=html_translate
args: 'Content'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
index='btree_not_null'
args: 'res.partner', 'Author'
author_name
Char
readonly=False
related='author_id.display_name'
store=True
string='Author Name'
blog_id
Many2one → blog.blog
default=<expr>
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
create_date
Datetime
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
translate=True
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
translate=True
visits
Integer
copy=False
default=0
readonly=True
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
store=True
website_message_ids
One2many
domain=<expr>
write_date
Datetime
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Last Contributor'
copy_data(self, default=None)
create(self, vals_list)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
color
Integer
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
write(self, *args, **kwargs)
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (2)configurator_set_menu_links(self, menu_company, module_data)
get_suggested_controllers(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/website_blog |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Website/Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Nicolas Lempereur, Aaron Bohy, Jeremy Kersten, Yannick Tivisse, qsm-odoo, Odoo Online, Pierre Masereel, Romain Derie, Xavier-Do, Joseph Caburnay, Samuel Degueldre, Alvaro Fuentes, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Benjamin Vray, Benoit Socias, Guillaume (gdi), Arthur Detroux (ard), Nicolas Bayet, luvi, niyasraphy, Louis Wicket (wil), Soukéina Bojabza, Louis (loco), Dylan Kiss (dyki), Michael (mcm), Hugo Carlier (Huca), Brieuc-brd, divy-odoo, AH-Yussef, Guillaume-gdi, Louis (wil), Junqi Wu, Severin Zumbrunn, mano-odoo, Sanjay Sharma, paru-odoo, Jonathan Castillo (jcs), Pierre Pulinckx (pipu), Bastien PIERRE, pish-odoo, Pulinckx Pierre (PIPU) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/blog |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:04 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - digest - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - resource - social_media - google_recaptcha - utm - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
geoip2 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_form_add |
blog.post.view.form.add | blog.post | form | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_searchbar_input_snippet_options |
blog search bar snippet options | ir.ui.view | qweb | Inherits website.searchbar_input_snippet_options |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category_tree | blog.tag.category | tree | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_big_picture |
Big picture layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_card |
Card layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_horizontal |
Horizontal layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_list |
List layout | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_comment |
Select to Comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_blog_posts |
Blog Posts | ir.ui.view | qweb | New |
s_blog_posts_options |
s_blog_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
s_dynamic_snippet_options_template |
s_dynamic_snippet_options_template | ir.ui.view | qweb | Inherits website.s_dynamic_snippet_options_template |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
snippet_options |
Blog snippet options | ir.ui.view | qweb | Inherits website.snippet_options |
tags_list |
Tags List | ir.ui.view | qweb | New |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
Blog Post Pages Tree | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
blog_post_count
Integer
compute='_compute_blog_post_count'
args: 'Posts'
blog_post_ids
One2many → blog.post
content
Html
sanitize=False
translate=html_translate
args: 'Content'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
index='btree_not_null'
args: 'res.partner', 'Author'
author_name
Char
readonly=False
related='author_id.display_name'
store=True
string='Author Name'
blog_id
Many2one → blog.blog
default=<expr>
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
create_date
Datetime
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
default=0
readonly=True
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
store=True
website_message_ids
One2many
domain=<expr>
write_date
Datetime
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Last Contributor'
copy_data(self, default=None)
create(self, vals_list)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (1)attributes(self, record, field_name, options, values)
No new fields.
Public methods (2)configurator_set_menu_links(self, menu_company, module_data)
get_suggested_controllers(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/website_blog |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Website/Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Nicolas Lempereur, Jeremy Kersten, Yannick Tivisse, qsm-odoo, Romain Derie, Julien Castiaux, Romeo Fragomeli, Victor Feyens, Alvaro Fuentes, std-odoo, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Benjamin Vray, Benoit Socias, Guillaume (gdi), Arthur Detroux (ard), Florian Charlier, Yolann Sabaux, Swapnesh, Nicolas Bayet, luvi, niyasraphy, Louis Wicket (wil), Soukéina Bojabza, Louis (loco), Chong Wang (cwg), divy-odoo, Nguyễn Đại Dương, AH-Yussef, Martin Trigaux (mat), Junqi Wu, Severin Zumbrunn, mano-odoo, Sanjay Sharma |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/blog |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:46 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - digest - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - resource - social_media - google_recaptcha - utm - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_form_add |
blog.post.view.form.add | blog.post | form | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_searchbar_input_snippet_options |
blog search bar snippet options | ir.ui.view | qweb | Inherits website.searchbar_input_snippet_options |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category_tree | blog.tag.category | tree | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_big_picture |
Big picture layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_card |
Card layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_horizontal |
Horizontal layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_list |
List layout | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_comment |
Select to Comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_blog_posts |
Blog Posts | ir.ui.view | qweb | New |
s_blog_posts_options |
s_blog_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
s_dynamic_snippet_options_template |
s_dynamic_snippet_options_template | ir.ui.view | qweb | Inherits website.s_dynamic_snippet_options_template |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
snippet_options |
Blog snippet options | ir.ui.view | qweb | Inherits website.snippet_options |
tags_list |
Tags List | ir.ui.view | qweb | New |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
Blog Post Pages Tree | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
blog_post_count
Integer
compute='_compute_blog_post_count'
args: 'Posts'
blog_post_ids
One2many → blog.post
content
Html
sanitize=False
translate=html_translate
args: 'Content'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
author_name
Char
readonly=False
related='author_id.display_name'
store=True
string='Author Name'
blog_id
Many2one → blog.blog
default=<expr>
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
create_date
Datetime
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
default=0
readonly=True
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
store=True
website_message_ids
One2many
domain=<expr>
write_date
Datetime
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
readonly=True
args: 'res.users', 'Last Contributor'
copy_data(self, default=None)
create(self, vals_list)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (1)attributes(self, record, field_name, options, values)
No new fields.
Public methods (2)configurator_set_menu_links(self, menu_company, module_data)
get_suggested_controllers(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/website_blog |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Website/Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, David Monjoie, Xavier Morel, Goffin Simon, Aaron Bohy, Jeremy Kersten, GitHub, Yannick Tivisse, qsm-odoo, Romain Derie, Xavier-Do, Nasreddin (bon), Julien Mougenot, Samuel Degueldre, Alvaro Fuentes, Touati Djamel (otd), Tiffany Chang (tic), Kamen Zhekov, Benjamin Vray, roen-odoo, Benoit Socias, Guillaume (gdi), Yolann Sabaux, Goaman, Nicolas Bayet, Siddarth Gajjar, Soukéina Bojabza, Louis (loco), divy-odoo, Nguyễn Đại Dương, AH-Yussef, Leonardo Pavan Rocha |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/blog |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:25 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - digest - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - resource - social_media - google_recaptcha - utm - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_edit_options |
Edit Blog Options | ir.ui.view | qweb | Inherits website.user_navbar |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_searchbar_input_snippet_options |
blog search bar snippet options | ir.ui.view | qweb | Inherits website.searchbar_input_snippet_options |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category_tree | blog.tag.category | tree | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_big_picture |
Big picture layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_card |
Card layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_horizontal |
Horizontal layout | ir.ui.view | qweb | New |
dynamic_filter_template_blog_post_list |
List layout | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_comment |
Select to Comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_blog_posts |
Blog Posts | ir.ui.view | qweb | New |
s_blog_posts_options |
s_blog_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
s_dynamic_snippet_options_template |
s_dynamic_snippet_options_template | ir.ui.view | qweb | Inherits website.s_dynamic_snippet_options_template |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
snippet_options |
Blog snippet options | ir.ui.view | qweb | Inherits website.snippet_options |
tags_list |
Tags List | ir.ui.view | qweb | New |
user_navbar_inherit_website_blog |
user_navbar_inherit_website_blog | ir.ui.view | qweb | Inherits website.user_navbar |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
blog_post_count
Integer
compute='_compute_blog_post_count'
args: 'Posts'
blog_post_ids
One2many → blog.post
content
Html
sanitize=False
translate=html_translate
args: 'Content'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
author_name
Char
readonly=False
related='author_id.display_name'
store=True
string='Author Name'
blog_id
Many2one → blog.blog
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
create_date
Datetime
index=True
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
default=0
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
store=True
website_message_ids
One2many
domain=<expr>
write_date
Datetime
index=True
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Last Contributor'
copy_data(self, default=None)
create(self, vals)
get_access_action(self, access_uid=None)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (4)configurator_set_menu_links(self, menu_company, module_data)
get_suggested_controllers(self)
page_search_dependencies(self, page_id=False)
page_search_key_dependencies(self, page_id=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website/Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, Jeremy Kersten, GitHub, Barad Mahendra, Yannick Tivisse, qsm-odoo, Nicolas Seinlet, Romain Derie, Adrien Dieudonne, Toufik Ben Jaa, Adrian Torres, wan, Xavier-Do, jvm-odoo, Paul Morelle, Sébastien Theys, Nasreddin (bon), Jason Van Malder, fw-bot, Samuel Degueldre, std-odoo, Touati Djamel (otd), fja-odoo, Kevin Baptiste, Benjamin Vray, Benoit Socias, Guillaume (gdi), Laurent Stukkens (LTU), Okan SUMER (osu), Francois (fge) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:27 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - digest - base - base_setup - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - resource - social_media - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
Blog Front-end assets | ir.ui.view | qweb | Inherits website.assets_frontend |
assets_snippet_s_latest_posts_css_000 |
assets_snippet_s_latest_posts_css_000 | ir.ui.view | qweb | Inherits website.assets_frontend |
assets_snippet_s_latest_posts_css_001 |
assets_snippet_s_latest_posts_css_001 | ir.ui.view | qweb | Inherits website.assets_frontend |
assets_snippet_s_latest_posts_js_000 |
assets_snippet_s_latest_posts_js_000 | ir.ui.view | qweb | Inherits website.assets_frontend |
assets_wysiwyg |
Blog posts snippet options | ir.ui.view | qweb | Inherits website.assets_wysiwyg |
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_edit_options |
Edit Blog Options | ir.ui.view | qweb | Inherits website.user_navbar |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category_tree | blog.tag.category | tree | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_comment |
Select to Comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_latest_posts |
Blog Posts | ir.ui.view | qweb | New |
s_latest_posts_big_picture_template |
s_latest_posts_big_picture_template | ir.ui.view | qweb | New |
s_latest_posts_card_template |
s_latest_posts_card_template | ir.ui.view | qweb | New |
s_latest_posts_horizontal_template |
s_latest_posts_horizontal_template | ir.ui.view | qweb | New |
s_latest_posts_list_template |
s_latest_posts_list_template | ir.ui.view | qweb | New |
s_latest_posts_options |
s_latest_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
snippet_options |
Blog snippet options | ir.ui.view | qweb | Inherits website.snippet_options |
tags_list |
Tags List | ir.ui.view | qweb | New |
user_navbar_inherit_website_blog |
user_navbar_inherit_website_blog | ir.ui.view | qweb | Inherits website.user_navbar |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
blog_post_count
Integer
compute='_compute_blog_post_count'
args: 'Posts'
blog_post_ids
One2many → blog.post
content
Html
sanitize=False
translate=html_translate
args: 'Content'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
author_name
Char
readonly=False
related='author_id.display_name'
store=True
string='Author Name'
blog_id
Many2one → blog.blog
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
create_date
Datetime
index=True
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
default=0
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
store=True
website_message_ids
One2many
domain=<expr>
write_date
Datetime
index=True
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Last Contributor'
copy_data(self, default=None)
create(self, vals)
get_access_action(self, access_uid=None)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (3)get_suggested_controllers(self)
page_search_dependencies(self, page_id=False)
page_search_key_dependencies(self, page_id=False)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website/Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Thibault Delavallée, Christophe Simonis, David Monjoie, Xavier Morel, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, Jeremy Kersten, Damien Bouvy, Yannick Tivisse, qsm-odoo, Odoo Online, Nicolas Seinlet, Romain Derie, Jorge Pinna Puissant, Nans Lefebvre, Toufik Ben Jaa, Adrian Torres, Xavier-Do, jvm-odoo, Paul Morelle, Sébastien Theys, Jason Van Malder, fw-bot, Samuel Degueldre, std-odoo, Touati Djamel (otd), Thanh Dodeur, Parth Choksi, Yenthe666, Benoit Socias, Oussama MESSAOUDI |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - web - base - web_editor - http_routing - portal - base_setup - bus - web_tour - auth_signup - social_media - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
_assets_primary_variables |
_assets_primary_variables | ir.ui.view | qweb | Inherits web._assets_primary_variables |
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
Blog Front-end assets | ir.ui.view | qweb | Inherits website.assets_frontend |
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_edit_options |
Edit Blog Options | ir.ui.view | qweb | Inherits website.user_navbar |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_content |
Blog post content | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_sidebar |
Sidebar - Blog Post | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category_tree | blog.tag.category | tree | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
blogs_nav |
Blogs Bar Template | ir.ui.view | qweb | New |
date_selector |
date_selector | ir.ui.view | qweb | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
opt_blog_cards_design |
'Cards' Design | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post |
Top banner - Name / Latest Post | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_cover_post_fullwidth_design |
Full-Width Cover | ir.ui.view | qweb | Inherits website_blog.opt_blog_cover_post |
opt_blog_list_view |
List View | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_archive_display |
Archive | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_author_avatar_display |
Author | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_blogs_display |
Blogs List | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_breadcrumb |
Show Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_comment |
Allow Comments | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_read_next |
Read Next Article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_regular_cover |
'Regular' Cover | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_comment |
Select to Comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_share_links_display |
Share Links | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_post_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_tags_display |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_sidebar |
opt_blog_readable |
Increase Readability | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_sidebar_show |
Show Sidebar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_posts_loop_show_author |
Author | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_cover |
Cover | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_stats |
Comments/Views Stats | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_posts_loop_show_teaser |
Teaser & Tags | ir.ui.view | qweb | Inherits website_blog.posts_loop |
opt_sidebar_blog_index_archives |
Archives | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_follow_us |
Follow Us | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
opt_sidebar_blog_index_tags |
Tags List | ir.ui.view | qweb | Inherits website_blog.sidebar_blog_index |
post_author |
post_author | ir.ui.view | qweb | New |
post_breadcrumbs |
post_breadcrumbs | ir.ui.view | qweb | New |
post_cover_image |
post_cover_image | ir.ui.view | qweb | New |
post_heading |
post_heading | ir.ui.view | qweb | New |
post_info |
post_info | ir.ui.view | qweb | New |
post_teaser |
post_teaser | ir.ui.view | qweb | New |
posts_loop |
Posts List | ir.ui.view | qweb | New |
s_latest_posts |
Latest Posts - List | ir.ui.view | qweb | New |
s_latest_posts_big_picture |
Latest Posts - Big Images | ir.ui.view | qweb | New |
s_latest_posts_big_picture_template |
s_latest_posts_big_picture_template | ir.ui.view | qweb | New |
s_latest_posts_list_template |
s_latest_posts_list_template | ir.ui.view | qweb | New |
s_latest_posts_options |
s_latest_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
sidebar_blog_index |
Sidebar - Blog page | ir.ui.view | qweb | New |
tags_list |
Tags List | ir.ui.view | qweb | New |
user_navbar_inherit_website_blog |
user_navbar_inherit_website_blog | ir.ui.view | qweb | Inherits website.user_navbar |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
website_blog.blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
active
Boolean
default=True
args: 'Active'
content
Html
sanitize=False
translate=html_translate
args: 'Content'
cover_properties
Text
default='{"background-image": "none", "background-color": "oe_black", "opacity": "0.2", "resize_class": "cover_mid"}'
args: 'Cover Properties'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, join=False, min_limit=1)
message_post(self, *, parent_id=False, subtype=None, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_128'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
blog_id
Many2one → blog.blog
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
cover_properties
Text
default='{"background-image": "none", "background-color": "oe_black", "opacity": "0.2", "resize_class": "cover_mid"}'
args: 'Cover Properties'
create_date
Datetime
index=True
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
website_message_ids
One2many
domain=<expr>
write_date
Datetime
index=True
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Last Contributor'
create(self, vals)
get_access_action(self, access_uid=None)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (2)page_search_dependencies(self, page_id=False)
page_search_key_dependencies(self, page_id=False)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Joren Van Onder, Nicolas Martinelli, Nicolas Lempereur, Jeremy Kersten, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Romain Derie, Christophe Monniez, Adrian Torres, Julien Castiaux, Xavier-Do, Florimond Husquinet (fhu), Sébastien Theys, Jason Van Malder, fw-bot, Samuel Degueldre, std-odoo, Kinjal Mehta, Quentin Smetz (qsm) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - web - base - web_editor - http_routing - portal - base_setup - bus - web_tour - social_media - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
_assets_primary_variables |
_assets_primary_variables | ir.ui.view | qweb | Inherits web._assets_primary_variables |
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
Blog Front-end assets | ir.ui.view | qweb | Inherits website.assets_frontend |
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_breadcrumb |
Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
blog_cover |
blog_cover | ir.ui.view | qweb | New |
blog_edit_options |
Edit Blog Options | ir.ui.view | qweb | Inherits website.user_navbar |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_post_view_kanban |
blog.post.kanban | blog.post | kanban | New |
blog_tag_category_form |
blog_tag_category_form | blog.tag.category | form | New |
blog_tag_category_tree |
blog_tag_category_tree | blog.tag.category | tree | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
index |
Blog Navigation | ir.ui.view | qweb | New |
index_right |
Right Column | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
latest_blogs |
Latest Blogs | ir.ui.view | qweb | New |
opt_blog_post_author_avatar |
Author avatar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_author_avatar_display |
Author Avatar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_comment |
Allow blog post comment | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_read_next |
Read next article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_cover_image |
Cover image | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_grid_layout |
Grid view | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_select_to_comment |
Select to comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_complete_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_rc_about_us |
About Us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_blogs |
Our Blogs | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_follow_us |
Subscription | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_history |
Archives | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_status |
Status | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.index_right |
s_latest_posts |
Latest Posts - List | ir.ui.view | qweb | New |
s_latest_posts_big_picture |
Latest Posts - Big Images | ir.ui.view | qweb | New |
s_latest_posts_big_picture_template |
s_latest_posts_big_picture_template | ir.ui.view | qweb | New |
s_latest_posts_list_template |
s_latest_posts_list_template | ir.ui.view | qweb | New |
s_latest_posts_options |
s_latest_posts_options | ir.ui.view | qweb | Inherits website.snippet_options |
tag_category |
Tags List | ir.ui.view | qweb | New |
user_navbar_inherit_website_blog |
user_navbar_inherit_website_blog | ir.ui.view | qweb | Inherits website.user_navbar |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, min_limit=1)
message_post(self, parent_id=False, subtype=None, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
readonly=False
related='author_id.image_small'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
blog_id
Many2one → blog.blog
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
cover_properties
Text
default='{"background-image": "none", "background-color": "oe_black", "opacity": "0.2", "resize_class": ""}'
args: 'Cover Properties'
create_date
Datetime
index=True
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
ranking
Float
compute='_compute_ranking'
string='Ranking'
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
args: 'No of Views'
website_id
Many2one
readonly=True
related='blog_id.website_id'
website_message_ids
One2many
domain=<expr>
write_date
Datetime
index=True
readonly=True
args: 'Last Updated on'
write_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Last Contributor'
create(self, vals)
get_access_action(self, access_uid=None)
write(self, vals)
category_id
Many2one → blog.tag.category
index=True
args: 'blog.tag.category', 'Category'
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
tag_ids
One2many → blog.tag
string='Tags'
args: 'blog.tag', 'category_id'
No public methods.
No new fields.
Public methods (2)page_search_dependencies(self, page_id=False)
page_search_key_dependencies(self, page_id=False)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Nicolas Lempereur, Jérome Maes, qdp-odoo, Aaron Bohy, Jeremy Kersten, GitHub, Yannick Tivisse, qsm-odoo, Odoo Online, rde, jvm-odoo, Thomas Dieuzeide, Andreas Perhab |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - web - base - web_editor - web_planner - http_routing - portal - base_setup - bus - web_tour - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
Blog Front-end assets | ir.ui.view | qweb | Inherits website.assets_frontend |
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_breadcrumb |
Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
blog_cover |
blog_cover | ir.ui.view | qweb | New |
blog_edit_options |
Edit Blog Options | ir.ui.view | qweb | Inherits website.user_navbar |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
content_new_blogpost |
content_new_blogpost | ir.ui.view | qweb | Inherits website.user_navbar |
header_footer_custom |
Footer News Blog Link | ir.ui.view | qweb | Inherits website.footer_default |
index |
Blog Navigation | ir.ui.view | qweb | New |
index_right |
Right Column | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
latest_blogs |
Latest Blogs | ir.ui.view | qweb | New |
opt_blog_post_author_avatar |
Author avatar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_author_avatar_display |
Author Avatar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_comment |
Allow blog post comment | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_read_next |
Read next article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_cover_image |
Cover image | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_grid_layout |
Grid view | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_select_to_comment |
Select to comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_complete_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_rc_about_us |
About Us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_blogs |
Our Blogs | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_follow_us |
Subscription | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_history |
Archives | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_status |
Status | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.index_right |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, min_limit=1)
message_post(self, parent_id=False, subtype=None, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
related='author_id.image_small'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
blog_id
Many2one → blog.blog
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
cover_properties
Text
default='{"background-image": "none", "background-color": "oe_black", "opacity": "0.2", "resize_class": ""}'
args: 'Cover Properties'
create_date
Datetime
index=True
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
help='The blog post will be visible for your visitors as of this date on the website if it is set as published.'
inverse='_set_post_date'
store=True
args: 'Publishing date'
published_date
Datetime
ranking
Float
compute='_compute_ranking'
string='Ranking'
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
args: 'No of Views'
website_message_ids
One2many
domain=<expr>
write_date
Datetime
index=True
readonly=True
args: 'Last Modified on'
write_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Last Contributor'
create(self, vals)
get_access_action(self, access_uid=None)
message_get_message_notify_values(self, message, message_values)
write(self, vals)
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
path
Char
help='Used to display messages in a paragraph-based chatter using a unique path;'
index=True
args: 'Discussion Path'
No public methods.
No new fields.
Public methods (2)page_search_dependencies(self, page_id=False)
page_search_key_dependencies(self, page_id=False)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Simon Lejeune, Nicolas Lempereur, Jérome Maes, Julien Legros, qdp-odoo, Jeremy Kersten, GitHub, Yannick Tivisse, qsm-odoo, Martin Geubelle, Romain Derie, Jairo Llopis |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:47 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - web - base - web_editor - web_planner - base_setup - web_kanban - bus - web_tour - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Odoo Blog
============
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
Blog Front-end assets | ir.ui.view | qweb | Inherits website.assets_frontend |
blog_blog_view_search |
blog.blog.search | blog.blog | search | New |
blog_breadcrumb |
Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
blog_cover |
blog_cover | ir.ui.view | qweb | New |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
content_new_blogpost |
content_new_blogpost | ir.ui.view | qweb | Inherits website.user_navbar |
header_footer_custom |
Footer News Blog Link | ir.ui.view | qweb | Inherits website.footer_default |
index |
Blog Navigation | ir.ui.view | qweb | New |
index_right |
Right Column | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
latest_blogs |
Latest Blogs | ir.ui.view | qweb | New |
opt_blog_post_author_avatar |
Author avatar | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_author_avatar_display |
Author Avatar | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_comment |
Allow blog post comment | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_read_next |
Read next article | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_cover_image |
Cover image | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_grid_layout |
Grid view | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_post_select_to_comment |
Select to comment | ir.ui.view | qweb | Inherits website_blog.opt_blog_post_complete_comment |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_rc_about_us |
About Us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_blogs |
Our Blogs | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_follow_us |
Subscription | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_history |
Archives | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_status |
Status | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.index_right |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Blog Name'
subtitle
Char
translate=True
args: 'Blog Subtitle'
all_tags(self, min_limit=1)
message_post(self, parent_id=False, subtype=None, **kwargs)
write(self, vals)
active
Boolean
default=True
args: 'Active'
author_avatar
Binary
related='author_id.image_small'
string='Avatar'
author_id
Many2one → res.partner
default=<expr>
args: 'res.partner', 'Author'
blog_id
Many2one → blog.blog
ondelete='cascade'
required=True
args: 'blog.blog', 'Blog'
content
Html
default=_default_content
sanitize=False
translate=html_translate
args: 'Content'
cover_properties
Text
default='{"background-image": "none", "background-color": "oe_black", "opacity": "0.2", "resize_class": ""}'
args: 'Cover Properties'
create_date
Datetime
index=True
readonly=True
args: 'Created on'
create_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Created by'
name
Char
default=''
required=True
translate=True
args: 'Title'
post_date
Datetime
compute='_compute_post_date'
inverse='_set_post_date'
store=True
args: 'Published date'
published_date
Datetime
ranking
Float
compute='_compute_ranking'
string='Ranking'
subtitle
Char
translate=True
args: 'Sub Title'
tag_ids
Many2many → blog.tag
string='Tags'
args: 'blog.tag'
teaser
Text
compute='_compute_teaser'
inverse='_set_teaser'
args: 'Teaser'
teaser_manual
Text
string='Teaser Content'
visits
Integer
copy=False
args: 'No of Views'
website_message_ids
One2many → mail.message
domain=<expr>
help='Website communication history'
string='Website Messages'
args: 'mail.message', 'res_id'
write_date
Datetime
index=True
readonly=True
args: 'Last Modified on'
write_uid
Many2one → res.users
index=True
readonly=True
args: 'res.users', 'Last Contributor'
create(self, vals)
get_access_action(self)
message_get_message_notify_values(self, message, message_values)
write(self, vals)
name
Char
required=True
translate=True
args: 'Name'
post_ids
Many2many → blog.post
string='Posts'
args: 'blog.post'
No public methods.
path
Char
help='Used to display messages in a paragraph-based chatter using a unique path;'
index=True
args: 'Discussion Path'
No public methods.
No new fields.
Public methods (1)page_search_dependencies(self, view_id)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, Christophe Simonis, David Monjoie, Nicolas Lempereur, Jérome Maes, Julien Legros, Richard Mathot, Géry Debongnie, Aaron Bohy, Jeremy Kersten, Damien Bouvy, Yannick Tivisse, qsm-odoo, Romain Derie |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - website_mail - website - web - base - web_editor - web_planner - base_setup - web_kanban - bus - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
OpenERP Blog
============
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
Blog Front-end assets | ir.ui.view | qweb | Inherits website.assets_frontend |
blog_breadcrumb |
Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
blog_feed |
blog_feed | ir.ui.view | qweb | New |
blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
content_new_blogpost |
content_new_blogpost | ir.ui.view | qweb | Inherits website.user_navbar |
header_footer_custom |
Footer News Blog Link | ir.ui.view | qweb | Inherits website.footer_default |
index |
Blog Navigation | ir.ui.view | qweb | New |
index_right |
Right Column | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
latest_blogs |
Latest Blogs | ir.ui.view | qweb | New |
opt_blog_post_complete_comment |
Allow blog post comment | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_inline_discussion |
Allow comment in text | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_short_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_rc_about_us |
About Us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_blogs |
Our Blogs | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_follow_us |
Follow us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_history |
Archives | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.index_right |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
website_blog |
Snippet Blog | ir.ui.view | qweb | Inherits website.snippets |
No new fields.
Public methods (1)all_tags(self, cr, uid, ids, min_limit=1, context=None)
No new fields.
Public methods (4)create(self, cr, uid, vals, context=None)
get_access_action(self, cr, uid, ids, context=None)
html_tag_nodes(self, html, attribute=None, tags=None, context=None)
write(self, cr, uid, ids, vals, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)page_search_dependencies(self, cr, uid, view_id, context=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/website_blog |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Website |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Christophe Matthieu, ajay javiya (OpenERP), Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, Christophe Simonis, Xavier Morel, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Richard Mathot, Géry Debongnie, Aaron Bohy, Richard Mathot (OpenERP), Nhomar - Vauxoo, ged-odoo, chm@openerp.com, ddm, ddm@openerp.com, Yogesh Parekh, Mahendra Barad (OpenERP), Nicolas Wisniewski, openerp-sle, Jeremy Kersten |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/blog-engine |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:38 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - knowledge - base - base_setup - web_kanban - web - website_mail - website - share - email_template - website_partner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
OpenERP Blog
============
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_editor |
Blog Editor | ir.ui.view | qweb | Inherits website.assets_editor |
assets_frontend |
website_blog assets | ir.ui.view | qweb | Inherits website.assets_frontend |
blog_breadcrumb |
Breadcrumb | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
blog_post_complete |
Blog Post | ir.ui.view | qweb | New |
blog_post_short |
Blog Posts | ir.ui.view | qweb | New |
blog_tag_form |
blog_tag_form | blog.tag | form | New |
blog_tag_tree |
blog_tag_tree | blog.tag | tree | New |
content_new_blogpost |
content_new_blogpost | ir.ui.view | qweb | Inherits website.user_navbar |
header_footer_custom |
Footer News Blog Link | ir.ui.view | qweb | Inherits website.footer_default |
index |
Blog Navigation | ir.ui.view | qweb | New |
index_right |
Right Column | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
latest_blogs |
Latest Blogs | ir.ui.view | qweb | New |
opt_blog_post_complete_comment |
Allow blog post comment | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_complete_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_inline_discussion |
Allow comment in text | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_select_to_tweet |
Select to Tweet | ir.ui.view | qweb | Inherits website_blog.blog_post_complete |
opt_blog_post_short_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.blog_post_short |
opt_blog_rc_about_us |
About Us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_blogs |
Our Blogs | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_follow_us |
Follow us | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_history |
Archives | ir.ui.view | qweb | Inherits website_blog.index_right |
opt_blog_rc_tags |
Tags | ir.ui.view | qweb | Inherits website_blog.index_right |
view_blog_blog_form |
blog.blog.form | blog.blog | form | New |
view_blog_blog_list |
blog.blog.list | blog.blog | tree | New |
view_blog_history_form |
blog.post.history.form | blog.post.history | form | New |
view_blog_history_tree |
blog.post.history.tree | blog.post.history | tree | New |
view_blog_post_form |
blog.post.form | blog.post | form | New |
view_blog_post_list |
blog.post.list | blog.post | tree | New |
view_blog_post_search |
blog.post.search | blog.post | search | New |
view_wiki_show_diff |
Show Difference | blog.post.history.show_diff | form | New |
No new fields.
Public methods (1)all_tags(self, cr, uid, ids, min_limit=1, context=None)
No new fields.
Public methods (4)create(self, cr, uid, vals, context=None)
create_history(self, cr, uid, ids, vals, context=None)
html_tag_nodes(self, html, attribute=None, tags=None, context=None)
write(self, cr, uid, ids, vals, context=None)
No new fields.
Public methods (1)getDiff(self, cr, uid, v1, v2, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.