connect database
This commit is contained in:
@@ -1,23 +1,39 @@
|
||||
from aiogram_dialog import Dialog, Window
|
||||
from aiogram_dialog.widgets.kbd import Column, Select
|
||||
from aiogram_dialog.widgets.kbd import Back, Cancel, Column, Select
|
||||
from aiogram_dialog.widgets.text import Const, Format
|
||||
|
||||
from .getters import events_getter
|
||||
from .states import EventsSG
|
||||
|
||||
|
||||
async def on_event_selected(
|
||||
c,
|
||||
widget: Select,
|
||||
manager,
|
||||
item_id: str,
|
||||
):
|
||||
manager.dialog_data["selected_event"] = item_id
|
||||
await manager.next()
|
||||
|
||||
events_dialog = Dialog(
|
||||
Window(
|
||||
Const("События"),
|
||||
Column(
|
||||
Cancel(Const("Назад")),
|
||||
Select(
|
||||
Format("{item}"),
|
||||
id="categ",
|
||||
item_id_getter=lambda x: x,
|
||||
items="events",
|
||||
)
|
||||
on_click=on_event_selected,
|
||||
),
|
||||
),
|
||||
getter=events_getter,
|
||||
state=EventsSG.events_list,
|
||||
),
|
||||
# Window(state=EventsSG.event),
|
||||
Window(
|
||||
Format("{dialog_data[selected_event]}"),
|
||||
Back(Const("Назад")),
|
||||
state=EventsSG.event,
|
||||
),
|
||||
)
|
||||
|
||||
@@ -3,13 +3,15 @@ from aiogram_dialog.widgets.input import TextInput
|
||||
from aiogram_dialog.widgets.kbd import Cancel, SwitchTo
|
||||
from aiogram_dialog.widgets.text import Const, Format
|
||||
|
||||
from app.bot.dialogs.widgets.getters import user_getter
|
||||
|
||||
from .states import ProfileSG
|
||||
|
||||
profile_dialog = Dialog(
|
||||
Window(
|
||||
Const("*Профиль*"),
|
||||
Format("Имя:"),
|
||||
Format("Телефон:"),
|
||||
Format("Имя: {user.fullname}"),
|
||||
Format("Телефон: {user.phone}"),
|
||||
SwitchTo(
|
||||
Const("изменить имя"),
|
||||
id="change_name",
|
||||
@@ -22,6 +24,7 @@ profile_dialog = Dialog(
|
||||
),
|
||||
Cancel(Const("назад")),
|
||||
state=ProfileSG.profile,
|
||||
getter=user_getter,
|
||||
),
|
||||
Window(
|
||||
Const("Введите имя"),
|
||||
|
||||
@@ -4,17 +4,17 @@ from aiogram_dialog.widgets.text import Const, Format
|
||||
|
||||
from app.bot.dialogs.flows.events.dialogs import EventsSG
|
||||
from app.bot.dialogs.flows.profile.dialogs import ProfileSG
|
||||
from app.bot.dialogs.widgets.getters import is_admin, username_getter
|
||||
from app.bot.dialogs.widgets.getters import is_admin_getter, user_getter
|
||||
|
||||
from .states import StartSG
|
||||
|
||||
start_dialog = Dialog(
|
||||
Window(
|
||||
Format("Привет, {username}"),
|
||||
Format("Привет, {user.fullname}"),
|
||||
Start(Const("события"), id="events", state=EventsSG.events_list),
|
||||
Button(Const("создать событие"), id="create_event", when="is_admin"),
|
||||
Start(Const("профиль"), id="profile", state=ProfileSG.profile),
|
||||
getter=[username_getter, is_admin],
|
||||
getter=[user_getter, is_admin_getter],
|
||||
state=StartSG.start,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
from aiogram.types import User
|
||||
from aiogram_dialog import DialogManager
|
||||
|
||||
from app.infrastructure.database.models import User as UserModel
|
||||
|
||||
async def username_getter(
|
||||
dialog_manager: DialogManager, event_from_user: User, **kwargs
|
||||
) -> dict[str, str]:
|
||||
return {"username": event_from_user.username}
|
||||
|
||||
async def is_admin(
|
||||
dialog_manager: DialogManager, event_from_user: User, **kwargs
|
||||
async def user_getter(
|
||||
dialog_manager: DialogManager, event_from_user: User, user: UserModel, **kwargs
|
||||
) -> dict[str, str]:
|
||||
return {"is_admin": False}
|
||||
return {"user": user}
|
||||
|
||||
|
||||
async def is_admin_getter(
|
||||
dialog_manager: DialogManager, event_from_user: User, user: UserModel, **kwargs
|
||||
) -> dict[str, str]:
|
||||
return {"is_admin": user.role == "admin"}
|
||||
|
||||
Reference in New Issue
Block a user