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 #2660

Merged
merged 2 commits into from
Jun 6, 2021
Merged
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 doc/source/modules130-140.rst
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ Module coverage 13.0 -> 14.0
+--------------------------------------------+-------------------------------------------------+
|lunch | |
+--------------------------------------------+-------------------------------------------------+
|mail | |
|mail | Done |
+--------------------------------------------+-------------------------------------------------+
|mail_bot | |
+--------------------------------------------+-------------------------------------------------+
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<record id="base.partner_root" model="res.partner">
<!-- <record id="base.partner_root" model="res.partner">
<field name="email">[email protected]</field>
<field name="image_1920" type="base64" file="mail/static/src/img/odoobot.png"/>
<field name="name">OdooBot</field>
Expand All @@ -10,5 +10,5 @@
</record>
<record id="module_install_notification" model="mail.message">
<field name="channel_ids" eval="[(4, ref('mail.channel_all_employees'))]"/>
</record>
</record> -->
</odoo>
16 changes: 16 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,16 @@
# Copyright 2021 ForgeFlow S.L. <https://www.forgeflow.com>
# Copyright 2021 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
# Current noupdate changes are better to not be applied for preserving continuity
# openupgrade.load_data(env.cr, "mail", "14.0.1.0/noupdate_changes.xml")
openupgrade.delete_records_safely_by_xml_id(
env,
[
"mail.mail_followers_read_write_own",
],
)
42 changes: 42 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,42 @@
# Copyright 2021 ForgeFlow S.L. <https://www.forgeflow.com>
# Copyright 2021 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade


def fill_mail_tracking_value_field(env):
"""Now the field is a hard many2one reference, so we need to traverse the
ir.model.fields record and fill it.

As the column is required, we do it on pre, and we need also to remove those
records whose field reference doesn't exist anymore.
"""
openupgrade.logged_query(env.cr, "ALTER TABLE mail_tracking_value ADD field int4")
openupgrade.logged_query(
env.cr,
"""
UPDATE mail_tracking_value mtv
SET field = imf.id
FROM ir_model_fields imf
JOIN mail_message mm ON imf.model = mm.model
WHERE imf.name = mtv.{} AND mtv.mail_message_id = mm.id
""".format(
openupgrade.get_legacy_name("field")
),
)
openupgrade.logged_query(
env.cr, "DELETE FROM mail_tracking_value WHERE field IS NULL"
)


@openupgrade.migrate()
def migrate(env, version):
openupgrade.rename_models(
env.cr, [("email_template.preview", "mail.template.preview")]
)
openupgrade.rename_tables(
env.cr, [("email_template_preview", "mail_template_preview")]
)
openupgrade.set_xml_ids_noupdate_value(env, "mail", ["mail_channel_rule"], True)
openupgrade.rename_columns(env.cr, {"mail_tracking_value": [("field", None)]})
fill_mail_tracking_value_field(env)
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: renamed model and table

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: New feature only used for now by website_slides (or maybe enterprise) modules, for a kind of tier validation workflow

mail / mail.alias / alias_bounced_content (html) : NEW
# NOTHING TO DO: New feature for specifying the message to return when bouncing. Not required and if empty, fallback one is used.

mail / mail.channel / active (boolean) : NEW hasdefault
# NOTHING TO DO: New feature that allows you to hide a channel without removing it. Let Odoo to fill the default (True).

mail / mail.mail / description (char) : previously in module website_mail
mail / mail.message / description (char) : previously in module website_mail
# NOTHING TO DO: Handled by regular Odoo update mechanism

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

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: pre-migration: pre-create the field and fill it with the id of the field from the original column, and remove records for obsolete fields

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" with no changes from 13.0

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: New noupdate="1" records

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