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
8 changes: 4 additions & 4 deletions docsource/modules180-190.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ Module coverage 18.0 -> 19.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| auth_totp_portal | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| barcodes | |No DB layout changes. |
| barcodes |Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| barcodes_gs1_nomenclature | |No DB layout changes. |
| barcodes_gs1_nomenclature |Done |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| base |Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down Expand Up @@ -1084,9 +1084,9 @@ Module coverage 18.0 -> 19.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| spreadsheet_dashboard_website_sale_slides | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| stock | | |
| stock |Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| stock_account | | |
| stock_account |Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| stock_delivery | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down
1 change: 1 addition & 0 deletions openupgrade_scripts/apriori.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
"product.packaging": "product.uom",
"stock.package_level": "stock.package.history",
"stock.quant.package": "stock.package",
"stock.valuation.layer": "product.value",
"web_editor.assets": "website.assets",
"web_editor.converter.test": "html_editor.converter.test",
"web_editor.converter.test.sub": "html_editor.converter.test.sub",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Copyright 2026 Hunki Enterprises BV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(
env, "barcodes_gs1_nomenclature", "19.0.1.0/noupdate_changes.xml"
)
13 changes: 13 additions & 0 deletions openupgrade_scripts/scripts/stock/19.0.1.1/end-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2026 Hunki Enterprises BV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
env["stock.picking"].search(
[
("move_line_ids", "not in", ("done", "cancel")),
]
)._check_entire_pack()
144 changes: 144 additions & 0 deletions openupgrade_scripts/scripts/stock/19.0.1.1/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Copyright 2026 Hunki Enterprises BV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


def stock_move_reference_ids(env):
"""
Fill stock.move#reference_ids from obsolete group_id
"""
env.cr.execute(
"""
INSERT INTO stock_reference_move_rel
(move_id, reference_id)
SELECT id, group_id FROM stock_move
WHERE group_id IS NOT NULL
"""
)


def stock_move_packaging_uom_id(env):
"""
Use stock.move#product_packaging_id to fill stock.move#packaging_uom_id
"""
env.cr.execute(
"""
UPDATE stock_move
SET packaging_uom_id=product_uom.uom_id
FROM
product_uom
WHERE product_packaging_id=product_uom.id
"""
)


def stock_picking_package_history_ids(env):
"""
Use stock.package_level#picking_id to fill stock.picking#package_history_ids
"""
env.cr.execute(
"""
INSERT INTO stock_package_history_stock_picking_rel
(stock_picking_id, stock_package_history_id)
SELECT picking_id, id
FROM stock_package_history
WHERE picking_id IS NOT NULL
"""
)


def stock_package_type_package_use(env):
"""
Set stock.package.type#package_use to 'reusable' if all previous stock.quant.package
records using this type had package_use = 'reusable'
"""
env.cr.execute(
"""
UPDATE stock_package_type
SET package_use='reusable'
WHERE id IN (
SELECT package_type_id
FROM stock_package
GROUP BY package_type_id
HAVING array_agg(distinct package_use) <@ '{"reusable"}'
)
"""
)


def uom_uom_package_type_id(env):
"""
Set uom.uom#package_type_id from previous product.packaging#packaging_type
"""
env.cr.execute(
"""
UPDATE uom_uom
SET package_type_id=product_uom.package_type_id
FROM product_uom
WHERE product_uom.uom_id=uom_uom.id
AND product_uom.package_type_id IS NOT NULL
"""
)


def stock_packaging_type_route_ids(env):
"""
Set stock.packaging.type#route_ids from previous product.packaging#route_ids
"""
env.cr.execute(
"""
INSERT INTO stock_package_type_stock_route_rel
(stock_package_type_id, stock_route_id)
SELECT DISTINCT
product_uom.package_type_id, stock_route_packaging.route_id
FROM
stock_route_packaging
JOIN product_uom
ON stock_route_packaging.packaging_id=product_uom.id
"""
)


def stock_package_history_package_name(env):
"""
Set stock.package.history#package_name from package_id#name
"""
env.cr.execute(
"""
UPDATE stock_package_history
SET package_name=stock_package.name
FROM stock_package
WHERE
stock_package_history.package_id=stock_package.id
AND package_name IS NULL
"""
)


_deleted_xmlids = [
"stock.stock_location_locations_virtual",
"stock.stock_location_locations_partner",
"stock.stock_location_locations",
]


@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(env, "stock", "19.0.1.1/noupdate_changes.xml")
openupgrade.delete_record_translations(
env.cr,
"stock",
[
"mail_template_data_delivery_confirmation",
],
["body_html"],
)
stock_move_reference_ids(env)
stock_move_packaging_uom_id(env)
stock_picking_package_history_ids(env)
stock_package_type_package_use(env)
uom_uom_package_type_id(env)
stock_packaging_type_route_ids(env)
stock_package_history_package_name(env)
openupgrade.delete_records_safely_by_xml_id(env, _deleted_xmlids)
42 changes: 42 additions & 0 deletions openupgrade_scripts/scripts/stock/19.0.1.1/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Copyright 2026 Hunki Enterprises BV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade

_renamed_models = [
("procurement.group", "stock.reference"),
("stock.package_level", "stock.package.history"),
("stock.quant.package", "stock.package"),
]

_renamed_tables = [
("procurement_group", "stock_reference"),
("stock_package_level", "stock_package_history"),
("stock_quant_package", "stock_package"),
]

_renamed_fields = [
("stock.reference", "stock_reference", "stock_move_ids", "move_ids"),
("stock.move.line", "stock_move_line", "package_level_id", "package_history_id"),
("stock.picking", "stock_picking", "package_level_ids", "package_history_ids"),
("stock.route", "stock_route", "packaging_selectable", "package_type_selectable"),
]

_renamed_xmlids = [
("stock.seq_quant_package", "stock.seq_package"),
]

_deleted_xmlids = [
"stock.stock_quant_package_comp_rule",
"stock.sequence_proc_group",
"stock.constraint_stock_warehouse_orderpoint_qty_multiple_check",
]


@openupgrade.migrate()
def migrate(env, version):
openupgrade.rename_models(env.cr, _renamed_models)
openupgrade.rename_tables(env.cr, _renamed_tables)
openupgrade.rename_fields(env, _renamed_fields)
openupgrade.rename_xmlids(env.cr, _renamed_xmlids)
openupgrade.delete_records_safely_by_xml_id(env, _deleted_xmlids)
Loading