Sort statement lines per origin before creating moves

Closes #13941
(grafted from 9b3a8fcbe0f6b3f46150f7bba2986f9da7e3ab41)

--HG--
branch : 6.0
This commit is contained in:
Cédric Krier
2026-02-28 15:26:23 +01:00
parent 093e6355bc
commit dfc62485d0
+10 -2
View File
@@ -547,8 +547,16 @@ class Statement(Workflow, ModelSQL, ModelView):
moves = []
for statement in statements:
for key, lines in groupby(
statement.lines, key=statement._group_key):
if statement.origins:
origin_index = {
o: index for index, o in enumerate(statement.origins)}
size = len(statement.origins)
sorted_lines = sorted(
statement.lines,
key=lambda l: origin_index.get(l.origin, size))
else:
sorted_lines = statement.lines
for key, lines in groupby(sorted_lines, key=statement._group_key):
lines = list(lines)
key = dict(key)
move = statement._get_move(key)