Files
FascioSchoolBot/app/bot/dialogs/flows/events/dialogs.py
2025-10-03 14:45:26 +03:00

42 lines
1.2 KiB
Python

from aiogram_dialog import Dialog, Window
from aiogram_dialog.widgets.kbd import Back, Button, Cancel, Column, Select
from aiogram_dialog.widgets.text import Case, Const, Format, Jinja
from app.bot.dialogs.templates import event_template
from .getters import event_getter, events_list_getter
from .handlers import change_registration, on_event_selected
from .states import EventsSG
events_dialog = Dialog(
Window(
Const("Мероприятия"),
Column(
Cancel(Const("Назад")),
Select(
Format("{item[title]}"),
id="categ",
item_id_getter=lambda x: x["id"],
items="events",
on_click=on_event_selected,
),
),
getter=events_list_getter,
state=EventsSG.events_list,
),
Window(
Jinja(event_template),
Button(
Case(
[Const("зарегистрироваться"), Const("отменить регистрацию")],
selector="is_registered_to_event",
),
on_click=change_registration,
),
Back(Const("Назад")),
getter=event_getter,
parse_mode="HTML",
state=EventsSG.event,
),
)