Skip to content

Commit

Permalink
[MIG] base v17
Browse files Browse the repository at this point in the history
  • Loading branch information
royle-viindoo committed May 15, 2024
1 parent f4f7012 commit 33e5b63
Show file tree
Hide file tree
Showing 8 changed files with 356 additions and 22 deletions.
2 changes: 1 addition & 1 deletion docsource/modules160-170.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Module coverage 16.0 -> 17.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| barcodes_gs1_nomenclature | |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| base | | |
| base |Done (partial) | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| base_address_extended | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down

This file was deleted.

4 changes: 0 additions & 4 deletions openupgrade_scripts/scripts/base/16.0.1.3/tests/data.py

This file was deleted.

This file was deleted.

10 changes: 10 additions & 0 deletions openupgrade_scripts/scripts/base/17.0.1.3/end-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo)
# Copyright 2022 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):
"""Call disable_invalid_filters in every edition of openupgrade"""
openupgrade.disable_invalid_filters(env)
37 changes: 37 additions & 0 deletions openupgrade_scripts/scripts/base/17.0.1.3/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo)
# Copyright 2023 Hunki Enterprises BV (https://hunki-enterprises.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from openupgradelib import openupgrade

_deleted_xml_records = [
"base.icp_mail_bounce_alias",
"base.icp_mail_catchall_alias",
"base.icp_mail_default_from",
"base.res_partner_rule_private_employee",
"base.res_partner_rule_private_group",
"account.data_account_type_direct_costs",
"account.data_account_type_equity",
"account.data_account_type_expenses",
"account.data_account_type_fixed_assets",
"account.data_account_type_liquidity",
"account.data_account_type_non_current_assets",
"account.data_account_type_non_current_liabilities",
"account.data_account_type_other_income",
"account.data_account_type_payable",
"account.data_account_type_prepayments",
"account.data_account_type_receivable",
"account.data_account_type_revenue",
"account.data_unaffected_earnings",
"account.account_tax_carryover_line_comp_rule",
"account.analytic_default_comp_rule",
]


@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(env.cr, "base", "17.0.1.3/noupdate_changes.xml")
openupgrade.delete_records_safely_by_xml_id(
env,
_deleted_xml_records,
)
55 changes: 55 additions & 0 deletions openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo)
# Copyright 2020 Odoo Community Association (OCA)
# Copyright 2020 Opener B.V. <stefan@opener.am>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import logging

from openupgradelib import openupgrade

from odoo import tools

from odoo.addons.openupgrade_scripts.apriori import merged_modules, renamed_modules

_logger = logging.getLogger(__name__)

_xmlids_renames = [
(
"mail.access_res_users_settings_all",
"base.access_res_users_settings_all",
),
(
"mail.access_res_users_settings_user",
"base.access_res_users_settings_user",
),
(
"mail.res_users_settings_rule_admin",
"base.res_users_settings_rule_admin",
),
(
"mail.res_users_settings_rule_user",
"base.res_users_settings_rule_user",
),
(
"mail.constraint_res_users_settings_unique_user_id",
"base.constraint_res_users_settings_unique_user_id",
),
]


@openupgrade.migrate(use_env=False)
def migrate(cr, version):
"""
Don't request an env for the base pre-migration as flushing the env in
odoo/modules/registry.py will break on the 'base' module not yet having
been instantiated.
"""
if "openupgrade_framework" not in tools.config["server_wide_modules"]:
_logger.error(
"openupgrade_framework is not preloaded. You are highly "
"recommended to run the Odoo with --load=openupgrade_framework "
"when migrating your database."
)
openupgrade.update_module_names(cr, renamed_modules.items())
openupgrade.update_module_names(cr, merged_modules.items(), merge_modules=True)
openupgrade.clean_transient_models(cr)
openupgrade.rename_xmlids(cr, _xmlids_renames)
253 changes: 253 additions & 0 deletions openupgrade_scripts/scripts/base/17.0.1.3/upgrade_analysis_work.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
---Models in module 'base'---
obsolete model ir.server.object.lines
new model ir.model.inherit
model res.users.settings (moved from mail)
# TODO

---Fields in module 'base'---
base / ir.actions.act_url / target (selection) : selection_keys is now '['download', 'new', 'self']' ('['new', 'self']')
base / ir.actions.act_window / mobile_view_mode (char) : NEW hasdefault: default
base / ir.actions.server / evaluation_type (selection) : NEW selection_keys: ['equation', 'value'], hasdefault: default
base / ir.actions.server / fields_lines (one2many) : DEL relation: ir.server.object.lines
base / ir.actions.server / resource_ref (reference) : NEW
base / ir.actions.server / selection_value (many2one) : NEW relation: ir.model.fields.selection
# TODO

