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, ), )