Skip to content
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 docsource/modules170-180.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
40 changes: 40 additions & 0 deletions openupgrade_scripts/scripts/sale_project/18.0.1.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -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
Comment on lines +22 to +23
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
AND p.sale_line_id IS NOT NULL
AND p.sale_line_id = sol.id
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)
Original file line number Diff line number Diff line change
@@ -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
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
# DONE: pre-migration: copy columns if exist
# DONE: pre-migration: renames columns if they exist for avoiding collapses.

# 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