Skip to content

Commit 734891c

Browse files
committed
refactor(qodana): Рефакторинг Qodana, удаление неиспользуемых аргументов и функций
Signed-off-by: Roman Chursanov <[email protected]>
1 parent 5c229cf commit 734891c

File tree

16 files changed

+165
-124
lines changed

16 files changed

+165
-124
lines changed

infrastructure/database/repo/STP/group_member.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ async def is_member_muted(self, group_id: int, member_id: int) -> bool:
255255
return True
256256

257257
# Если заглушен временно, проверяем время
258-
current_time = datetime.utcnow()
258+
current_time = datetime.now()
259259
if current_time >= unmute_at:
260260
# Время мьюта истекло, автоматически размучиваем
261261
await self.unmute_member(group_id, member_id)

infrastructure/database/repo/STP/transactions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ async def add_transaction(
4747
source_id: Идентификатор достижения или предмета (опционально)
4848
comment: Комментарий (опционально)
4949
created_by: ID администратора, создавшего транзакцию (опционально)
50+
kpi_extracted_at: Дата выгрузки KPI
5051
5152
Returns:
5253
Объект Transaction или None в случае ошибки

tgbot/handlers/deep/group/settings.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -488,9 +488,6 @@ async def handle_member_detail(
488488
await callback.answer("Не удалось найти группу в базе :(")
489489
return
490490

491-
member_name = ""
492-
member_info = ""
493-
494491
if callback_data.member_type == "employee":
495492
# Get employee data
496493
employee = await stp_repo.employee.get_user(user_id=callback_data.member_id)

tgbot/handlers/group/management.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -779,9 +779,6 @@ async def handle_member_detail(
779779
await callback.answer("❌ Группа не найдена в базе данных")
780780
return
781781

782-
member_name = ""
783-
member_info = ""
784-
785782
if callback_data.member_type == "employee":
786783
employee = await stp_repo.employee.get_user(user_id=callback_data.member_id)
787784
if employee:

tgbot/handlers/head/main.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from aiogram import F, Router
22
from aiogram.filters import CommandStart
33
from aiogram.types import CallbackQuery, Message
4-
from aiogram.utils.deep_linking import create_startgroup_link
54

65
from infrastructure.database.models import Employee
76
from tgbot.filters.role import HeadFilter
@@ -15,23 +14,21 @@
1514

1615
@head_router.message(CommandStart())
1716
async def admin_start_cmd(message: Message, user: Employee):
18-
group_link = await create_startgroup_link(message.bot, payload="start")
1917
await message.answer(
2018
f"""👋 Привет, <b>{user.fullname}</b>!
2119
2220
Я - бот-помощник СТП
2321
Здесь ты можешь найти графики, показатели своей группы и многое другое""",
24-
reply_markup=main_kb(group_link),
22+
reply_markup=main_kb(),
2523
)
2624

2725

2826
@head_router.callback_query(MainMenu.filter(F.menu == "main"))
2927
async def user_start_cb(callback: CallbackQuery, user: Employee):
30-
group_link = await create_startgroup_link(callback.bot, payload="start")
3128
await callback.message.edit_text(
3229
f"""👋 Привет, <b>{user.fullname}</b>!
3330
3431
Я - бот-помощник СТП
3532
Здесь ты можешь найти графики, показатели своей группы и многое другое""",
36-
reply_markup=main_kb(group_link),
33+
reply_markup=main_kb(),
3734
)

tgbot/handlers/inline/inline.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,6 @@ async def search_users_with_filters(
148148
) -> List[Employee]:
149149
"""Поиск пользователей с применением фильтров"""
150150
try:
151-
users = []
152-
153151
# Приоритетный поиск по explicit фильтрам
154152
if filters["user_id"] is not None:
155153
user = await stp_repo.employee.get_user(user_id=filters["user_id"])

tgbot/handlers/search/main.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -404,14 +404,9 @@ async def show_user_details(
404404
await callback.answer("❌ Пользователь не найден", show_alert=True)
405405
return
406406

407-
# Получаем статистику пользователя (только для роли 2 и выше)
408-
stats = None
409-
if viewer_role >= 2:
410-
stats = await SearchService.get_user_statistics(user_id, stp_repo)
411-
412407
# Формирование информации о пользователе в зависимости от роли смотрящего
413408
user_info = SearchService.format_user_info_role_based(
414-
target_user, user_head, stats, viewer_role
409+
target_user, user_head, viewer_role
415410
)
416411

417412
# Дополнительная информация для руководителей (только для роли 2 и выше)
@@ -1598,14 +1593,9 @@ async def search_head_group_member_detail(
15981593
else None
15991594
)
16001595

1601-
# Получаем статистику пользователя (только для роли 2 и выше)
1602-
stats = None
1603-
if viewer_role >= 2:
1604-
stats = await SearchService.get_user_statistics(member_id, stp_repo)
1605-
16061596
# Формирование информации о пользователе в зависимости от роли смотрящего
16071597
user_info = SearchService.format_user_info_role_based(
1608-
member, user_head, stats, viewer_role
1598+
member, user_head, viewer_role
16091599
)
16101600

16111601
# Дополнительная информация для руководителей (только для роли 2 и выше)

tgbot/handlers/user/search/main.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@ async def show_user_search_details(
284284
return
285285

286286
user_id = callback_data.user_id
287-
return_to = callback_data.return_to
288287

289288
try:
290289
target_user = await stp_repo.employee.get_user(user_id=user_id)
@@ -300,12 +299,12 @@ async def show_user_search_details(
300299

301300
# Базовая информация о пользователе (без статистики для обычных пользователей)
302301
user_info = SearchService.format_user_info_role_based(
303-
target_user, user_head, None, user.role
302+
target_user, user_head, user.role
304303
)
305304

306305
await callback.message.edit_text(
307306
user_info,
308-
reply_markup=user_user_detail_kb(target_user, return_to),
307+
reply_markup=user_user_detail_kb(),
309308
)
310309

311310
except Exception as e:

tgbot/keyboards/group/main.py

Lines changed: 119 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ def group_members_kb(
388388
current_page: int = 1,
389389
list_page: int = 1,
390390
members_per_page: int = 8,
391-
) -> InlineKeyboardMarkup | None:
391+
) -> InlineKeyboardMarkup:
392392
"""Group members management keyboard."""
393393
buttons = []
394394

@@ -436,6 +436,110 @@ def group_members_kb(
436436
)
437437
return InlineKeyboardMarkup(inline_keyboard=buttons)
438438

439+
# Implement pagination
440+
total_members = len(all_members)
441+
total_pages = max(1, (total_members + members_per_page - 1) // members_per_page)
442+
start_index = (current_page - 1) * members_per_page
443+
end_index = min(start_index + members_per_page, total_members)
444+
445+
page_members = all_members[start_index:end_index]
446+
447+
# Add member buttons in pairs
448+
for i in range(0, len(page_members), 2):
449+
row = []
450+
451+
member = page_members[i]
452+
role_emoji = (
453+
roles.get(member["role"], {}).get("emoji", "👤") if member["role"] else "👤"
454+
)
455+
button_text = f"{role_emoji} {member['name']}"
456+
457+
row.append(
458+
InlineKeyboardButton(
459+
text=button_text,
460+
callback_data=GroupMemberDetailMenu(
461+
group_id=group_id,
462+
member_id=member["id"],
463+
member_type=member["type"],
464+
page=current_page,
465+
list_page=list_page,
466+
).pack(),
467+
)
468+
)
469+
470+
if i + 1 < len(page_members):
471+
member = page_members[i + 1]
472+
role_emoji = (
473+
roles.get(member["role"], {}).get("emoji", "👤")
474+
if member["role"]
475+
else "👤"
476+
)
477+
button_text = f"{role_emoji} {member['name']}"
478+
479+
row.append(
480+
InlineKeyboardButton(
481+
text=button_text,
482+
callback_data=GroupMemberDetailMenu(
483+
group_id=group_id,
484+
member_id=member["id"],
485+
member_type=member["type"],
486+
page=current_page,
487+
list_page=list_page,
488+
).pack(),
489+
)
490+
)
491+
492+
buttons.append(row)
493+
494+
# Add pagination controls if needed
495+
if total_pages > 1:
496+
pagination_row = []
497+
if current_page > 1:
498+
pagination_row.append(
499+
InlineKeyboardButton(
500+
text="◀️",
501+
callback_data=GroupMembersMenu(
502+
group_id=group_id,
503+
page=current_page - 1,
504+
list_page=list_page,
505+
).pack(),
506+
)
507+
)
508+
509+
pagination_row.append(
510+
InlineKeyboardButton(
511+
text=f"{current_page}/{total_pages}", callback_data="noop"
512+
)
513+
)
514+
515+
if current_page < total_pages:
516+
pagination_row.append(
517+
InlineKeyboardButton(
518+
text="▶️",
519+
callback_data=GroupMembersMenu(
520+
group_id=group_id,
521+
page=current_page + 1,
522+
list_page=list_page,
523+
).pack(),
524+
)
525+
)
526+
527+
buttons.append(pagination_row)
528+
529+
# Back button
530+
buttons.append(
531+
[
532+
InlineKeyboardButton(
533+
text="↩️ Назад",
534+
callback_data=GroupSettingsMenu(
535+
group_id=group_id, menu="back", page=list_page
536+
).pack(),
537+
)
538+
]
539+
)
540+
541+
return InlineKeyboardMarkup(inline_keyboard=buttons)
542+
439543

440544
def group_member_detail_kb(
441545
group_id: int,
@@ -449,7 +553,7 @@ def group_member_detail_kb(
449553
buttons = [
450554
[
451555
InlineKeyboardButton(
452-
text="🚫 Забанить",
556+
text=f"🚫 Забанить {member_name}",
453557
callback_data=GroupMemberActionMenu(
454558
group_id=group_id,
455559
member_id=member_id,
@@ -460,6 +564,19 @@ def group_member_detail_kb(
460564
).pack(),
461565
)
462566
],
567+
[
568+
InlineKeyboardButton(
569+
text=f"👢 Исключить {member_name}",
570+
callback_data=GroupMemberActionMenu(
571+
group_id=group_id,
572+
member_id=member_id,
573+
action="kick",
574+
member_type=member_type,
575+
page=page,
576+
list_page=list_page,
577+
).pack(),
578+
)
579+
],
463580
[
464581
InlineKeyboardButton(
465582
text="↩️ Назад",

tgbot/keyboards/group/settings.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -389,36 +389,6 @@ def group_members_keyboard(
389389
return InlineKeyboardMarkup(inline_keyboard=buttons)
390390

391391

392-
def group_member_detail_keyboard(
393-
group_id: int, member_id: int, member_type: str, member_name: str, page: int = 1
394-
) -> InlineKeyboardMarkup:
395-
"""
396-
Keyboard for member detail view with ban option.
397-
"""
398-
buttons = [
399-
[
400-
InlineKeyboardButton(
401-
text="🚫 Забанить участника",
402-
callback_data=GroupMemberActionMenu(
403-
group_id=group_id,
404-
member_id=member_id,
405-
action="ban",
406-
member_type=member_type,
407-
page=page,
408-
).pack(),
409-
)
410-
],
411-
[
412-
InlineKeyboardButton(
413-
text="↩️ Назад",
414-
callback_data=GroupMembersMenu(group_id=group_id, page=page).pack(),
415-
)
416-
],
417-
]
418-
419-
return InlineKeyboardMarkup(inline_keyboard=buttons)
420-
421-
422392
def group_service_messages_keyboard(
423393
group: Group, pending_categories: list = None
424394
) -> InlineKeyboardMarkup:

0 commit comments

Comments
 (0)