Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docsource/modules190-200.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1216,7 +1216,7 @@ Module coverage 19.0 -> 20.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| |del| website_sale_wishlist | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| website_slides | | |
| website_slides |Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| website_slides_forum | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<record id="base.default_website" model="website">
<field name="website_slide_google_app_key">AIzaSyDOWlmDW-7DbLmOR9ZsT5AOEXf4n6TFwQA</field>
</record>
<record id="digest.digest_digest_default" model="digest.digest">
<field name="kpi_nbr_of_certified_attendees">True</field>
<field name="kpi_nbr_of_new_attendees">True</field>
</record>
<record id="mail_template_channel_completed" model="mail.template">
<field name="email_layout_xmlid">mail.mail_notification_light</field>
</record>
<record id="mail_template_channel_shared" model="mail.template">
<field name="email_layout_xmlid">mail.mail_notification_light</field>
</record>
<record id="mail_template_slide_channel_enroll" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px; font-size: 13px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Hello<br/><br/>
You have been enrolled to a new course: <t t-out="object.channel_id.name or ''">Basics of Gardening</t>.
</p>
</div>
<div style="margin: 32px 0px 32px 0px;">
<a t-att-href="object.invitation_link" style="background-color: #875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
<t t-if="enroll_mode"> Click here to start the course </t>
<t t-else=""> Click here to get started </t>
</a>
</div>
<div style="margin: 0px; padding: 0px; font-size:13px;">
Enjoy this exclusive content!
</div>
<div>&amp;nbsp;</div>
</field>
<field name="email_layout_xmlid">mail.mail_notification_layout</field>
</record>
<record id="mail_template_slide_channel_invite" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px; font-size: 13px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Hello<br/><br/>
You have been invited to check out this course: <t t-out="object.channel_id.name or ''">Basics of Gardening</t>.
</p>
</div>
<div style="margin: 32px 0px 32px 0px;">
<a t-att-href="object.invitation_link" style="background-color: #875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
<t t-if="enroll_mode"> Click here to start the course </t>
<t t-else=""> Click here to get started </t>
</a>
</div>
<div style="margin: 0px; padding: 0px; font-size:13px;">
Enjoy this exclusive content!
</div>
<div>&amp;nbsp;</div>
</field>
<field name="email_layout_xmlid">mail.mail_notification_layout</field>
</record>
<record id="slide_template_published" model="mail.template">
<field name="email_layout_xmlid">mail.mail_notification_light</field>
</record>
<record id="slide_template_shared" model="mail.template">
<field name="email_layout_xmlid">mail.mail_notification_light</field>
</record>
</odoo>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2026 Don Kendall
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(env, "website_slides", "20.0.2.7/noupdate_changes.xml")
openupgrade.delete_record_translations(
env.cr,
"website_slides",
["mail_template_slide_channel_enroll", "mail_template_slide_channel_invite"],
["body_html"],
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2026 Don Kendall
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade

# slide.slide.date_published is spelled published_date in 20.0, the same name
# website's publishable mixin already used elsewhere. Nothing in the analysis
# links the two -- it reports a DEL and a NEW -- so without this the column is
# created empty and every slide loses the date it went live. 39 of them on the
# seed.
#
# Not publish_on, which the analysis also offers as a NEW datetime on this
# model: that is the mixin's "Auto publish on", a future time to publish at,
# and writing a past publication date into it would schedule nothing and mean
# something else.
_renamed_fields = [
("slide.slide", "slide_slide", "date_published", "published_date"),
]


@openupgrade.migrate()
def migrate(env, version):
openupgrade.rename_fields(env, _renamed_fields)
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
---Models in module 'website_slides'---
---Fields in module 'website_slides'---
website_slides / digest.digest / kpi_nbr_of_certified_attendees (boolean): NEW
website_slides / digest.digest / kpi_nbr_of_new_attendees (boolean): NEW
website_slides / slide.channel / publish_on (datetime) : NEW
website_slides / slide.channel / published_date (datetime) : NEW
website_slides / slide.channel / website_message_ids (one2many): DEL relation: mail.message
website_slides / slide.channel.partner / completion_date (datetime) : NEW isfunction: function, stored
website_slides / slide.channel.tag.group / publish_on (datetime) : NEW
website_slides / slide.channel.tag.group / published_date (datetime) : NEW
website_slides / slide.slide / date_published (datetime) : DEL
website_slides / slide.slide / publish_on (datetime) : NEW
website_slides / slide.slide / published_date (datetime) : NEW
website_slides / slide.slide / website_message_ids (one2many): DEL relation: mail.message
website_slides / website.track / slide_channel_id (many2one) : NEW relation: slide.channel
---XML records in module 'website_slides'---
NEW ir.access: website_slides.access_slide_answer_officer
NEW ir.access: website_slides.access_slide_channel_invite
NEW ir.access: website_slides.access_slide_channel_partners_system
NEW ir.access: website_slides.access_slide_channel_tag_employee
NEW ir.access: website_slides.access_slide_channel_tag_group_public
NEW ir.access: website_slides.access_slide_channel_tag_group_user
NEW ir.access: website_slides.access_slide_channel_tag_user
NEW ir.access: website_slides.access_slide_embed_public
NEW ir.access: website_slides.access_slide_embed_user
NEW ir.access: website_slides.access_slide_question_officer
NEW ir.access: website_slides.access_slide_question_public
NEW ir.access: website_slides.access_slide_slide_partner_system
NEW ir.access: website_slides.access_slide_tag_officer
NEW ir.access: website_slides.access_slide_tag_public
NEW ir.access: website_slides.rule_slide_channel_global
NEW ir.access: website_slides.rule_slide_channel_manager
NEW ir.access: website_slides.rule_slide_channel_officer_cw
NEW ir.access: website_slides.rule_slide_channel_officer_r
NEW ir.access: website_slides.rule_slide_channel_partner_manager
NEW ir.access: website_slides.rule_slide_channel_partner_officer
NEW ir.access: website_slides.rule_slide_channel_tag_public
NEW ir.access: website_slides.rule_slide_channel_visibility_public_user
NEW ir.access: website_slides.rule_slide_channel_visibility_signed_in_user
NEW ir.access: website_slides.rule_slide_channel_visibility_signed_in_user_1
NEW ir.access: website_slides.rule_slide_slide_global
NEW ir.access: website_slides.rule_slide_slide_manager
NEW ir.access: website_slides.rule_slide_slide_officer_cw
NEW ir.access: website_slides.rule_slide_slide_officer_r
NEW ir.access: website_slides.rule_slide_slide_partner_manager
NEW ir.access: website_slides.rule_slide_slide_partner_officer
NEW ir.access: website_slides.rule_slide_slide_public_user
NEW ir.access: website_slides.rule_slide_slide_resource_downloadable
NEW ir.access: website_slides.rule_slide_slide_resource_downloadable_1
NEW ir.access: website_slides.rule_slide_slide_resource_downloadable_manager
NEW ir.access: website_slides.rule_slide_slide_resource_officer_crud
NEW ir.access: website_slides.rule_slide_slide_resource_officer_read
NEW ir.access: website_slides.rule_slide_slide_signed_in_user
NEW ir.access: website_slides.rule_slide_slide_signed_in_user_1
ir.actions.act_window: website_slides.rating_rating_action_slide_channel (deleted domain)
NEW ir.actions.act_window: website_slides.slide_channel_partner_action_report_certified
NEW ir.actions.act_window: website_slides.slide_channel_partner_action_send_mail
ir.actions.act_window: website_slides.slide_slide_action (deleted domain)
ir.actions.act_window: website_slides.slide_slide_action_report (deleted domain)
ir.actions.act_window: website_slides.slide_slide_partner_action_from_slide (deleted domain)
NEW ir.actions.act_window: website_slides.website_slides_visitor_slide_channel_action
NEW ir.filters: website_slides.dynamic_snippet_latest_courses_filter
DEL ir.model.access: website_slides.access_slide_answer_all
DEL ir.model.access: website_slides.access_slide_answer_officer
DEL ir.model.access: website_slides.access_slide_channel_employee
DEL ir.model.access: website_slides.access_slide_channel_invite
DEL ir.model.access: website_slides.access_slide_channel_manager
DEL ir.model.access: website_slides.access_slide_channel_officer
DEL ir.model.access: website_slides.access_slide_channel_partners_all
DEL ir.model.access: website_slides.access_slide_channel_partners_system
DEL ir.model.access: website_slides.access_slide_channel_portal
DEL ir.model.access: website_slides.access_slide_channel_public
DEL ir.model.access: website_slides.access_slide_channel_tag_employee
DEL ir.model.access: website_slides.access_slide_channel_tag_group_employee
DEL ir.model.access: website_slides.access_slide_channel_tag_group_portal
DEL ir.model.access: website_slides.access_slide_channel_tag_group_public
DEL ir.model.access: website_slides.access_slide_channel_tag_group_user
DEL ir.model.access: website_slides.access_slide_channel_tag_portal
DEL ir.model.access: website_slides.access_slide_channel_tag_public
DEL ir.model.access: website_slides.access_slide_channel_tag_user
DEL ir.model.access: website_slides.access_slide_embed_portal
DEL ir.model.access: website_slides.access_slide_embed_public
DEL ir.model.access: website_slides.access_slide_embed_user
DEL ir.model.access: website_slides.access_slide_question_employee
DEL ir.model.access: website_slides.access_slide_question_officer
DEL ir.model.access: website_slides.access_slide_question_portal
DEL ir.model.access: website_slides.access_slide_question_public
DEL ir.model.access: website_slides.access_slide_slide_employee
DEL ir.model.access: website_slides.access_slide_slide_manager
DEL ir.model.access: website_slides.access_slide_slide_officer
DEL ir.model.access: website_slides.access_slide_slide_partner_all
DEL ir.model.access: website_slides.access_slide_slide_partner_system
DEL ir.model.access: website_slides.access_slide_slide_portal
DEL ir.model.access: website_slides.access_slide_slide_public
DEL ir.model.access: website_slides.access_slide_slide_resource_all
DEL ir.model.access: website_slides.access_slide_slide_resource_internal
DEL ir.model.access: website_slides.access_slide_slide_resource_portal
DEL ir.model.access: website_slides.access_slide_slide_resource_public
DEL ir.model.access: website_slides.access_slide_slide_resource_publisher
DEL ir.model.access: website_slides.access_slide_tag_employee
DEL ir.model.access: website_slides.access_slide_tag_officer
DEL ir.model.access: website_slides.access_slide_tag_portal
DEL ir.model.access: website_slides.access_slide_tag_public
ir.model.constraint: website_slides.constraint_slide_channel_check_enroll (changed definition: is now 'False' ('CHECK(visibility != 'members' OR enroll = 'invite')'))
ir.model.constraint: website_slides.constraint_slide_channel_partner_channel_partner_uniq (changed definition: is now 'False' ('unique(channel_id, partner_id)'))
ir.model.constraint: website_slides.constraint_slide_channel_partner_check_completion (changed definition: is now 'False' ('check(completion >= 0 and completion <= 100)'))
ir.model.constraint: website_slides.constraint_slide_slide_exclusion_html_content_and_url (changed definition: is now 'False' ('CHECK(html_content IS NULL OR url IS NULL)'))
ir.model.constraint: website_slides.constraint_slide_slide_partner_check_vote (changed definition: is now 'False' ('CHECK(vote IN (-1, 0, 1))'))
ir.model.constraint: website_slides.constraint_slide_slide_partner_slide_partner_uniq (changed definition: is now 'False' ('unique(slide_id, partner_id)'))
ir.model.constraint: website_slides.constraint_slide_slide_resource_check_file_type (changed definition: is now 'False' ('CHECK (resource_type != 'file' OR link IS NULL)'))
ir.model.constraint: website_slides.constraint_slide_slide_resource_check_url (changed definition: is now 'False' ('CHECK (resource_type != 'url' OR link IS NOT NULL)'))
ir.model.constraint: website_slides.constraint_slide_tag_slide_tag_unique (changed definition: is now 'False' ('UNIQUE(name)'))
DEL ir.rule: website_slides.rule_slide_channel_global (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_manager (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_officer_cw (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_officer_r (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_partner_manager (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_partner_officer (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_tag_public (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_visibility_public_user (noupdate)
DEL ir.rule: website_slides.rule_slide_channel_visibility_signed_in_user (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_global (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_manager (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_officer_cw (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_officer_r (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_partner_manager (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_partner_officer (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_public_user (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_resource_downloadable (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_resource_downloadable_manager (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_resource_officer_crud (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_resource_officer_read (noupdate)
DEL ir.rule: website_slides.rule_slide_slide_signed_in_user (noupdate)
NEW ir.ui.view: website_slides.digest_digest_view_form
NEW ir.ui.view: website_slides.dynamic_filter_template_slide_channel_card
NEW ir.ui.view: website_slides.website_slides_visitor_page_view_search
NEW ir.ui.view: website_slides.website_slides_visitor_page_view_tree
NEW ir.ui.view: website_slides.website_slides_visitor_track_view_tree
NEW ir.ui.view: website_slides.website_slides_visitor_view_form
NEW ir.ui.view: website_slides.website_slides_visitor_view_tree
DEL ir.ui.view: website_slides.mail_notification_channel_invite (noupdate)
DEL ir.ui.view: website_slides.slide_share_link
DEL ir.ui.view: website_slides.slide_share_modal
DEL ir.ui.view: website_slides.slide_share_modal_body
DEL ir.ui.view: website_slides.slide_share_modal_header
DEL ir.ui.view: website_slides.slide_share_social
DEL ir.ui.view: website_slides.slide_social_email
DEL ir.ui.view: website_slides.slide_social_embed
mail.message.subtype: website_slides.mt_channel_slide_published (noupdate switched)
mail.template: website_slides.mail_template_channel_completed (noupdate switched)
mail.template: website_slides.mail_template_channel_shared (noupdate switched)
mail.template: website_slides.mail_template_slide_channel_enroll (noupdate switched)
mail.template: website_slides.mail_template_slide_channel_invite (noupdate switched)
mail.template: website_slides.slide_template_published (noupdate switched)
mail.template: website_slides.slide_template_shared (noupdate switched)
NEW portal.entry: website_slides.portal_slides_client
slide.channel.tag: website_slides.slide_channel_tag_level_advanced (noupdate switched)
slide.channel.tag: website_slides.slide_channel_tag_level_basic (noupdate switched)
slide.channel.tag: website_slides.slide_channel_tag_level_intermediate (noupdate switched)
slide.channel.tag.group: website_slides.slide_channel_tag_group_data_other (noupdate switched)
slide.channel.tag.group: website_slides.slide_channel_tag_group_level (noupdate switched)
website.menu: website_slides.website_menu_slides (noupdate switched)
NEW website.snippet.filter: website_slides.dynamic_filter_latest_courses
Loading