diff --git a/docsource/modules170-180.rst b/docsource/modules170-180.rst index b9b1f24a9718..d2edfe664d59 100644 --- a/docsource/modules170-180.rst +++ b/docsource/modules170-180.rst @@ -962,7 +962,7 @@ Module coverage 17.0 -> 18.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | sale_product_matrix | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| sale_project | | | +| sale_project |Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | sale_project_stock | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/sale_project/18.0.1.0/post-migration.py b/openupgrade_scripts/scripts/sale_project/18.0.1.0/post-migration.py new file mode 100644 index 000000000000..cb1a7bab1b92 --- /dev/null +++ b/openupgrade_scripts/scripts/sale_project/18.0.1.0/post-migration.py @@ -0,0 +1,22 @@ +# Copyright 2025 Le Filament (https://le-filament.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade, openupgrade_180 + + +def _convert_company_dependent(env): + openupgrade_180.convert_company_dependent( + env, + "product.template", + "project_id", + ) + openupgrade_180.convert_company_dependent( + env, + "product.template", + "project_template_id", + ) + + +@openupgrade.migrate() +def migrate(env, version): + _convert_company_dependent(env) diff --git a/openupgrade_scripts/scripts/sale_project/18.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/sale_project/18.0.1.0/pre-migration.py new file mode 100644 index 000000000000..a51b4afc7c93 --- /dev/null +++ b/openupgrade_scripts/scripts/sale_project/18.0.1.0/pre-migration.py @@ -0,0 +1,40 @@ +# Copyright 2025 Le Filament (https://le-filament.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +def _fill_project_reinvoiced_sale_order_id(env): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE project_project ADD COLUMN + IF NOT EXISTS reinvoiced_sale_order_id INTEGER + """, + ) + openupgrade.logged_query( + env.cr, + """ + UPDATE project_project p + SET reinvoiced_sale_order_id = sol.order_id + FROM sale_order_line sol + WHERE p.reinvoiced_sale_order_id IS NULL + AND p.sale_line_id IS NOT NULL + AND p.sale_line_id = sol.id + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + if openupgrade.column_exists(env.cr, "product_template", "project_id"): + openupgrade.rename_columns( + env.cr, + {"product_template": [("project_id", None)]}, + ) + if openupgrade.column_exists(env.cr, "product_template", "project_template_id"): + openupgrade.rename_columns( + env.cr, + {"product_template": [("project_template_id", None)]}, + ) + _fill_project_reinvoiced_sale_order_id(env) diff --git a/openupgrade_scripts/scripts/sale_project/18.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/sale_project/18.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..8bf730b587e1 --- /dev/null +++ b/openupgrade_scripts/scripts/sale_project/18.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,40 @@ +---Models in module 'sale_project'--- +---Fields in module 'sale_project'--- +sale_project / product.product / service_tracking (selection) : module is now 'product' ('sale_project') +sale_project / product.template / service_tracking (selection) : module is now 'product' ('sale_project') +sale_project / product.template / service_tracking (False) : NEW selection_keys: ['event', 'event_booth', 'no', 'project_only', 'task_global_project', 'task_in_project'], mode: modify +# NOTHING TO DO: handled by ORM + +sale_project / product.template / project_id (many2one) : needs conversion to v18-style company dependent +sale_project / product.template / project_template_id (many2one): needs conversion to v18-style company dependent +# DONE: pre-migration: copy columns if exist +# DONE: post-migration: used openupgrade_180.convert_company_dependent + +sale_project / project.project / reinvoiced_sale_order_id (many2one): NEW relation: sale.order +# DONE: pre-migration: pre-create field and fill with sale_line_id.order_id (as done in _onchange_sale_line_id()) + +---XML records in module 'sale_project'--- +NEW ir.actions.server: sale_project.model_sale_order_action_create_project +NEW ir.embedded.actions: sale_project.project_embedded_action_invoices +NEW ir.embedded.actions: sale_project.project_embedded_action_invoices_dashboard +NEW ir.embedded.actions: sale_project.project_embedded_action_sales_orders +NEW ir.embedded.actions: sale_project.project_embedded_action_sales_orders_dashboard +NEW ir.embedded.actions: sale_project.project_embedded_action_vendor_bills +NEW ir.exports: sale_project.services_template_export_template +NEW ir.exports.line: sale_project.project_task_export_template_line_sale_line_id +NEW ir.exports.line: sale_project.services_template_export_template_invoice_policy +NEW ir.exports.line: sale_project.services_template_export_template_line_id +NEW ir.exports.line: sale_project.services_template_export_template_line_list_price +NEW ir.exports.line: sale_project.services_template_export_template_line_name +NEW ir.exports.line: sale_project.services_template_export_template_line_product_tag_ids +NEW ir.exports.line: sale_project.services_template_export_template_line_type +NEW ir.exports.line: sale_project.services_template_export_template_line_uom_id +NEW ir.exports.line: sale_project.services_template_export_template_project_id +NEW ir.exports.line: sale_project.services_template_export_template_project_template_id +NEW ir.exports.line: sale_project.services_template_export_template_service_tracking +NEW ir.ui.view: sale_project.milestone_deadline_inherit +NEW ir.ui.view: sale_project.project_sharing_inherit_project_task_view_tree +NEW ir.ui.view: sale_project.quick_create_task_form_res_partner +NEW ir.ui.view: sale_project.view_sales_order_filter_inherit_sale_project +NEW ir.ui.view: sale_project.view_task_form_res_partner +# NOTHING TO DO: will be created by ORM