Разработать виджет на aiogram-dialog 1.9.0

1 000 руб. за проект
12 декабря 2023, 15:05 • 6 откликов • 40 просмотров
Телеграм бот работает на aiogram=2.25.2 и надстройка aiogram_dialog==1.9.0

Внимание! Это НЕ aiogram. А aiogram-dialog. Там другая архитектура проекта.
Читайте внимательно.
А то получается не мне констультации, а я сижу консультирую что это. Если не знаешь - не пиши.
А если пишешь на aiogram-dialog, то напиши телеграм юзернейм пожалуйста.

Cтоит виджет Select
https://aiogram-dialog.readthedocs.io/en/1.9.0/wid...

В Select ставит инлайн кнопки в ряд горизонтально. Данные по запросу из БД, в getter формируется и формируется ряд кнопок.
Эти кнопки необходимо поставить в колонку вертикально.
Скорее всего необходимо использовать виджеты Group, Column, а лучше ScrollingGroup
https://aiogram-dialog.readthedocs.io/en/1.9.0/wid...

requisits_buttons = Select(
Format('{item[1]} {item[2]}'),
id='requisits_buttons_id',
item_id_getter=operator.itemgetter(0),
items='requisits',
on_click=to_requisit_actions,
when='is_requisits'
)

requisits_window = Window(
Const('''Здесь показываются ваши реквизиты'''),
Button(Const('➕ Добавить'), id='add_requisit_name_id', on_click=to_add_requisit_name),
Group(
requisits_buttons,
Button(Const('Назад'), id='back4', on_click=to_lk)),
state=UserIn.REQUISITS,
getter=requisits_data
)

async def requisits_data(dialog_manager: DialogManager, **kwargs):
user_id = dialog_manager.event.from_user.id
requisits = await dp.requisit.get_all(user_id)
is_requisits = True if requisits else False
logger.info(f'requisits = {requisits}')
return {
'requisits': requisits,
'is_requisits': is_requisits
}
async def to_requisit_actions(c: CallbackQuery, widget: Any, dialog_manager: DialogManager, item_id: str):
dialog_manager.current_context().dialog_data['requisit_id'] = int(item_id)
await dialog_manager.dialog().switch_to(UserIn.REQUISIT_ACTIONS)



Отзывы
R50 98658f5542555f631dd4377014264e27
Заказчик
Грамотный разработчик, знает ООП, быстро вник в задачу и решил ее)
5 месяцев назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
 
5 месяцев назад