create event
This commit is contained in:
61
app/bot/dialogs/flows/new_event/handlers.py
Normal file
61
app/bot/dialogs/flows/new_event/handlers.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from datetime import date
|
||||
|
||||
from aiogram.types import CallbackQuery
|
||||
from aiogram_dialog import DialogManager
|
||||
from aiogram_dialog.widgets.input import ManagedTextInput
|
||||
from aiogram_dialog.widgets.kbd import Button, Calendar
|
||||
|
||||
from app.infrastructure.database.crud import create_event
|
||||
|
||||
|
||||
async def input_title(
|
||||
callback: CallbackQuery,
|
||||
widget: ManagedTextInput,
|
||||
manager: DialogManager,
|
||||
text: date,
|
||||
):
|
||||
if "event_obj" not in manager.dialog_data:
|
||||
manager.dialog_data["event_obj"] = {}
|
||||
manager.dialog_data["event_obj"]["title"] = text
|
||||
await manager.next()
|
||||
|
||||
|
||||
async def input_description(
|
||||
callback: CallbackQuery,
|
||||
widget: ManagedTextInput,
|
||||
manager: DialogManager,
|
||||
text: date,
|
||||
):
|
||||
manager.dialog_data["event_obj"]["description"] = text
|
||||
await manager.next()
|
||||
|
||||
|
||||
async def input_start_date(
|
||||
callback: CallbackQuery,
|
||||
widget: Calendar,
|
||||
manager: DialogManager,
|
||||
selected_date: date,
|
||||
):
|
||||
manager.dialog_data["event_obj"]["start_date"] = selected_date
|
||||
await manager.next()
|
||||
|
||||
|
||||
async def input_end_date(
|
||||
callback: CallbackQuery,
|
||||
widget: Calendar,
|
||||
manager: DialogManager,
|
||||
selected_date: date,
|
||||
):
|
||||
manager.dialog_data["event_obj"]["end_date"] = selected_date
|
||||
await manager.next()
|
||||
|
||||
|
||||
async def confirm_creation(
|
||||
callback: CallbackQuery,
|
||||
button: Button,
|
||||
manager: DialogManager,
|
||||
):
|
||||
await create_event(
|
||||
manager.middleware_data["session"], **manager.dialog_data["event_obj"]
|
||||
)
|
||||
await manager.done()
|
||||
Reference in New Issue
Block a user