country_mode in database/ payment options
This commit is contained in:
@@ -2,6 +2,7 @@ from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
|
||||
from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn
|
||||
from core.settings.money_config import get_currency_mode
|
||||
from .settings_config import (
|
||||
BUTTON_TITLES,
|
||||
MODES_TITLES,
|
||||
@@ -192,12 +193,14 @@ def build_settings_money_kb(money_state: dict[str, object]) -> InlineKeyboardMar
|
||||
).pack(),
|
||||
)
|
||||
|
||||
mode = str(money_state.get("CURRENCY_MODE") or "RUB").upper()
|
||||
if mode not in ("RUB", "USD", "RUB+USD"):
|
||||
mode = "RUB"
|
||||
mode, one_screen = get_currency_mode()
|
||||
if mode == "RUB+USD" and one_screen:
|
||||
mode_text = "RUB+USD (одним экраном)"
|
||||
else:
|
||||
mode_text = mode
|
||||
|
||||
builder.button(
|
||||
text=f"Режим валют: {mode}",
|
||||
text=f"Режим валют: {mode_text}",
|
||||
callback_data=AdminPanelCallback(
|
||||
action="settings_money_currency",
|
||||
page=0,
|
||||
@@ -214,3 +217,4 @@ def build_settings_money_kb(money_state: dict[str, object]) -> InlineKeyboardMar
|
||||
)
|
||||
|
||||
return builder.as_markup()
|
||||
|
||||
|
||||
@@ -137,19 +137,21 @@ async def open_currency_mode_menu(callback: CallbackQuery) -> None:
|
||||
money_config = MONEY_CONFIG
|
||||
mode = str(money_config.get("CURRENCY_MODE") or "RUB").upper()
|
||||
|
||||
if mode not in ("RUB", "USD", "RUB+USD"):
|
||||
if mode not in ("RUB", "USD", "RUB+USD", "RUB+USD_ONE_SCREEN"):
|
||||
mode = "RUB"
|
||||
|
||||
text = (
|
||||
"Выберите режим валют:\n\n"
|
||||
"• RUB — все цены только в рублях;\n"
|
||||
"• USD — все цены только в долларах;\n"
|
||||
"• RUB+USD — мультивалюта, оба варианта."
|
||||
"• RUB+USD — мультивалюта, выбор валюты перед оплатой;\n"
|
||||
"• RUB+USD (одним экраном) — мультивалюта, все кассы на одном экране."
|
||||
)
|
||||
|
||||
rub_checked = mode == "RUB"
|
||||
usd_checked = mode == "USD"
|
||||
multi_checked = mode == "RUB+USD"
|
||||
multi_one_screen_checked = mode == "RUB+USD_ONE_SCREEN"
|
||||
|
||||
keyboard = InlineKeyboardMarkup(
|
||||
inline_keyboard=[
|
||||
@@ -169,6 +171,12 @@ async def open_currency_mode_menu(callback: CallbackQuery) -> None:
|
||||
callback_data=AdminPanelCallback(action="settings_money_currency_set", page=3).pack(),
|
||||
),
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=("✅ RUB+USD (одним экраном)" if multi_one_screen_checked else "RUB+USD (одним экраном)"),
|
||||
callback_data=AdminPanelCallback(action="settings_money_currency_set", page=4).pack(),
|
||||
),
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text="Назад",
|
||||
@@ -190,7 +198,7 @@ async def set_currency_mode(
|
||||
) -> None:
|
||||
mode_index = callback_data.page
|
||||
|
||||
if mode_index not in (1, 2, 3):
|
||||
if mode_index not in (1, 2, 3, 4):
|
||||
await callback.answer("Некорректный выбор", show_alert=True)
|
||||
return
|
||||
|
||||
@@ -198,8 +206,10 @@ async def set_currency_mode(
|
||||
new_mode = "RUB"
|
||||
elif mode_index == 2:
|
||||
new_mode = "USD"
|
||||
else:
|
||||
elif mode_index == 3:
|
||||
new_mode = "RUB+USD"
|
||||
else:
|
||||
new_mode = "RUB+USD_ONE_SCREEN"
|
||||
|
||||
money_config = MONEY_CONFIG.copy()
|
||||
money_config["CURRENCY_MODE"] = new_mode
|
||||
|
||||
Reference in New Issue
Block a user