Repository
OCA/website · module folder · Try on Runboat
Module version
1.0.0
Category
Website
Folder size
0.1 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/website
Last tracking update
2026-08-07 08:42:59
Authors
Odoo Community Association (OCA), Escodoo
Maintainers
Odoo Community Association (OCA), Escodoo
Committers
Weblate, OCA-git-bot, oca-ci, CristianoMafraJunior
Odoo dependencies
Python dependencies
geoip2
System dependencies
None
Required by
None
Description
This module allows you to schedule blog posts for automatic publication
at a specific date and time.

## Features

- **Scheduled Publication Date**: Add a datetime field to schedule when
  posts should be published
- **Quick Publish Button**: One-click immediate publication from the
  form view
- **Schedule Wizard**: User-friendly wizard to set the publication date
- **Visual Feedback**: Information banner displays scheduled date on the
  form
- **Smart Publication Logic**: Automatically prevents immediate
  publication if a future date is set
- **Automatic Cron Job**: Runs every hour to publish scheduled posts
- **Notification System**: Sends notifications to blog followers when
  posts are published
- **Search Filters**: Filter and group posts by publication or scheduled
  dates

## Technical Details

- Extends `blog.post` model with scheduling fields and methods
- Includes a transient model `blog.post.schedule.date` for the
  scheduling wizard
- Inherits and enhances form and search views from `website_blog`
- The cron job uses `_publish_scheduled_posts()` method to process
  scheduled posts
- Handles edge cases like setting past dates, clearing scheduled dates,
  and multiple record writes

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
blog_post_schedule_date_view_form blog.post.schedule.date.view.form blog.post.schedule.date form New
view_blog_post_calendar_scheduled blog.post.calendar.scheduled blog.post calendar New
view_blog_post_form_scheduled blog.post.form.scheduled blog.post form Inherits website_blog.view_blog_post_form
view_blog_post_search_scheduled blog.post.search.scheduled blog.post search Inherits website_blog.view_blog_post_search
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (2)

New fields (2)
  • is_scheduled Boolean
    default=False help='If checked, the blog post will be scheduled for publication.' string='Schedule'
  • scheduled_publication_date Datetime
    help='If set, the blog post will be automatically published on this date and time. Leave empty to publish immediately.'
Public methods (4)
  • action_publish_now(self)
    Publish the blog post immediately.
  • action_schedule(self)
    Open schedule dialog to set publication date.
  • create(self, vals_list)
    @api.model_create_multi
    Override create to handle scheduled publication during creation.
  • write(self, vals)
    Override write to handle scheduled publication logic.

New fields (2)
  • blog_post_id Many2one → blog.post
    required=True args: 'blog.post'
  • schedule_date Datetime
    required=True string='Publish on'
Public methods (1)
  • action_schedule_date(self)
    Schedule the blog post for publication.