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