fix: keep initial id order in get_entries_full() (#736)

* fix: keep initial id order in `get_entries_full()`

* fix: correct variable names
This commit is contained in:
Travis Abendshien
2025-01-27 11:41:01 -08:00
committed by GitHub
parent ee14e2c200
commit 14599e90a3

View File

@@ -21,6 +21,7 @@ from sqlalchemy import (
ColumnExpressionArgument,
Engine,
NullPool,
ScalarResult,
and_,
asc,
create_engine,
@@ -486,9 +487,11 @@ class Library:
),
)
statement = statement.distinct()
entries: ScalarResult[Entry] | list[Entry] = session.execute(statement).scalars()
entries = entries.unique() # type: ignore
entries = session.execute(statement).scalars()
entries = entries.unique()
entry_order_dict = {e_id: order for order, e_id in enumerate(entry_ids)}
entries = sorted(entries, key=lambda e: entry_order_dict[e.id])
for entry in entries:
yield entry