✅ Кнопки в inline меню админа ✅ Кнопки в reply меню админа ✅ Обработчики callback для кнопок ✅ Исправлено отображение команд 📦 Бекап: backups/versions/v2.1.1_buttons_fix_2026-02-28/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
125 lines
4.3 KiB
Python
125 lines
4.3 KiB
Python
"""
|
||
Клавиатуры для админа
|
||
"""
|
||
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||
from aiogram.utils.keyboard import InlineKeyboardBuilder, ReplyKeyboardBuilder
|
||
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
||
|
||
|
||
def get_admin_main_menu() -> InlineKeyboardMarkup:
|
||
"""Главное меню админа (inline)"""
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
builder.row(
|
||
InlineKeyboardButton(text='📊 Статистика', callback_data='admin_stats'),
|
||
InlineKeyboardButton(text='🕵️ Шпионы', callback_data='admin_spies'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='👥 Пользователи', callback_data='admin_users'),
|
||
InlineKeyboardButton(text='⏳ Непроверенные', callback_data='admin_unverified'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='🏠 Квартиры', callback_data='admin_apartments'),
|
||
InlineKeyboardButton(text='⚠️ Предупреждения', callback_data='admin_warnings'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='🏆 Рейтинг', callback_data='admin_rating'),
|
||
InlineKeyboardButton(text='📥 Экспорт', callback_data='admin_export'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='📤 Рассылка', callback_data='admin_broadcast'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='🚫 Отозвать вериф.', callback_data='admin_unverify'),
|
||
InlineKeyboardButton(text='📋 Список не вериф.', callback_data='admin_unverified_list'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='❓ Помощь', callback_data='admin_help'),
|
||
)
|
||
|
||
return builder.as_markup()
|
||
|
||
|
||
def get_admin_reply_menu() -> ReplyKeyboardMarkup:
|
||
"""Главное меню админа (reply - кнопки под полем ввода)"""
|
||
builder = ReplyKeyboardBuilder()
|
||
|
||
builder.row(
|
||
KeyboardButton(text='📊 Статистика'),
|
||
KeyboardButton(text='🕵️ Шпионы'),
|
||
)
|
||
builder.row(
|
||
KeyboardButton(text='👥 Пользователи'),
|
||
KeyboardButton(text='⏳ Непроверенные'),
|
||
)
|
||
builder.row(
|
||
KeyboardButton(text='🏠 Квартиры'),
|
||
KeyboardButton(text='⚠️ Предупреждения'),
|
||
)
|
||
builder.row(
|
||
KeyboardButton(text='🏆 Рейтинг'),
|
||
KeyboardButton(text='📥 Экспорт'),
|
||
)
|
||
builder.row(
|
||
KeyboardButton(text='📤 Рассылка'),
|
||
)
|
||
builder.row(
|
||
KeyboardButton(text='🚫 Отозвать вериф.'),
|
||
KeyboardButton(text='📋 Не верифицированные'),
|
||
)
|
||
builder.row(
|
||
KeyboardButton(text='❓ Помощь'),
|
||
)
|
||
|
||
return builder.as_markup(resize_keyboard=True)
|
||
|
||
|
||
def get_admin_help_menu() -> InlineKeyboardMarkup:
|
||
"""Меню помощи админа"""
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
builder.button(text='🔙 Назад', callback_data='admin_menu')
|
||
return builder.as_markup()
|
||
|
||
|
||
def get_admin_apartments_menu() -> InlineKeyboardMarkup:
|
||
"""Меню квартир"""
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
builder.row(
|
||
InlineKeyboardButton(text='📊 Статистика квартир', callback_data='admin_apt_stats'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='🔙 Назад', callback_data='admin_menu'),
|
||
)
|
||
|
||
return builder.as_markup()
|
||
|
||
|
||
def get_admin_warnings_menu() -> InlineKeyboardMarkup:
|
||
"""Меню предупреждений"""
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
builder.row(
|
||
InlineKeyboardButton(text='📋 Список предупреждений', callback_data='admin_warn_list'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='🔙 Назад', callback_data='admin_menu'),
|
||
)
|
||
|
||
return builder.as_markup()
|
||
|
||
|
||
def get_admin_rating_menu() -> InlineKeyboardMarkup:
|
||
"""Меню рейтинга"""
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
builder.row(
|
||
InlineKeyboardButton(text='🏆 Топ-10', callback_data='admin_top'),
|
||
InlineKeyboardButton(text='📊 Уровни', callback_data='admin_rank'),
|
||
)
|
||
builder.row(
|
||
InlineKeyboardButton(text='🔙 Назад', callback_data='admin_menu'),
|
||
)
|
||
|
||
return builder.as_markup()
|