Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[14.0][MIG] mail migration #2659

Closed
wants to merge 4 commits into from
Closed
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
32 changes: 32 additions & 0 deletions openupgrade_scripts/scripts/mail/14.0.1.0/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright 2021 ForgeFlow S.L. <https://www.forgeflow.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade
MiquelRForgeFlow marked this conversation as resolved.
Show resolved Hide resolved


def fill_mail_tracking_value_field(env):
openupgrade.logged_query(
env.cr,
"""
UPDATE mail_tracking_value mtv
SET field = imf.id
FROM ir_model_fields imf
JOIN mail_message mm ON mtv.mail_message_id = mm.id
WHERE imf.name = mtv.{} AND imf.model = mm.model
""".format(
openupgrade.get_legacy_name("field")
),
)


@openupgrade.migrate()
def migrate(env, version):
fill_mail_tracking_value_field(env)
openupgrade.load_data(
env.cr, "mail", "openupgrade_scripts/scripts/mail/14.0.1.0/noupdate_changes.xml"
)
openupgrade.delete_records_safely_by_xml_id(
env,
[
"mail.mail_followers_read_write_own",
],
)
18 changes: 18 additions & 0 deletions openupgrade_scripts/scripts/mail/14.0.1.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2021 ForgeFlow S.L. <https://www.forgeflow.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
openupgrade.rename_models(
env.cr, [("email_template.preview", "mail.template.preview")]
)
openupgrade.set_xml_ids_noupdate_value(env, "mail", "mail_channel_rule", True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
openupgrade.set_xml_ids_noupdate_value(env, "mail", "mail_channel_rule", True)
openupgrade.set_xml_ids_noupdate_value(env, "mail", ["mail_channel_rule"], True)

openupgrade.update_module_moved_fields(
env.cr, "mail.mail", ["description"], "website_mail", "mail"
)
openupgrade.update_module_moved_fields(
env.cr, "mail.message", ["description"], "website_mail", "mail"
)
openupgrade.rename_columns(env.cr, [("field", None)])
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---Models in module 'mail'---
obsolete model email_template.preview (renamed to mail.template.preview) [transient]
new model mail.template.preview (renamed from email_template.preview) [transient]
# DONE: pre-migration: module renamed

obsolete model mail.address.mixin [abstract]
new model mail.render.mixin [abstract]
new model mail.blacklist.remove [transient]
# NOTHING TO DO.

---Fields in module 'mail'---
mail / ir.ui.view / type (False) : selection_keys is now '['activity', 'calendar', 'form', 'gantt', 'graph', 'kanban', 'pivot', 'qweb', 'search', 'tree']' ('['activity', 'calendar', 'diagram', 'form', 'gantt', 'graph', 'kanban', 'pivot', 'qweb', 'search', 'tree']')
# NOTHING TO DO: Add new view type diagram

mail / mail.activity / request_partner_id (many2one) : NEW relation:
# NOTHING TO DO: Filled automatically when creating the activity

mail / mail.alias / alias_bounced_content (html) : NEW
# NOTHING TO DO: New feature

mail / mail.channel / active (boolean) : NEW hasdefault
# NOTHING TO DO: New feature that allows you to hide a channel without removing it. No need to precreate as the model doesn't usually has a lot of records

mail / mail.mail / description (char) : previously in module website_mail
mail / mail.message / description (char) : previously in module website_mail
# DONE: pre-migration: Updated module in fields

mail / mail.message / is_internal (boolean) : NEW
# NOTHING TO DO: New feature. You can hide messages from some users independently from subtype configuration

mail / mail.template / copyvalue (char) : not stored anymore
mail / mail.template / model_object_field (many2one) : not stored anymore
mail / mail.template / null_value (char) : not stored anymore
mail / mail.template / sub_model_object_field (many2one): not stored anymore
mail / mail.template / sub_object (many2one) : not stored anymore
# NOTHING TO DO: fields don't need to be stored any more. They are now variables used to create expressions in advanced tab in mail templates

mail / mail.template / user_signature (boolean) : DEL
# NOTHING TO DO: User signature not a feature anymore. Not deleted to preserve data

mail / mail.tracking.value / field (char) : relation is now 'ir.model.fields' ('False') [nothing to do]
mail / mail.tracking.value / field (char) : type is now 'many2one' ('char')
# DONE: pre-migration: rename field column
# DONE: post-migration: filled the column with the id of the fields form the original column

mail / res.users / alias_id (many2one) : DEL relation: mail.alias
mail / res.users / out_of_office_message (char) : DEL
# NOTHING TO DO: old features not used in new version. Alias id is not required anymore.

---XML records in module 'mail'---
NEW ir.actions.act_window: mail.mail_notification_action
NEW ir.actions.act_window: mail.mail_template_preview_action
DEL ir.actions.act_window: mail.wizard_email_template_preview
NEW ir.model.access: mail.access_mail_blacklist_remove_system
NEW ir.model.access: mail.access_mail_channel_partner_user
NEW ir.model.access: mail.access_mail_compose_message
NEW ir.model.access: mail.access_mail_compose_message_portal
NEW ir.model.access: mail.access_mail_resend_cancel
NEW ir.model.access: mail.access_mail_resend_message
NEW ir.model.access: mail.access_mail_resend_partner
NEW ir.model.access: mail.access_mail_template_preview
NEW ir.model.access: mail.access_mail_wizard_invite
NEW ir.model.access: mail.ir_actions_report_access_user
DEL ir.model.access: mail.access mail_channel_partner_user
DEL ir.model.access: mail.access_mail_followers_portal
DEL ir.model.access: mail.access_mail_thread_all
NEW ir.ui.menu: mail.mail_menu_technical
NEW ir.ui.menu: mail.mail_notification_menu
NEW ir.ui.view: mail.assets_backend_prod_only
NEW ir.ui.view: mail.assets_tests
NEW ir.ui.view: mail.mail_blacklist_remove_view_form
NEW ir.ui.view: mail.mail_bounce_alias_security
NEW ir.ui.view: mail.mail_message_view_form
NEW ir.ui.view: mail.mail_notification_view_form
NEW ir.ui.view: mail.mail_notification_view_tree
NEW ir.ui.view: mail.mail_template_preview_view_form
NEW ir.ui.view: mail.qunit_mobile_suite
NEW ir.ui.view: mail.res_partner_view_kanban_inherit_mail
NEW ir.ui.view: mail.res_partner_view_tree_inherit_mail
NEW ir.ui.view: mail.tests_assets
DEL ir.ui.view: mail.email_template_preview_form
DEL ir.ui.view: mail.js_test_assets
DEL ir.ui.view: mail.res_partner_view_form_short
DEL ir.ui.view: mail.view_message_form
# NOTHING TO DO: noupdate="0" records

ir.rule: mail.mail_channel_rule (noupdate) (noupdate switched)
# DONE: pre-migration: noupdate changed to "1"

NEW ir.rule: mail.ir_rule_mail_channel_partner_group_user (noupdate)
NEW ir.rule: mail.mail_compose_message_rule (noupdate)
NEW mail.channel.partner: mail.channel_partner_general_channel_for_admin (noupdate)
# NOTHING TO DO: noupdate="1" records

DEL ir.rule: mail.mail_followers_read_write_own (noupdate)
# DONE: post-migration: try to delete