diff --git a/handlers/admin/clusters/clusters_handler.py b/handlers/admin/clusters/clusters_handler.py index 16253a0e..3f292d5d 100644 --- a/handlers/admin/clusters/clusters_handler.py +++ b/handlers/admin/clusters/clusters_handler.py @@ -15,7 +15,8 @@ from filters.admin import IsAdminFilter from handlers.keys.key_utils import create_key_on_cluster from keyboard import ( build_clusters_editor_kb, - build_manage_cluster_kb, AdminClusterCallback, + build_manage_cluster_kb, + AdminClusterCallback, ) from logger import logger from ..panel.keyboard import AdminPanelCallback, build_admin_back_kb @@ -245,7 +246,7 @@ async def handle_inbound_id_input(message: Message, state: FSMContext): @router.callback_query(AdminClusterCallback.filter(F.action == "manage"), IsAdminFilter()) async def handle_clusters_manage( - callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any + callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any ): cluster_name = callback_data.data @@ -260,7 +261,7 @@ async def handle_clusters_manage( @router.callback_query(AdminClusterCallback.filter(F.action == "availability"), IsAdminFilter()) async def handle_cluster_availability( - callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any + callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any ): cluster_name = callback_data.data @@ -299,7 +300,7 @@ async def handle_cluster_availability( @router.callback_query(AdminClusterCallback.filter(F.action == "backup"), IsAdminFilter()) async def handle_clusters_backup( - callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any + callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any ): cluster_name = callback_data.data @@ -327,9 +328,7 @@ async def handle_clusters_backup( @router.callback_query(AdminClusterCallback.filter(F.action == "sync"), IsAdminFilter()) -async def handle_clusters_sync( - callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any -): +async def handle_clusters_sync(callback_query: types.CallbackQuery, callback_data: AdminClusterCallback, session: Any): cluster_name = callback_data.data try: diff --git a/handlers/admin/clusters/keyboard.py b/handlers/admin/clusters/keyboard.py index f453ef28..bb3d61b2 100644 --- a/handlers/admin/clusters/keyboard.py +++ b/handlers/admin/clusters/keyboard.py @@ -14,15 +14,20 @@ class AdminClusterCallback(CallbackData, prefix="admin_cluster"): def build_clusters_editor_kb(servers: dict) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() - for cluster_name in servers: - builder.button( - text=f"⚙️ {cluster_name}", - callback_data=AdminClusterCallback(action="manage", data=cluster_name).pack(), - ) + cluster_names = list(servers.keys()) + for i in range(0, len(cluster_names), 2): + row_buttons = [] + for cluster_name in cluster_names[i:i+2]: + row_buttons.append( + InlineKeyboardButton( + text=f"⚙️ {cluster_name}", + callback_data=AdminClusterCallback(action="manage", data=cluster_name).pack(), + ) + ) + builder.row(*row_buttons) builder.button(text="➕ Добавить кластер", callback_data=AdminClusterCallback(action="add").pack()) builder.row(build_admin_back_btn()) - builder.adjust(1) return builder.as_markup() diff --git a/handlers/admin/servers/keyboard.py b/handlers/admin/servers/keyboard.py index ebc5e390..9077ff4d 100644 --- a/handlers/admin/servers/keyboard.py +++ b/handlers/admin/servers/keyboard.py @@ -12,23 +12,15 @@ class AdminServerCallback(CallbackData, prefix="admin_server"): def build_manage_server_kb(server_name: str, cluster_name: str) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() - builder.button( - text="🗑️ Удалить", callback_data=AdminServerCallback(action="delete", data=server_name).pack() - ) - builder.button( - text="🔙 Назад", callback_data=AdminClusterCallback(action="manage", data=cluster_name).pack() - ) + builder.button(text="🗑️ Удалить", callback_data=AdminServerCallback(action="delete", data=server_name).pack()) + builder.button(text="🔙 Назад", callback_data=AdminClusterCallback(action="manage", data=cluster_name).pack()) builder.adjust(1) return builder.as_markup() def build_delete_server_kb(server_name: str) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() - builder.button( - text="✅ Да", callback_data=AdminServerCallback(action="delete_confirm", data=server_name).pack() - ) - builder.button( - text="🔙 Назад", callback_data=AdminServerCallback(action="manage", data=server_name).pack() - ) + builder.button(text="✅ Да", callback_data=AdminServerCallback(action="delete_confirm", data=server_name).pack()) + builder.button(text="🔙 Назад", callback_data=AdminServerCallback(action="manage", data=server_name).pack()) builder.adjust(1) return builder.as_markup() diff --git a/handlers/admin/servers/servers_handler.py b/handlers/admin/servers/servers_handler.py index c5a07a41..c5199bd6 100644 --- a/handlers/admin/servers/servers_handler.py +++ b/handlers/admin/servers/servers_handler.py @@ -56,7 +56,7 @@ async def handle_server_delete(callback_query: CallbackQuery, callback_data: Adm @router.callback_query(AdminServerCallback.filter(F.action == "delete_confirm"), IsAdminFilter()) async def handle_server_delete_confirm( - callback_query: types.CallbackQuery, callback_data: AdminServerCallback, session: Any + callback_query: types.CallbackQuery, callback_data: AdminServerCallback, session: Any ): server_name = callback_data.data