base / ir.actions.server / state (selection) : selection_keys is now '['code', 'multi', 'object_create', 'object_write', 'webhook']' ('['code', 'multi', 'object_create', 'object_write']')
# NOTHING TO DO: new feature

base / ir.actions.server / update_boolean_value (selection): NEW selection_keys: ['false', 'true'], hasdefault: default
base / ir.actions.server / update_field_id (many2one) : NEW relation: ir.model.fields, hasdefault: compute
base / ir.actions.server / update_m2m_operation (selection): NEW selection_keys: ['add', 'clear', 'remove', 'set'], hasdefault: default
base / ir.actions.server / update_path (char) : NEW hasdefault: default
base / ir.actions.server / update_related_model_id (many2one): NEW relation: ir.model, isfunction: function, stored
base / ir.actions.server / value (text) : NEW
base / ir.actions.server / webhook_field_ids (many2many) : NEW relation: ir.model.fields
base / ir.actions.server / webhook_url (char) : NEW
# TODO

base / ir.cron / cron_name (char) : not related anymore
base / ir.cron / cron_name (char) : now a function
base / ir.mail_server / _order : _order is now 'sequence, id' ('sequence')
base / ir.mail_server / smtp_authentication (selection): selection_keys is now '['certificate', 'cli', 'login']' ('['certificate', 'login']')
# NOTHING TO DO

base / ir.model.fields / currency_field (char) : NEW
base / ir.model.fields / sanitize (boolean) : NEW hasdefault: default
base / ir.model.fields / sanitize_attributes (boolean) : NEW hasdefault: default
base / ir.model.fields / sanitize_form (boolean) : NEW hasdefault: default
base / ir.model.fields / sanitize_overridable (boolean): NEW hasdefault: default
base / ir.model.fields / sanitize_style (boolean) : NEW hasdefault: default
base / ir.model.fields / sanitize_tags (boolean) : NEW hasdefault: default
base / ir.model.fields / strip_classes (boolean) : NEW hasdefault: default
base / ir.model.fields / strip_style (boolean) : NEW hasdefault: default
base / ir.model.inherit / model_id (many2one) : NEW relation: ir.model, required
base / ir.model.inherit / parent_field_id (many2one) : NEW relation: ir.model.fields
base / ir.model.inherit / parent_id (many2one) : NEW relation: ir.model, required
# TODO

base / ir.property / type (selection) : selection_keys is now '['binary', 'boolean', 'char', 'date', 'datetime', 'float', 'html', 'integer', 'many2one', 'selection', 'text']' ('['binary', 'boolean', 'char', 'date', 'datetime', 'float', 'integer', 'many2one', 'selection', 'text']')
# NOTHING TO DO: new feature

base / ir.server.object.lines / col1 (many2one) : DEL relation: ir.model.fields, required
base / ir.server.object.lines / evaluation_type (selection) : DEL required, selection_keys: ['equation', 'reference', 'value']
base / ir.server.object.lines / server_id (many2one) : DEL relation: ir.actions.server
base / ir.server.object.lines / value (text) : DEL required
base / ir.ui.view / field_parent (char) : DEL
base / res.company / all_child_ids (one2many) : NEW relation: res.company
base / res.company / base_onboarding_company_state (selection): DEL selection_keys: ['done', 'just_done', 'not_done']
base / res.company / favicon (binary) : DEL attachment: True
base / res.company / parent_path (char) : NEW
base / res.company / uses_default_logo (boolean) : NEW isfunction: function, stored
base / res.country / code (char) : now required
base / res.partner / _order : _order is now 'complete_name ASC, id DESC' ('display_name ASC, id DESC')
base / res.partner / complete_name (char) : NEW isfunction: function, stored
base / res.partner / display_name (char) : not stored anymore
base / res.partner / type (selection) : selection_keys is now '['contact', 'delivery', 'invoice', 'other']' ('['contact', 'delivery', 'invoice', 'other', 'private']')
# TODO

base / res.users / res_users_settings_id (many2one): previously in module mail
base / res.users / res_users_settings_ids (one2many): previously in module mail
base / res.users.settings / _order : previously in module mail
base / res.users.settings / display_name (char) : previously in module mail
base / res.users.settings / user_id (many2one) : previously in module mail
# NOTHING TO DO

