fix tariff-server binding

This commit is contained in:
Capybara-z
2026-02-04 23:59:18 +03:00
parent db16c0d49c
commit 84e9637453
+14 -6
View File
@@ -187,11 +187,23 @@ async def choose_tariffs(
await callback.message.edit_text("❌ Для этой группы нет доступных тарифов.")
return
selected_tariffs = set(data.get(f"tariff_sel:{cluster_name}", []))
servers_q = await session.execute(
select(Server.id).where(Server.server_name.in_(selected_servers))
)
server_ids = [row[0] for row in servers_q.fetchall()]
current_bindings_q = await session.execute(
select(ServerSubgroup.subgroup_title)
.where(ServerSubgroup.server_id.in_(server_ids))
.where(ServerSubgroup.subgroup_title.regexp_match(r"^\d+$"))
)
current_tariff_ids = {int(row[0]) for row in current_bindings_q.fetchall()}
await state.update_data({f"tariff_sel:{cluster_name}": list(current_tariff_ids)})
await callback.message.edit_text(
f"<b>📋 Выберите тарифы для {len(selected_servers)} сервер(а/ов)</b>\n<i>Кластер: {cluster_name}</i>",
reply_markup=build_tariff_selection_kb(cluster_name, tariffs, selected_tariffs),
reply_markup=build_tariff_selection_kb(cluster_name, tariffs, current_tariff_ids),
)
@@ -248,10 +260,6 @@ async def apply_tariffs(
await callback.answer("Не выбраны серверы", show_alert=True)
return
if not selected_tariffs:
await callback.answer("Не выбраны тарифы", show_alert=True)
return
servers_q = await session.execute(
select(Server.id, Server.server_name, Server.tariff_group).where(Server.server_name.in_(selected_servers))
)