merge user, admin and common dialogs to one folder

This commit is contained in:
2025-09-25 21:21:02 +03:00
parent 250a349209
commit 91f247c8b4
12 changed files with 20 additions and 60 deletions

View File

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

View File

@@ -1,3 +0,0 @@
from aiogram import Router
admin_router = Router(name="admin dialogs")

View File

@@ -1,5 +0,0 @@
from aiogram.fsm.state import State, StatesGroup
class AdminStartSG(StatesGroup):
start = State()

View File

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

View File

@@ -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("Имя:"),

View File

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

View File

@@ -1,5 +1,5 @@
from aiogram.fsm.state import State, StatesGroup
class UserStartSG(StatesGroup):
class StartSG(StatesGroup):
start = State()

View File

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

View File

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

View File

@@ -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}

View File

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