---XML records in module 'base'---
NEW ir.actions.act_window: base.ir_client_actions_report
DEL ir.actions.act_window: base.action_open_base_onboarding_company
DEL ir.actions.client: base.modules_act_cl
DEL ir.actions.client: base.modules_updates_act_cl
DEL ir.actions.server: base.action_server_module_immediate_install
# NOTHING TO DO: noupdate records

DEL ir.config_parameter: base.icp_mail_bounce_alias (noupdate)
DEL ir.config_parameter: base.icp_mail_catchall_alias (noupdate)
DEL ir.config_parameter: base.icp_mail_default_from (noupdate)
# DONE: removed in post-migration

NEW ir.cron: base.ir_cron_res_users_deletion
NEW ir.model.access: base.access_ir_model_inherit
NEW ir.model.access: base.access_res_company_employee
NEW ir.model.access: base.access_res_company_portal
NEW ir.model.access: base.access_res_company_public
NEW ir.model.access: base.access_res_country_employee
NEW ir.model.access: base.access_res_country_group_employee
NEW ir.model.access: base.access_res_country_group_portal
NEW ir.model.access: base.access_res_country_group_public
NEW ir.model.access: base.access_res_country_portal
NEW ir.model.access: base.access_res_country_public
NEW ir.model.access: base.access_res_country_state_employee
NEW ir.model.access: base.access_res_country_state_portal
NEW ir.model.access: base.access_res_country_state_public
NEW ir.model.access: base.access_res_currency_employee
NEW ir.model.access: base.access_res_currency_portal
NEW ir.model.access: base.access_res_currency_public
NEW ir.model.access: base.access_res_currency_rate_employee
NEW ir.model.access: base.access_res_currency_rate_portal
NEW ir.model.access: base.access_res_currency_rate_public
NEW ir.model.access: base.access_res_lang_employee
NEW ir.model.access: base.access_res_lang_group_system
NEW ir.model.access: base.access_res_lang_portal
NEW ir.model.access: base.access_res_lang_public
NEW ir.model.access: base.access_res_users_employee
NEW ir.model.access: base.access_res_users_log_system
NEW ir.model.access: base.access_res_users_portal
NEW ir.model.access: base.access_res_users_public
# NOTHING TO DO: noupdate records

NEW ir.model.access: base.access_res_users_settings_all [renamed from mail module]
NEW ir.model.access: base.access_res_users_settings_user [renamed from mail module]
# DONE: renamed in pre-migration

DEL ir.model.access: base.access_ir_server_object_lines_group_system
DEL ir.model.access: base.access_res_company_group_user
DEL ir.model.access: base.access_res_country_group_all
DEL ir.model.access: base.access_res_country_group_group_all
DEL ir.model.access: base.access_res_country_state_group_all
DEL ir.model.access: base.access_res_currency_group_all
DEL ir.model.access: base.access_res_currency_rate_group_all
DEL ir.model.access: base.access_res_lang_group_all
DEL ir.model.access: base.access_res_lang_group_user
DEL ir.model.access: base.access_res_users_all
DEL ir.model.access: base.access_res_users_log_all
NEW ir.model.constraint: base.constraint_ir_model_fields_name_manual_field
NEW ir.model.constraint: base.constraint_ir_model_inherit_uniq
# NOTHING TO DO: noupdate records

NEW ir.model.constraint: base.constraint_res_users_settings_unique_user_id [renamed from mail module]
# DONE: renamed in pre-migration

NEW ir.module.category: base.module_category_services_appointment
NEW ir.module.module: base.module_sale_amazon (noupdate)
# NOTHING TO DO: new records

NEW ir.rule: base.res_users_settings_rule_admin [renamed from mail module] (noupdate)
NEW ir.rule: base.res_users_settings_rule_user [renamed from mail module] (noupdate)
# DONE: renamed in pre-migration

DEL ir.rule: base.res_partner_rule_private_employee (noupdate)
DEL ir.rule: base.res_partner_rule_private_group (noupdate)
# DONE: removed in post-migration

