mirror of
https://github.com/koloideal/DutyLog.git
synced 2026-06-10 10:25:29 +03:00
update
This commit is contained in:
@@ -36,7 +36,7 @@ async def main():
|
|||||||
dp.include_router(main_menu_dialog)
|
dp.include_router(main_menu_dialog)
|
||||||
|
|
||||||
setup_dialogs(dp)
|
setup_dialogs(dp)
|
||||||
setup_dishka(container, dp)
|
setup_dishka(container, dp, auto_inject=True)
|
||||||
|
|
||||||
await dp.start_polling(bot)
|
await dp.start_polling(bot)
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,65 @@
|
|||||||
from aiogram_dialog import Dialog, Window
|
from aiogram.types import User
|
||||||
from aiogram_dialog.widgets.text import Const
|
from aiogram_dialog import Dialog, Window, DialogManager
|
||||||
|
from aiogram_dialog.widgets.text import Format
|
||||||
|
from dishka import FromDishka
|
||||||
|
from dishka.integrations.aiogram_dialog import inject
|
||||||
|
|
||||||
from dutylog.application.bot.user_dialogs.states import MainMenuSG
|
from dutylog.application.bot.user_dialogs.states import MainMenuSG
|
||||||
|
from dutylog.infrastructure.database.repositories.users_repository import UsersRepository
|
||||||
|
from dutylog.infrastructure.utils.config import Config
|
||||||
|
|
||||||
|
|
||||||
|
@inject
|
||||||
|
async def get_main_menu_data(
|
||||||
|
dialog_manager: DialogManager,
|
||||||
|
event_from_user: User,
|
||||||
|
users_repository: FromDishka[UsersRepository],
|
||||||
|
config: FromDishka[Config],
|
||||||
|
**kwargs,
|
||||||
|
):
|
||||||
|
user = await users_repository.get_or_create_user(
|
||||||
|
user_id=event_from_user.id,
|
||||||
|
username=event_from_user.username,
|
||||||
|
first_name=event_from_user.first_name,
|
||||||
|
last_name=event_from_user.last_name,
|
||||||
|
)
|
||||||
|
|
||||||
|
is_creator = event_from_user.id == config.bot.creator_id
|
||||||
|
is_admin = user.is_admin
|
||||||
|
|
||||||
|
if is_creator:
|
||||||
|
greeting = "👑 <b>Создатель</b>"
|
||||||
|
elif is_admin:
|
||||||
|
greeting = "👨💼 <b>Администратор</b>"
|
||||||
|
else:
|
||||||
|
greeting = f"👋 <b>Привет, {event_from_user.first_name}!</b>"
|
||||||
|
|
||||||
|
if not is_admin and not is_creator:
|
||||||
|
content = f"""
|
||||||
|
{greeting}
|
||||||
|
|
||||||
|
⏰ <b>Ваши часы дежурств</b>
|
||||||
|
|
||||||
|
<blockquote>🟢 <b>Неотработанные часы:</b> <code>{user.active_hours}</code> ч
|
||||||
|
━━━━━━━━━━━━━━━
|
||||||
|
🔴 Неактивные часы: <code>{user.inactive_hours}</code> ч</blockquote>
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
content = f"""
|
||||||
|
{greeting}
|
||||||
|
|
||||||
|
<blockquote>📋 <b>Панель управления</b></blockquote>
|
||||||
|
|
||||||
|
Добро пожаловать в систему учета дежурств!
|
||||||
|
"""
|
||||||
|
|
||||||
|
return {"content": content}
|
||||||
|
|
||||||
|
|
||||||
main_menu_dialog = Dialog(
|
main_menu_dialog = Dialog(
|
||||||
Window(
|
Window(
|
||||||
Const("Главное меню"),
|
Format("{content}"),
|
||||||
state=MainMenuSG.main,
|
state=MainMenuSG.main,
|
||||||
|
getter=get_main_menu_data,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user