Sort statement lines per origin before creating moves

Closes #13941
This commit is contained in:
Cédric Krier
2026-02-28 15:26:23 +01:00
parent b7a8ad390f
commit e8c0047fca
+10 -2
View File
@@ -490,8 +490,16 @@ class Statement(Workflow, ModelSQL, ModelView, ChatMixin):
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)