diff --git a/app/handlers/admin/campaigns.py b/app/handlers/admin/campaigns.py index 07ab7090..ddb33817 100644 --- a/app/handlers/admin/campaigns.py +++ b/app/handlers/admin/campaigns.py @@ -3,6 +3,7 @@ import re import structlog from aiogram import Bot, Dispatcher, F, types from aiogram.fsm.context import FSMContext +from sqlalchemy import inspect as sa_inspect from sqlalchemy.ext.asyncio import AsyncSession from app.config import settings @@ -237,8 +238,10 @@ async def show_campaigns_list( text_lines = ['πŸ“‹ Бписок ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΉ\n'] for campaign in campaigns: - registrations = len(campaign.registrations or []) - total_balance = sum(r.balance_bonus_kopeks or 0 for r in campaign.registrations or []) + # Access from instance dict to avoid MissingGreenlet on lazy load + regs = sa_inspect(campaign).dict.get('registrations', []) or [] + registrations = len(regs) + total_balance = sum(r.balance_bonus_kopeks or 0 for r in regs) status = '🟒' if campaign.is_active else 'βšͺ' line = ( f'{status} {campaign.name} β€” {campaign.start_parameter}\n'