merge user, admin and common dialogs to one folder
This commit is contained in:
@@ -1,10 +1,8 @@
|
|||||||
from aiogram import Router
|
from aiogram import Router
|
||||||
|
|
||||||
from .admin import admin_router
|
from .profile.dialogs import profile_dialog
|
||||||
from .common import common_router
|
from .start.dialogs import start_dialog
|
||||||
from .user import user_router
|
|
||||||
|
|
||||||
dialogs_router = Router(name="dialogs")
|
dialogs_router = Router(name="dialogs")
|
||||||
dialogs_router.include_router(admin_router)
|
dialogs_router.include_router(start_dialog)
|
||||||
dialogs_router.include_router(user_router)
|
dialogs_router.include_router(profile_dialog)
|
||||||
dialogs_router.include_router(common_router)
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
from aiogram import Router
|
|
||||||
|
|
||||||
admin_router = Router(name="admin dialogs")
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
from aiogram.fsm.state import State, StatesGroup
|
|
||||||
|
|
||||||
|
|
||||||
class AdminStartSG(StatesGroup):
|
|
||||||
start = State()
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
from aiogram import Router
|
|
||||||
|
|
||||||
from .profile.dialogs import user_profile_dialog
|
|
||||||
|
|
||||||
common_router = Router(name="common dialogs")
|
|
||||||
|
|
||||||
common_router.include_router(user_profile_dialog)
|
|
||||||
@@ -5,7 +5,7 @@ from aiogram_dialog.widgets.text import Const, Format
|
|||||||
|
|
||||||
from .states import ProfileSG
|
from .states import ProfileSG
|
||||||
|
|
||||||
user_profile_dialog = Dialog(
|
profile_dialog = Dialog(
|
||||||
Window(
|
Window(
|
||||||
Const("*Профиль*"),
|
Const("*Профиль*"),
|
||||||
Format("Имя:"),
|
Format("Имя:"),
|
||||||
@@ -2,18 +2,18 @@ from aiogram_dialog import Dialog, Window
|
|||||||
from aiogram_dialog.widgets.kbd import Button, Start
|
from aiogram_dialog.widgets.kbd import Button, Start
|
||||||
from aiogram_dialog.widgets.text import Const, Format
|
from aiogram_dialog.widgets.text import Const, Format
|
||||||
|
|
||||||
from app.bot.dialogs.flows.common.profile.dialogs import ProfileSG
|
from app.bot.dialogs.flows.profile.dialogs import ProfileSG
|
||||||
from app.bot.dialogs.widgets.getters import username_getter
|
from app.bot.dialogs.widgets.getters import is_admin, username_getter
|
||||||
|
|
||||||
from .states import AdminStartSG
|
from .states import StartSG
|
||||||
|
|
||||||
admin_start_dialog = Dialog(
|
start_dialog = Dialog(
|
||||||
Window(
|
Window(
|
||||||
Format("Привет, {username}"),
|
Format("Привет, {username}"),
|
||||||
Button(Const("события"), id="events"),
|
Button(Const("события"), id="events"),
|
||||||
Button(Const("создать событие"), when="is_admin"),
|
Button(Const("создать событие"), id="create_event", when="is_admin"),
|
||||||
Start(Const("профиль"), id="profile", state=ProfileSG.profile),
|
Start(Const("профиль"), id="profile", state=ProfileSG.profile),
|
||||||
getter=username_getter,
|
getter=[username_getter, is_admin],
|
||||||
state=AdminStartSG.start,
|
state=StartSG.start,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
from aiogram.fsm.state import State, StatesGroup
|
from aiogram.fsm.state import State, StatesGroup
|
||||||
|
|
||||||
|
|
||||||
class UserStartSG(StatesGroup):
|
class StartSG(StatesGroup):
|
||||||
start = State()
|
start = State()
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
from aiogram import Router
|
|
||||||
|
|
||||||
from .start.dialogs import user_start_dialog
|
|
||||||
|
|
||||||
user_router = Router(name="user dialogs")
|
|
||||||
user_router.include_router(user_start_dialog)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
from aiogram_dialog import Dialog, Window
|
|
||||||
from aiogram_dialog.widgets.kbd import Button, Start
|
|
||||||
from aiogram_dialog.widgets.text import Const, Format
|
|
||||||
|
|
||||||
from app.bot.dialogs.flows.common.profile.dialogs import ProfileSG
|
|
||||||
from app.bot.dialogs.widgets.getters import username_getter
|
|
||||||
|
|
||||||
from .states import UserStartSG
|
|
||||||
|
|
||||||
user_start_dialog = Dialog(
|
|
||||||
Window(
|
|
||||||
Format("Привет, {username}"),
|
|
||||||
Button(Const("события"), id="events"),
|
|
||||||
Start(Const("профиль"), id="profile", state=ProfileSG.profile),
|
|
||||||
getter=username_getter,
|
|
||||||
state=UserStartSG.start,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
@@ -6,3 +6,8 @@ async def username_getter(
|
|||||||
dialog_manager: DialogManager, event_from_user: User, **kwargs
|
dialog_manager: DialogManager, event_from_user: User, **kwargs
|
||||||
) -> dict[str, str]:
|
) -> dict[str, str]:
|
||||||
return {"username": event_from_user.username}
|
return {"username": event_from_user.username}
|
||||||
|
|
||||||
|
async def is_admin(
|
||||||
|
dialog_manager: DialogManager, event_from_user: User, **kwargs
|
||||||
|
) -> dict[str, str]:
|
||||||
|
return {"is_admin": False}
|
||||||
@@ -3,8 +3,7 @@ from aiogram.filters import CommandStart
|
|||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
from aiogram_dialog import DialogManager, StartMode
|
from aiogram_dialog import DialogManager, StartMode
|
||||||
|
|
||||||
from app.bot.dialogs.flows.admin.start.states import AdminStartSG
|
from app.bot.dialogs.flows.start.states import StartSG
|
||||||
from app.bot.dialogs.flows.user.start.states import UserStartSG
|
|
||||||
|
|
||||||
commands_router = Router(name="commands_router")
|
commands_router = Router(name="commands_router")
|
||||||
|
|
||||||
@@ -13,7 +12,4 @@ commands_router = Router(name="commands_router")
|
|||||||
async def command_start_process(
|
async def command_start_process(
|
||||||
message: Message, dialog_manager: DialogManager, user: dict
|
message: Message, dialog_manager: DialogManager, user: dict
|
||||||
):
|
):
|
||||||
if user["is_admin"]:
|
await dialog_manager.start(state=StartSG.start, mode=StartMode.RESET_STACK)
|
||||||
await dialog_manager.start(state=AdminStartSG.start, mode=StartMode.RESET_STACK)
|
|
||||||
else:
|
|
||||||
await dialog_manager.start(state=UserStartSG.start, mode=StartMode.RESET_STACK)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user