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

[17.0][OU-ADD] maintenance: Migration scripts #4654

Draft
wants to merge 1 commit into
base: 17.0
Choose a base branch
from
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/modules160-170.rst
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ Module coverage 16.0 -> 17.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| mail_plugin | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| maintenance | | |
| maintenance | Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| mass_mailing | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright 2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(env, "maintenance", "17.0.1.0/noupdate_changes.xml")
36 changes: 36 additions & 0 deletions openupgrade_scripts/scripts/maintenance/17.0.1.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright 2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade


def _maintenance_request_company_id(env):
"""We set the company_id value for requests that do not have it.
We get the value of what will be deductively most appropriate (equipment, team or
user).
"""
openupgrade.logged_query(
env.cr,
"""UPDATE maintenance_request AS request
SET company_id = equipment.company_id
FROM maintenance_equipment AS equipment
WHERE request.company_id IS NULL AND request.equipment_id IS NOT NULL""",
)
openupgrade.logged_query(
env.cr,
"""UPDATE maintenance_request AS request
SET company_id = team.company_id
FROM maintenance_team AS team
WHERE request.company_id IS NULL AND request.maintenance_team_id IS NOT NULL""",
)
openupgrade.logged_query(
env.cr,
"""UPDATE maintenance_request AS request
SET company_id = u.company_id
FROM res_users AS u
WHERE request.company_id IS NULL AND request.user_id IS NOT NULL""",
)


@openupgrade.migrate()
def migrate(env, version):
_maintenance_request_company_id(env)
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---Models in module 'maintenance'---
new model maintenance.mixin [abstract]
---Fields in module 'maintenance'---
maintenance / maintenance.equipment / activity_user_id (many2one) : not related anymore
maintenance / maintenance.equipment / activity_user_id (many2one) : now a function
maintenance / maintenance.equipment / expected_mtbf (integer) : NEW
maintenance / maintenance.equipment / maintenance_duration (float) : DEL
maintenance / maintenance.equipment / message_main_attachment_id (many2one): DEL relation: ir.attachment
maintenance / maintenance.equipment / next_action_date (date) : DEL
maintenance / maintenance.equipment / period (integer) : DEL
maintenance / maintenance.equipment.category / message_main_attachment_id (many2one): DEL relation: ir.attachment
maintenance / maintenance.request / activity_user_id (many2one) : not related anymore
maintenance / maintenance.request / activity_user_id (many2one) : now a function
# NOTHING TO DO
maintenance / maintenance.request / company_id (many2one) : now required
# DONE: pre-migration: Define the most appropriate value
maintenance / maintenance.request / instruction_google_slide (char): NEW
maintenance / maintenance.request / instruction_pdf (binary) : NEW attachment: True
maintenance / maintenance.request / instruction_text (html) : NEW
maintenance / maintenance.request / instruction_type (selection) : NEW selection_keys: ['google_slide', 'pdf', 'text'], hasdefault: default
maintenance / maintenance.request / message_main_attachment_id (many2one): DEL relation: ir.attachment
# NOTHING TO DO
maintenance / maintenance.request / recurring_maintenance (boolean): NEW hasdefault: compute
# Pending
maintenance / maintenance.request / repeat_interval (integer) : NEW hasdefault: default
maintenance / maintenance.request / repeat_type (selection) : NEW selection_keys: ['forever', 'until'], hasdefault: default
maintenance / maintenance.request / repeat_unit (selection) : NEW selection_keys: ['day', 'month', 'week', 'year'], hasdefault: default
maintenance / maintenance.request / repeat_until (date) : NEW
# NOTHING TO DO
---XML records in module 'maintenance'---
NEW ir.actions.act_window: maintenance.action_maintenance_configuration
DEL ir.cron: maintenance.maintenance_requests_cron
NEW ir.ui.menu: maintenance.menu_maintenance_config
NEW ir.ui.view: maintenance.maintenance_request_view_activity
NEW ir.ui.view: maintenance.res_config_settings_view_form
DEL mail.alias: maintenance.mail_alias_equipment (noupdate)
Loading