-
Notifications
You must be signed in to change notification settings - Fork 0
/
change_coin_enabled_setting_coins_for_account.py
64 lines (52 loc) · 1.83 KB
/
change_coin_enabled_setting_coins_for_account.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import typing
from aiogram import types
from enums.coin import Coin
from database.user_repo import UserRepository
from keyboard_fabrics import coin_account_cb, menu_cb
from utils.utils import grouper
async def change_coin_enabled_setting_coins_for_account(
query: types.CallbackQuery,
callback_data: typing.Dict[str, str],
user: UserRepository,
_: dict,
):
coin_id = callback_data["id"]
is_active = callback_data['action'] == 'on'
await user.change_coin_enabled(query.from_user.id, coin_id, is_active)
await user.change_account_coin_enabled(query.from_user.id, coin_id, is_active)
keyboard_markup = types.InlineKeyboardMarkup(row_width=2)
btn_list = []
for coin in await user.get_coins(query.from_user.id,):
if coin.is_enabled:
btn_list.append(
types.InlineKeyboardButton(
f"{Coin(coin.coin_id).name} ✅",
callback_data=coin_account_cb.new(
id=coin.coin_id, action="off"
),
),
)
else:
btn_list.append(
types.InlineKeyboardButton(
f"{Coin(coin.coin_id).name} ❌",
callback_data=coin_account_cb.new(
id=coin.coin_id, action="on"
),
),
)
for i in grouper(2, btn_list):
keyboard_markup.add(*i)
'''
keyboard_markup.add(
types.InlineKeyboardButton(
_['back_to_account_button'],
callback_data=menu_cb.new(id=account.account_id, type="account", action='open'),
),
)
'''
await query.message.edit_text(
_["coin_list_descr"],
reply_markup=keyboard_markup,
)
await query.answer(_['coin_enabled'] if is_active else _['coin_disabled'])