🔧 Исправление кнопки '🚫 Отозвать вериф.'
✅ Теперь кнопка показывает реальный список: - Пользователи с отозванной верификацией - Показывает ID, квартиру, когда отозвано - Сколько дней назад 📝 Было: - Показывала подсказку по команде /unverify 📝 Стало: - Показывает реальный список пользователей - Сразу видно у кого отозвана верификация - Удобно для админа! 💡 Все кнопки теперь работают без подсказок! - Для подсказок есть кнопка '❓ Помощь' - Остальные кнопки показывают результат сразу! Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
3514a8bb6b
commit
8a41de9ddb
1 changed files with 35 additions and 12 deletions
|
|
@ -899,18 +899,41 @@ async def cb_admin_help(message: CallbackQuery):
|
||||||
|
|
||||||
@router.callback_query(F.data == 'admin_unverify')
|
@router.callback_query(F.data == 'admin_unverify')
|
||||||
@admin_only
|
@admin_only
|
||||||
async def cb_admin_unverify(message: CallbackQuery):
|
async def cb_admin_unverify(callback: CallbackQuery):
|
||||||
"""Кнопка Отозвать верификацию"""
|
"""Кнопка Отозвать верификацию — показывает реальный список"""
|
||||||
text = (
|
await callback.answer()
|
||||||
'🚫 <b>Отозвать верификацию</b>\n\n'
|
|
||||||
'Использование:\n'
|
async with AsyncSessionLocal() as session:
|
||||||
'<code>/unverify <user_id> [причина]</code>\n\n'
|
# Показываем пользователей у которых verified = False и была верификация
|
||||||
'Пример:\n'
|
stmt = (
|
||||||
'<code>/unverify 123456789 Подозрение на шпиона</code>\n\n'
|
select(User)
|
||||||
'💡 User ID можно узнать в /users'
|
.where(User.verified == False)
|
||||||
|
.where(User.verification_date != None)
|
||||||
|
.order_by(User.verification_date.desc())
|
||||||
|
.limit(20)
|
||||||
)
|
)
|
||||||
await message.message.answer(text, parse_mode='HTML')
|
result = await session.execute(stmt)
|
||||||
await message.answer()
|
users = list(result.scalars().all())
|
||||||
|
|
||||||
|
if not users:
|
||||||
|
await callback.message.answer('✅ Нет пользователей с отозванной верификацией')
|
||||||
|
return
|
||||||
|
|
||||||
|
text = '🚫 <b>ОТОЗВАНА ВЕРИФИКАЦИЯ</b>\n\n'
|
||||||
|
text += f'Всего: {len(users)}\n\n'
|
||||||
|
|
||||||
|
for user in users:
|
||||||
|
name = user.full_name or f'user{user.user_id}'
|
||||||
|
apt = f' (кв. {user.apartment})' if user.apartment else ''
|
||||||
|
days_ago = (datetime.utcnow() - user.verification_date).days if user.verification_date else '?'
|
||||||
|
text += f'• {name}{apt}\n'
|
||||||
|
text += f' └─ ID: {user.user_id} | отозвано {days_ago} дн. назад\n'
|
||||||
|
|
||||||
|
text += '\n💡 <b>Что делать:</b>\n'
|
||||||
|
text += '• Верифицировать повторно через веб-админку\n'
|
||||||
|
text += '• Или оставить как есть (пользователь должен пройти верификацию заново)'
|
||||||
|
|
||||||
|
await callback.message.answer(text, parse_mode='HTML')
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(F.data == 'admin_unverified_list')
|
@router.callback_query(F.data == 'admin_unverified_list')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue