diff --git a/docsource/modules190-200.rst b/docsource/modules190-200.rst index 8da46d62bbc..37d44c74a5b 100644 --- a/docsource/modules190-200.rst +++ b/docsource/modules190-200.rst @@ -1216,7 +1216,7 @@ Module coverage 19.0 -> 20.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| website_sale_wishlist | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| website_slides | | | +| website_slides |Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_slides_forum | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/website_slides/20.0.2.7/noupdate_changes.xml b/openupgrade_scripts/scripts/website_slides/20.0.2.7/noupdate_changes.xml new file mode 100644 index 00000000000..46eedb6e126 --- /dev/null +++ b/openupgrade_scripts/scripts/website_slides/20.0.2.7/noupdate_changes.xml @@ -0,0 +1,64 @@ + + + + AIzaSyDOWlmDW-7DbLmOR9ZsT5AOEXf4n6TFwQA + + + True + True + + + mail.mail_notification_light + + + mail.mail_notification_light + + + +
+

+ Hello

+ You have been enrolled to a new course: Basics of Gardening. +

+
+
+ + Click here to start the course + Click here to get started + +
+
+ Enjoy this exclusive content! +
+
 
+
+ mail.mail_notification_layout +
+ + +
+

+ Hello

+ You have been invited to check out this course: Basics of Gardening. +

+
+
+ + Click here to start the course + Click here to get started + +
+
+ Enjoy this exclusive content! +
+
 
+
+ mail.mail_notification_layout +
+ + mail.mail_notification_light + + + mail.mail_notification_light + +
diff --git a/openupgrade_scripts/scripts/website_slides/20.0.2.7/post-migration.py b/openupgrade_scripts/scripts/website_slides/20.0.2.7/post-migration.py new file mode 100644 index 00000000000..30683d1d73e --- /dev/null +++ b/openupgrade_scripts/scripts/website_slides/20.0.2.7/post-migration.py @@ -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"], + ) diff --git a/openupgrade_scripts/scripts/website_slides/20.0.2.7/pre-migration.py b/openupgrade_scripts/scripts/website_slides/20.0.2.7/pre-migration.py new file mode 100644 index 00000000000..83dcbb97096 --- /dev/null +++ b/openupgrade_scripts/scripts/website_slides/20.0.2.7/pre-migration.py @@ -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) diff --git a/openupgrade_scripts/scripts/website_slides/20.0.2.7/upgrade_analysis.txt b/openupgrade_scripts/scripts/website_slides/20.0.2.7/upgrade_analysis.txt new file mode 100644 index 00000000000..78c763297cb --- /dev/null +++ b/openupgrade_scripts/scripts/website_slides/20.0.2.7/upgrade_analysis.txt @@ -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