This commit is contained in:
2026-02-28 09:48:37 +03:00
parent c57a40b09a
commit 44182955aa
15 changed files with 414 additions and 21 deletions
@@ -1,11 +1,11 @@
from aiogram.types import User
from aiogram_dialog import Dialog, Window, DialogManager
from aiogram_dialog.widgets.text import Format, Const
from aiogram_dialog.widgets.kbd import SwitchTo, Back
from aiogram_dialog.widgets.kbd import SwitchTo, Back, Start
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, RegistrationSG
from dutylog.infrastructure.database.repositories.users_repository import UsersRepository
from dutylog.infrastructure.database.repositories.residents_repository import ResidentsRepository
from dutylog.infrastructure.database.repositories.hours_transactions_repository import HoursTransactionsRepository
@@ -49,6 +49,7 @@ async def get_main_menu_data(
Вы еще не привязаны к резиденту.
Обратитесь к администратору для регистрации.
"""
has_resident = False
else:
content = f"""
{greeting}
@@ -59,6 +60,7 @@ async def get_main_menu_data(
━━━━━━━━━━━━━━━━
🔴 Неотработанные часы: <code>{resident.inactive_hours}</code> ч</blockquote>
"""
has_resident = True
else:
content = f"""
{greeting}
@@ -67,11 +69,12 @@ async def get_main_menu_data(
Добро пожаловать в систему учета дежурств!
"""
has_resident = False
return {
"content": content,
"is_regular_user": not is_admin and not is_creator,
"has_resident": resident is not None if not is_admin and not is_creator else False,
"has_resident": has_resident,
}
@@ -128,6 +131,12 @@ main_menu_dialog = Dialog(
state=MainMenuSG.history,
when="has_resident",
),
Start(
Const("🔄 Перерегистрация"),
id="reregister_btn",
state=RegistrationSG.select_floor,
when="is_regular_user",
),
state=MainMenuSG.main,
getter=get_main_menu_data,
),
@@ -138,3 +147,4 @@ main_menu_dialog = Dialog(
getter=get_history_data,
),
)