From 3d5a237d4dcce9437c4e04de68a170dfe4dfeaa4 Mon Sep 17 00:00:00 2001 From: UdoChudo Date: Wed, 25 Jun 2025 16:31:19 +0500 Subject: [PATCH] fix: (subscriptions) show message when no regions are available for subscription Improved the "Subscribe" button behavior. Now, if there are no regions available to subscribe to, the user sees a proper message instead of silent failure. Signed-off-by: UdoChudo --- app/bot/handlers/subscribe.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/bot/handlers/subscribe.py b/app/bot/handlers/subscribe.py index 1513cb4..acdd504 100644 --- a/app/bot/handlers/subscribe.py +++ b/app/bot/handlers/subscribe.py @@ -4,6 +4,7 @@ from telebot.types import Message, InlineKeyboardMarkup, InlineKeyboardButton, C from app import Subscriptions from app.bot.constants import UserStates +from app.bot.keyboards.settings_menu import get_settings_menu from app.bot.processors.subscribe_processor import process_subscription_button, process_subscribe_all_regions from app.bot.states import UserStateManager from app.bot.utils.auth import auth @@ -28,10 +29,16 @@ def register_handlers(bot: TeleBot, app, state_manager: UserStateManager): # Получаем регионы regions = get_sorted_regions() + if not regions: + bot.send_message(chat_id, "ℹ️ У вас нет доступных для подписки регионов.",reply_markup=get_settings_menu()) + state_manager.set_state(chat_id, UserStates.SETTINGS_MENU) + return + # Получаем список подписанных регионов пользователя subscribed = {s.region_id for s in Subscriptions.query.filter_by(chat_id=chat_id, active=True).all()} + # Формируем строку с пометками regions_text = format_regions_list_marked(regions, subscribed)