feat: update admin panel keyboard structure and registration button logic
- Updated admin panel keyboard to match admin_panel.py handlers - Changed registration button logic: show only for unregistered non-admins - Added missing methods to IBotController interface - Updated get_main_keyboard to accept is_registered parameter - Simplified admin panel structure with proper callback routing - Removed test callback button from production UI - Created ADMIN_PANEL_STRUCTURE.md and ADMIN_PANEL_TESTING.md documentation
This commit is contained in:
@@ -8,14 +8,16 @@ from src.core.models import Lottery, Winner
|
||||
class KeyboardBuilderImpl(IKeyboardBuilder):
|
||||
"""Реализация построителя клавиатур"""
|
||||
|
||||
def get_main_keyboard(self, is_admin: bool = False):
|
||||
def get_main_keyboard(self, is_admin: bool = False, is_registered: bool = False):
|
||||
"""Получить главную клавиатуру"""
|
||||
buttons = [
|
||||
[InlineKeyboardButton(text="🎲 Активные розыгрыши", callback_data="active_lotteries")],
|
||||
[InlineKeyboardButton(text="📝 Зарегистрироваться", callback_data="start_registration")],
|
||||
[InlineKeyboardButton(text="🧪 ТЕСТ КОЛБЭК", callback_data="test_callback")]
|
||||
[InlineKeyboardButton(text="🎲 Активные розыгрыши", callback_data="active_lotteries")]
|
||||
]
|
||||
|
||||
# Показываем кнопку регистрации только незарегистрированным пользователям (не админам)
|
||||
if not is_admin and not is_registered:
|
||||
buttons.append([InlineKeyboardButton(text="📝 Зарегистрироваться", callback_data="start_registration")])
|
||||
|
||||
if is_admin:
|
||||
buttons.extend([
|
||||
[InlineKeyboardButton(text="⚙️ Админ панель", callback_data="admin_panel")],
|
||||
@@ -27,18 +29,11 @@ class KeyboardBuilderImpl(IKeyboardBuilder):
|
||||
def get_admin_keyboard(self):
|
||||
"""Получить админскую клавиатуру"""
|
||||
buttons = [
|
||||
[
|
||||
InlineKeyboardButton(text="👥 Пользователи", callback_data="user_management"),
|
||||
InlineKeyboardButton(text="💳 Счета", callback_data="account_management")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(text="🎯 Розыгрыши", callback_data="lottery_management"),
|
||||
InlineKeyboardButton(text="💬 Чат", callback_data="chat_management")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(text="📊 Статистика", callback_data="stats"),
|
||||
InlineKeyboardButton(text="⚙️ Настройки", callback_data="settings")
|
||||
],
|
||||
[InlineKeyboardButton(text="🎲 Управление розыгрышами", callback_data="admin_lotteries")],
|
||||
[InlineKeyboardButton(text="<EFBFBD> Управление участниками", callback_data="admin_participants")],
|
||||
[InlineKeyboardButton(text="👑 Управление победителями", callback_data="admin_winners")],
|
||||
[InlineKeyboardButton(text="📊 Статистика", callback_data="admin_stats")],
|
||||
[InlineKeyboardButton(text="⚙️ Настройки", callback_data="admin_settings")],
|
||||
[InlineKeyboardButton(text="🔙 Назад", callback_data="back_to_main")]
|
||||
]
|
||||
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
||||
@@ -46,18 +41,12 @@ class KeyboardBuilderImpl(IKeyboardBuilder):
|
||||
def get_lottery_management_keyboard(self):
|
||||
"""Получить клавиатуру управления розыгрышами"""
|
||||
buttons = [
|
||||
[
|
||||
InlineKeyboardButton(text="📋 Все розыгрыши", callback_data="all_lotteries"),
|
||||
InlineKeyboardButton(text="🎲 Активные", callback_data="active_lotteries_admin")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(text="✅ Завершенные", callback_data="completed_lotteries"),
|
||||
InlineKeyboardButton(text="➕ Создать", callback_data="create_lottery")
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(text="🎯 Провести розыгрыш", callback_data="conduct_lottery_admin"),
|
||||
InlineKeyboardButton(text="🔄 Переросыгрыш", callback_data="admin_redraw")
|
||||
],
|
||||
[InlineKeyboardButton(text="➕ Создать розыгрыш", callback_data="admin_create_lottery")],
|
||||
[InlineKeyboardButton(text="📝 Редактировать розыгрыш", callback_data="admin_edit_lottery")],
|
||||
[InlineKeyboardButton(text="🎭 Настройка отображения победителей", callback_data="admin_winner_display_settings")],
|
||||
[InlineKeyboardButton(text="📋 Список всех розыгрышей", callback_data="admin_list_all_lotteries")],
|
||||
[InlineKeyboardButton(text="<EFBFBD> Завершить розыгрыш", callback_data="admin_finish_lottery")],
|
||||
[InlineKeyboardButton(text="<EFBFBD>️ Удалить розыгрыш", callback_data="admin_delete_lottery")],
|
||||
[InlineKeyboardButton(text="🔙 Назад", callback_data="admin_panel")]
|
||||
]
|
||||
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
||||
|
||||
Reference in New Issue
Block a user