Fix Associazione ricevute

This commit is contained in:
2026-03-19 16:55:31 +01:00
parent 3bdb32e6ae
commit c34d6bb080
15 changed files with 59 additions and 44 deletions
+18 -3
View File
@@ -362,8 +362,16 @@ async def bulk_update_messages(
message.archived_at = None
await db.commit()
for message in messages:
await db.refresh(message)
# Ricarica i messaggi aggiornati con selectinload per evitare MissingGreenlet sui labels
if messages:
updated_ids = [m.id for m in messages]
refreshed_result = await db.execute(
select(Message)
.where(Message.id.in_(updated_ids))
.options(selectinload(Message.labels))
)
messages = list(refreshed_result.scalars().all())
return MessageBulkUpdateResponse(
updated=len(messages),
@@ -407,7 +415,13 @@ async def update_message(
message.archived_at = None
await db.commit()
await db.refresh(message)
# Re-query con selectinload per evitare MissingGreenlet sui labels
refreshed = await db.execute(
select(Message)
.where(Message.id == message_id)
.options(selectinload(Message.labels))
)
message = refreshed.scalar_one()
return MessageResponse.model_validate(message)
@@ -508,6 +522,7 @@ async def list_receipts(
result = await db.execute(
select(Message)
.where(Message.parent_message_id == message_id)
.options(selectinload(Message.labels))
.order_by(Message.received_at.asc().nullslast(), Message.created_at.asc())
)
receipts = list(result.scalars().all())