NEW ir.ui.menu: base.menu_ir_client_actions_report
DEL ir.ui.menu: base.menu_board_root
DEL ir.ui.menu: base.menu_module_updates
DEL ir.ui.menu: base.menu_reporting_config
DEL ir.ui.menu: base.menu_reporting_dashboard
DEL ir.ui.menu: base.module_mi
NEW ir.ui.view: base.no_contact
NEW ir.ui.view: base.res_users_identitycheck_view_form
NEW ir.ui.view: base.res_users_identitycheck_view_form_revokedevices
NEW ir.ui.view: base.view_client_action_form
NEW ir.ui.view: base.view_client_action_tree
NEW ir.ui.view: base.view_country_search
DEL ir.ui.view: base.base_onboarding_company_form
DEL ir.ui.view: base.identity_check_wizard
DEL ir.ui.view: base.onboarding_company_step
DEL ir.ui.view: base.onboarding_container
DEL ir.ui.view: base.onboarding_step
DEL ir.ui.view: base.view_module_category_tree
# NOTHING TO DO: noupdate records

NEW res.country.group: base.eurasian_economic_union (noupdate)
# NOTHING TO DO: new record

NEW res.country.state: base.state_hk_hk
NEW res.country.state: base.state_hk_kln
NEW res.country.state: base.state_hk_nt
NEW res.country.state: base.state_ke_01
NEW res.country.state: base.state_ke_02
NEW res.country.state: base.state_ke_03
NEW res.country.state: base.state_ke_04
NEW res.country.state: base.state_ke_05
NEW res.country.state: base.state_ke_06
NEW res.country.state: base.state_ke_07
NEW res.country.state: base.state_ke_08
NEW res.country.state: base.state_ke_09
NEW res.country.state: base.state_ke_10
NEW res.country.state: base.state_ke_11
NEW res.country.state: base.state_ke_12
NEW res.country.state: base.state_ke_13
NEW res.country.state: base.state_ke_14
NEW res.country.state: base.state_ke_15
NEW res.country.state: base.state_ke_16
NEW res.country.state: base.state_ke_17
NEW res.country.state: base.state_ke_18
NEW res.country.state: base.state_ke_19
NEW res.country.state: base.state_ke_20
NEW res.country.state: base.state_ke_21
NEW res.country.state: base.state_ke_22
NEW res.country.state: base.state_ke_23
NEW res.country.state: base.state_ke_24
NEW res.country.state: base.state_ke_25
NEW res.country.state: base.state_ke_26
NEW res.country.state: base.state_ke_27
NEW res.country.state: base.state_ke_28
NEW res.country.state: base.state_ke_29
NEW res.country.state: base.state_ke_30
NEW res.country.state: base.state_ke_31
NEW res.country.state: base.state_ke_32
NEW res.country.state: base.state_ke_33
NEW res.country.state: base.state_ke_34
NEW res.country.state: base.state_ke_35
NEW res.country.state: base.state_ke_36
NEW res.country.state: base.state_ke_37
NEW res.country.state: base.state_ke_38
NEW res.country.state: base.state_ke_39
NEW res.country.state: base.state_ke_40
NEW res.country.state: base.state_ke_41
NEW res.country.state: base.state_ke_42
NEW res.country.state: base.state_ke_43
NEW res.country.state: base.state_ke_44
NEW res.country.state: base.state_ke_45
NEW res.country.state: base.state_ke_46
NEW res.country.state: base.state_ke_47
NEW res.country.state: base.state_uy_01
NEW res.country.state: base.state_uy_02
NEW res.country.state: base.state_uy_03
NEW res.country.state: base.state_uy_04
NEW res.country.state: base.state_uy_05
NEW res.country.state: base.state_uy_06
NEW res.country.state: base.state_uy_07
NEW res.country.state: base.state_uy_08
NEW res.country.state: base.state_uy_09
NEW res.country.state: base.state_uy_10
NEW res.country.state: base.state_uy_11
NEW res.country.state: base.state_uy_12
NEW res.country.state: base.state_uy_13
NEW res.country.state: base.state_uy_14
NEW res.country.state: base.state_uy_15
NEW res.country.state: base.state_uy_16
NEW res.country.state: base.state_uy_17
NEW res.country.state: base.state_uy_18
NEW res.country.state: base.state_uy_19
# NOTHING TO DO: noupdate records

NEW res.currency: base.SLE (noupdate)
# NOTHING TO DO: new record

DEL res.groups: base.group_private_addresses
NEW res.lang: base.lang_en_NZ
NEW res.lang: base.lang_es_419
# NOTHING TO DO: noupdate records

0 comments on commit 33e5b63

Please sign in to comment.