TIP: You can type at any time to perform a new search.
Blog
website_blog · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Website/Website
- Folder size
- 8.61 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://www.odoo.com/app/blog
- Last tracking update
- 2026-08-15 22:44:14
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Raphael Collet, Thibault Delavallée, Mohammed Shekha, Odoo Translation Bot, Nicolas Lempereur, Aaron Bohy, Géry Debongnie, qsm-odoo, Julien Castiaux, Xavier-Do, Sébastien Theys, Julien Mougenot, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Benjamin Vray, Nicolas Bayet, luvi, Hubert Van De Walle, Victor Piryns (pivi), Robin Lejeune (role), Louis (loco), Dylan Kiss (dyki), Brieuc-brd, divy-odoo, Moises Lopez - https://www.vauxoo.com/, visp-odoo, Maryam Kia, Mehdi Outagant (MOU), Serge Bayet (seba), Julien Carion (juca), Chrysanthe (chgo), Junqi Wu, Sanjay Sharma, mano-odoo, Sébastien (blse), paru-odoo, khsr-odoo, Pierre Pulinckx, Bastien PIERRE, Krzysztof Magusiak (krma), rusp-odoo, aans-odoo, Augustin (duau), Serhii Rubanskyi, Davide Bonetto, Alessandro Lupo, Benoit Socias (bso), Serge Bayet, saurabh, vega-odoo, chpa-odoo, panj-odoo, Nuno
Code Analysis ⓘ
Views touched (85)
| 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 |
HTTP endpoints (4)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/blog, /blog/page/<int:page>, /blog/tag/<string:tag>, /blog/tag/<string:tag>/page/<int:page>, /blog/<model("blog.blog"):blog>, /blog/<model("blog.blog"):blog>/page/<int:page>, /blog/<model("blog.blog"):blog>/tag/<string:tag>, /blog/<model("blog.blog"):blog>/tag/<string:tag>/page/<int:page> |
WebsiteBlog.blog |
public | http | ALL | website |
/blog/<model("blog.blog"):blog>/feed |
WebsiteBlog.blog_feed |
public | http | ALL | website |
/blog/<model("blog.blog"):blog>/<model("blog.post", "[('blog_id','=',blog.id)]"):blog_post> |
WebsiteBlog.blog_post |
public | http | ALL | website |
/blog/<model("blog.blog"):blog>/post/<model("blog.post"):blog_post> |
WebsiteBlog.old_blog_post |
public | http | ALL | website |
Models touched (6)
New fields (7)
-
activeBooleandefault=True args: 'Active' -
blog_post_countIntegercompute='_compute_blog_post_count' args: 'Posts' -
blog_post_idsOne2many → blog.postargs: 'blog.post', 'blog_id', 'Blog Posts' -
contentHtmlsanitize=Falsetranslate=html_translate args: 'Content' -
nameCharrequired=Truetranslate=True args: 'Blog Name' -
sequenceIntegerdefault=_default_sequence args: 'Sequence' -
subtitleChartranslate=True args: 'Blog Subtitle'
-
all_tags(self, join=False, min_limit=1) -
message_post(self, *, parent_id=False, subtype_id=False, **kwargs)Temporary workaround to avoid spam. If someone replies on a channel through the 'Presentation Published' email, it should be considered as a note as we don't want all channel followers to be notified of this answer. -
write(self, vals)
New fields (20)
-
activeBooleandefault=True args: 'Active' -
author_avatarBinaryreadonly=Falserelated='author_id.image_128'string='Avatar' -
author_idMany2one → res.partnerdefault=<expr>index='btree_not_null' args: 'res.partner', 'Author' -
author_nameCharreadonly=Falserelated='author_id.display_name'store=Truestring='Author Name' -
blog_idMany2one → blog.blogdefault=<expr>index=Trueondelete='cascade'required=True args: 'blog.blog', 'Blog' -
contentHtmldefault=_default_contentsanitize=Falsetranslate=html_translate args: 'Content' -
create_dateDatetimereadonly=True args: 'Created on' -
create_uidMany2one → res.usersreadonly=True args: 'res.users', 'Created by' -
nameChardefault=''required=Truetranslate=True args: 'Title' -
post_dateDatetimecompute='_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_dateDatetimeargs: 'Published Date' -
subtitleChartranslate=True args: 'Sub Title' -
tag_idsMany2many → blog.tagstring='Tags' args: 'blog.tag' -
teaserTextcompute='_compute_teaser'inverse='_set_teaser'translate=True args: 'Teaser' -
teaser_manualTextstring='Teaser Content'translate=True -
visitsIntegercopy=Falsedefault=0readonly=True args: 'No of Views' -
website_idMany2onereadonly=Truerelated='blog_id.website_id'store=True -
website_message_idsOne2manydomain=<expr> -
write_dateDatetimereadonly=True args: 'Last Updated on' -
write_uidMany2one → res.usersreadonly=True args: 'res.users', 'Last Contributor'
-
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (4)
-
category_idMany2one → blog.tag.categoryindex=True args: 'blog.tag.category', 'Category' -
colorIntegerargs: 'Color' -
nameCharrequired=Truetranslate=True args: 'Name' -
post_idsMany2many → blog.poststring='Posts' args: 'blog.post'
No public methods.
New fields (2)
-
nameCharrequired=Truetranslate=True args: 'Name' -
tag_idsOne2many → blog.tagstring='Tags' args: 'blog.tag', 'category_id'
No public methods.
New fields (0)
No new fields.
Public methods (2)-
configurator_set_menu_links(self, menu_company, module_data) -
get_suggested_controllers(self)
New fields (0)
No new fields.
Public methods (1)-
default_get(self, fields)@api.model
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…