diff --git a/mrp_workorder_sequence/hooks.py b/mrp_workorder_sequence/hooks.py index 52e2f89e4..c080cb29f 100644 --- a/mrp_workorder_sequence/hooks.py +++ b/mrp_workorder_sequence/hooks.py @@ -1,11 +1,19 @@ # Copyright 2022 Camptocamp SA # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) -from odoo import SUPERUSER_ID, api, tools def post_init_hook(cr, registry): - env = api.Environment(cr, SUPERUSER_ID, {}) - all_workorders = env["mrp.workorder"].search([], order="production_id ASC, id ASC") - for _, workorders in tools.groupby(all_workorders, lambda w: w.production_id): - for seq, wo in enumerate(workorders, 1): - wo.sequence = seq + cr.execute( + """ + UPDATE mrp_workorder + SET sequence = n.sequence + FROM ( + SELECT + id, + ROW_NUMBER() OVER (PARTITION BY production_id) AS sequence + FROM mrp_workorder + ORDER BY production_id, id + ) AS n + WHERE mrp_workorder.id = n.id + """ + )