fix: renew proper key selection

This commit is contained in:
Capybara-z
2025-06-20 16:54:13 +03:00
parent ca156c1271
commit e047306190
+8 -15
View File
@@ -46,7 +46,7 @@ moscow_tz = pytz.timezone("Europe/Moscow")
@router.callback_query(F.data.startswith("renew_key|"))
async def process_callback_renew_key(callback_query: CallbackQuery, state: FSMContext, session: AsyncSession):
async def process_callback_renew_key(callback_query: CallbackQuery, session: AsyncSession):
tg_id = callback_query.message.chat.id
key_name = callback_query.data.split("|")[1]
@@ -104,18 +104,13 @@ async def process_callback_renew_key(callback_query: CallbackQuery, state: FSMCo
subgroup = t.get("subgroup_title")
grouped_tariffs[subgroup].append(t)
await state.update_data(
renew_key_name=key_name,
renew_client_id=client_id
)
builder = InlineKeyboardBuilder()
for t in grouped_tariffs.get(None, []):
builder.row(
InlineKeyboardButton(
text=f"{t['name']}{t['price_rub']}",
callback_data=f"renew_plan|{t['id']}|{client_id}",
callback_data=f"renew_plan|{t['id']}|{client_id}|{key_name}",
)
)
@@ -124,7 +119,7 @@ async def process_callback_renew_key(callback_query: CallbackQuery, state: FSMCo
builder.row(
InlineKeyboardButton(
text=subgroup,
callback_data=f"renew_subgroup|{safe}",
callback_data=f"renew_subgroup|{safe}|{client_id}|{key_name}",
)
)
@@ -150,14 +145,12 @@ async def process_callback_renew_key(callback_query: CallbackQuery, state: FSMCo
@router.callback_query(F.data.startswith("renew_subgroup|"))
async def show_tariffs_in_renew_subgroup(callback: CallbackQuery, state: FSMContext, session: AsyncSession):
async def show_tariffs_in_renew_subgroup(callback: CallbackQuery, session: AsyncSession):
try:
parts = callback.data.split("|")
subgroup = parts[1].replace("_", " ")
data = await state.get_data()
client_id = data.get("renew_client_id")
key_name = data.get("renew_key_name")
client_id = parts[2]
key_name = parts[3]
if not client_id or not key_name:
await callback.message.answer("❌ Данные для подгруппы не найдены.")
@@ -208,7 +201,7 @@ async def show_tariffs_in_renew_subgroup(callback: CallbackQuery, state: FSMCont
builder.row(
InlineKeyboardButton(
text=f"{t['name']}{t['price_rub']}",
callback_data=f"renew_plan|{t['id']}|{client_id}",
callback_data=f"renew_plan|{t['id']}|{client_id}|{key_name}",
)
)
@@ -234,7 +227,7 @@ async def show_tariffs_in_renew_subgroup(callback: CallbackQuery, state: FSMCont
@router.callback_query(F.data.startswith("renew_plan|"))
async def process_callback_renew_plan(callback_query: CallbackQuery, session: Any):
tg_id = callback_query.from_user.id
tariff_id, client_id = callback_query.data.split("|")[1:]
tariff_id, client_id, key_name = callback_query.data.split("|")[1:]
tariff_id = int(tariff_id)
try: