From c30727823169159b4b6b61f54897b209ced8dfd2 Mon Sep 17 00:00:00 2001 From: Fringg Date: Sun, 22 Mar 2026 04:17:32 +0300 Subject: [PATCH] fix: prevent MESSAGE_TOO_LONG in promo groups list With 20+ promo groups, the full details per group exceeded Telegram's 4096 char limit. Simplified list to one compact line per group with name and member count. Full details remain in the group detail view. --- app/handlers/admin/promo_groups.py | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/app/handlers/admin/promo_groups.py b/app/handlers/admin/promo_groups.py index 74260f40..337c9c83 100644 --- a/app/handlers/admin/promo_groups.py +++ b/app/handlers/admin/promo_groups.py @@ -462,28 +462,17 @@ async def show_promo_groups_menu( keyboard_rows = [] for group, member_count in groups: + icon = '⭐' if group.is_default else '🎯' default_suffix = texts.t('ADMIN_PROMO_GROUPS_DEFAULT_LABEL', ' (базовая)') if group.is_default else '' - group_lines = [ - f'{"⭐" if group.is_default else "🎯"} {group.name}{default_suffix}', - ] - group_lines.extend(_format_discount_lines(texts, group)) - group_lines.append(_format_auto_assign_line(texts, group)) - group_lines.append( - texts.t( - 'ADMIN_PROMO_GROUPS_MEMBERS_COUNT', - 'Участников: {count}', - ).format(count=member_count) - ) - - period_lines = _format_period_discounts_lines(texts, group, db_user.language) - group_lines.extend(period_lines) - group_lines.append('') - - lines.extend(group_lines) + members_label = texts.t( + 'ADMIN_PROMO_GROUPS_MEMBERS_COUNT', + 'Участников: {count}', + ).format(count=member_count) + lines.append(f'{icon} {group.name}{default_suffix} — {members_label}') keyboard_rows.append( [ types.InlineKeyboardButton( - text=f'{"⭐" if group.is_default else "🎯"} {group.name}', + text=f'{icon} {group.name}', callback_data=f'promo_group_manage_{group.id}', ) ]