Упрощение для балбесов
Some checks failed
CI / Lint (ruff + mypy) (push) Failing after 35s
CI / Run tests (push) Has been skipped
CI / Docker build test (push) Successful in 18s

This commit is contained in:
2026-03-30 18:26:49 +07:00
parent bdae79db58
commit ea4a6fbe38
6 changed files with 548 additions and 452 deletions

View File

@@ -24,50 +24,15 @@ def _add_pagination_row(
def help_home_keyboard(is_admin: bool) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Обзор и метрики", callback_data="help:menu:monitoring")
builder.button(text="Релизы и версии", callback_data="help:menu:releases")
builder.button(text="Подписки", callback_data="help:menu:subscriptions")
builder.button(text="Статус синхронизации", callback_data="help:sync_status")
if is_admin:
builder.button(text="Админ-панель", callback_data="admin:open")
builder.adjust(2, 2, 1)
return builder.as_markup()
def help_monitoring_keyboard(is_admin: bool) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Сводка за неделю", callback_data="help:week")
builder.button(text="Сегодня", callback_data="help:today")
builder.button(text="Топ issues", callback_data="help:top")
builder.button(text="Старые issues", callback_data="help:stale")
builder.button(text="Назад", callback_data="help:open")
builder.button(text="Неделя", callback_data="help:week")
builder.button(text="Самые шумные", callback_data="help:top")
builder.button(text="Давно висят", callback_data="help:stale")
if is_admin:
builder.button(text="Админ-панель", callback_data="admin:open")
builder.adjust(2, 2, 1, 1)
return builder.as_markup()
def help_releases_keyboard(is_admin: bool) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Список релизов", callback_data="help:releases")
builder.button(text="Как открыть релиз", callback_data="help:release_guide")
builder.button(text="Назад", callback_data="help:open")
if is_admin:
builder.button(text="Админ-панель", callback_data="admin:open")
builder.adjust(2, 1, 1)
return builder.as_markup()
def help_subscriptions_keyboard(is_admin: bool) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Подписаться на backend", callback_data="help:sub:backend")
builder.button(text="Подписаться на frontend", callback_data="help:sub:frontend")
builder.button(text="Отписаться от backend", callback_data="help:unsub:backend")
builder.button(text="Отписаться от frontend", callback_data="help:unsub:frontend")
builder.button(text="Назад", callback_data="help:open")
if is_admin:
builder.button(text="Админ-панель", callback_data="admin:open")
builder.adjust(2, 2, 1, 1)
builder.adjust(2, 2, 1)
else:
builder.adjust(2, 2)
return builder.as_markup()
@@ -104,14 +69,15 @@ def help_result_keyboard(
def admin_home_keyboard() -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Центр синхронизации", callback_data="admin:menu:sync")
builder.button(text="Сводки и мониторинг", callback_data="admin:menu:overview")
builder.button(text="Сводки", callback_data="admin:menu:overview")
builder.button(text="Синхронизация", callback_data="admin:menu:sync")
builder.button(text="Получатели", callback_data="admin:menu:recipients")
builder.button(text="Администраторы", callback_data="admin:admins")
builder.button(text="Ownership и topics", callback_data="admin:ownership")
builder.button(text="Routing и topics", callback_data="admin:ownership")
builder.button(text="Mute rules", callback_data="admin:mute_list")
builder.button(text="Инструкция", callback_data="admin:guide")
builder.button(text="Пользовательское меню", callback_data="help:open")
builder.adjust(2, 2, 2, 1)
builder.adjust(2, 2, 2, 1, 1)
return builder.as_markup()
@@ -127,13 +93,31 @@ def admin_sync_keyboard() -> InlineKeyboardMarkup:
def admin_overview_keyboard() -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Сводка за неделю", callback_data="admin:week")
builder.button(text="Сегодня", callback_data="admin:today")
builder.button(text="Топ issues", callback_data="admin:top")
builder.button(text="Старые issues", callback_data="admin:stale")
builder.button(text="Релизы", callback_data="admin:releases")
builder.button(text="Неделя", callback_data="admin:week")
builder.button(text="Самые шумные", callback_data="admin:top")
builder.button(text="Давно висят", callback_data="admin:stale")
builder.button(text="Назад", callback_data="admin:open")
builder.adjust(2, 2, 1, 1)
builder.adjust(2, 2, 1)
return builder.as_markup()
def admin_recipients_keyboard() -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Backend", callback_data="admin:recipients:backend")
builder.button(text="Frontend", callback_data="admin:recipients:frontend")
builder.button(text="Назад", callback_data="admin:open")
builder.adjust(2, 1)
return builder.as_markup()
def admin_recipient_group_keyboard(group_name: str) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Список", callback_data=f"admin:recipients:list:{group_name}")
builder.button(text="Добавить ID", callback_data=f"admin:recipients:add:{group_name}")
builder.button(text="Удалить ID", callback_data=f"admin:recipients:del:{group_name}")
builder.button(text="Назад", callback_data="admin:menu:recipients")
builder.adjust(2, 1, 1)
return builder.as_markup()