Some checks reported errors
continuous-integration/drone/push Build encountered an error
8.2 KiB
8.2 KiB
Структура Админ Панели
Главное меню бота
Для всех пользователей:
- 🎲 Активные розыгрыши (
active_lotteries) - Просмотр всех активных розыгрышей - 📝 Зарегистрироваться (
start_registration) - Регистрация в системе (скрывается для зарегистрированных и админов)
Для администраторов:
- ⚙️ Админ панель (
admin_panel) - Вход в админ панель - ➕ Создать розыгрыш (
create_lottery) - Быстрое создание розыгрыша
Админ панель (admin_panel)
Основные разделы:
1. 🎲 Управление розыгрышами (admin_lotteries)
Раздел для полного управления розыгрышами.
Доступные действия:
- ➕ Создать розыгрыш (
admin_create_lottery) - Создание нового розыгрыша (пошаговый процесс) - 📝 Редактировать розыгрыш (
admin_edit_lottery) - Редактирование существующих розыгрышей - 🎭 Настройка отображения победителей (
admin_winner_display_settings) - Настройка способа отображения победителей (номер счета/имя) - 📋 Список всех розыгрышей (
admin_list_all_lotteries) - Просмотр всех розыгрышей (активные и завершенные) - 🏁 Завершить розыгрыш (
admin_finish_lottery) - Принудительное завершение розыгрыша - 🗑️ Удалить розыгрыш (
admin_delete_lottery) - Удаление розыгрыша из системы
Состояния (FSM):
lottery_title- Ввод названия розыгрышаlottery_description- Ввод описанияlottery_prizes- Ввод списка призовlottery_confirm- Подтверждение создания
2. 👥 Управление участниками (admin_participants)
Раздел для управления участниками розыгрышей.
Доступные действия:
- ➕ Добавить участника (
admin_add_participant) - Добавление одного участника вручную - 📥 Массовое добавление (ID) (
admin_bulk_add_participant) - Массовое добавление по Telegram ID - 🏦 Массовое добавление (счета) (
admin_bulk_add_accounts) - Массовое добавление по номерам счетов - ➖ Удалить участника (
admin_remove_participant) - Удаление одного участника - 📤 Массовое удаление (ID) (
admin_bulk_remove_participant) - Массовое удаление по Telegram ID - 🏦 Массовое удаление (счета) (
admin_bulk_remove_accounts) - Массовое удаление по номерам счетов - 👥 Все участники (
admin_list_all_participants) - Список всех зарегистрированных участников - 🔍 Поиск участников (
admin_search_participants) - Поиск участников по критериям - 📊 Участники по розыгрышам (
admin_participants_by_lottery) - Просмотр участников конкретного розыгрыша - 📈 Отчет по участникам (
admin_participants_report) - Детальный отчет об участии
Состояния (FSM):
add_participant_lottery- Выбор розыгрыша для добавленияadd_participant_user- Выбор пользователяadd_participant_bulk- Массовый ввод IDadd_participant_bulk_accounts- Массовый ввод счетовremove_participant_lottery- Выбор розыгрыша для удаленияremove_participant_user- Выбор пользователя для удаленияparticipant_search- Поиск участников
3. 👑 Управление победителями (admin_winners)
Раздел для управления победителями розыгрышей.
Доступные действия:
- 👑 Установить победителя (
admin_set_manual_winner) - Ручная установка победителя (без розыгрыша) - 📝 Изменить победителя (
admin_edit_winner) - Изменение данных победителя - ❌ Удалить победителя (
admin_remove_winner) - Удаление победителя - 📋 Список победителей (
admin_list_winners) - Просмотр всех победителей - 🎲 Провести розыгрыш (
admin_conduct_draw) - Автоматическое проведение розыгрыша
Состояния (FSM):
set_winner_lottery- Выбор розыгрыша для установки победителяset_winner_place- Выбор места (1, 2, 3...)set_winner_user- Выбор пользователя-победителя
4. 📊 Статистика (admin_stats)
Раздел с общей статистикой системы.
Показывает:
- Количество пользователей
- Количество зарегистрированных пользователей
- Общее количество розыгрышей
- Количество активных розыгрышей
- Количество завершенных розыгрышей
- Общее количество участий
Кнопки:
- 🔄 Обновить (
admin_stats) - Обновление статистики - 🔙 Назад (
admin_panel) - Возврат в главное меню админ панели
5. ⚙️ Настройки (admin_settings)
Раздел с настройками системы и утилитами.
Доступные действия:
- Настройки отображения
- Управление базой данных
- Экспорт данных
- Системные настройки
Навигация
Кнопки возврата:
- 🔙 Назад (
admin_panel) - Возврат в главное меню админ панели - 🔙 Назад (
back_to_main) - Возврат в главное меню бота
Кнопки отмены:
- ❌ Отмена - Отмена текущей операции и возврат в предыдущее меню
Обработка callback'ов
Главный роутер (main.py):
admin_panel- Открытие админ панели (через контроллер)back_to_main- Возврат в главное меню
Админ роутер (admin_panel.py):
- Все callback'и начинающиеся с
admin_* - Вся логика управления розыгрышами, участниками, победителями
- FSM состояния для многошаговых операций
Порядок подключения роутеров:
- router (main) - команды
/start,/help, основные callback'и - admin_router - все админские операции
- registration_router - регистрация пользователей
- chat_router (ПОСЛЕДНИЙ) - обработка всех необработанных сообщений
Проверка прав доступа
Все админские handler'ы проверяют права доступа:
if not is_admin(callback.from_user.id):
await callback.answer("❌ Недостаточно прав", show_alert=True)
return
ID администраторов хранятся в src/core/config.py в переменной ADMIN_IDS.