From 5d0e99f875ed134dd8f4a875d4ad8cf6c52ae4d0 Mon Sep 17 00:00:00 2001 From: kolo Date: Sun, 4 Jan 2026 02:00:26 +0300 Subject: [PATCH] commit --- .../application/bot/admin_dialogs/templates.py | 9 +++++---- .../bot/creator_dialogs/templates.py | 17 ++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/trudex/application/bot/admin_dialogs/templates.py b/src/trudex/application/bot/admin_dialogs/templates.py index 976488c..ea9f0df 100644 --- a/src/trudex/application/bot/admin_dialogs/templates.py +++ b/src/trudex/application/bot/admin_dialogs/templates.py @@ -53,11 +53,11 @@ async def get_tests_for_export(test_dao: FromDishka[TestDAO], **_kwargs): @inject async def on_test_selected_for_export( _callback: CallbackQuery, - _widget: Select, + _widget: Select, # type: ignore[type-arg] _manager: DialogManager, item_id: str, test_repo: FromDishka[TestRepository], -): +) -> None: test_id = int(item_id) test, questions_with_options = await test_repo.get_full_test(test_id) @@ -70,6 +70,7 @@ async def on_test_selected_for_export( "description": test.description, "password": test.password, "attempts": test.attempts, + "expires_at": test.expires_at.isoformat() if test.expires_at else None, "for_group": test.for_group, "questions": [], } @@ -102,7 +103,7 @@ async def on_test_selected_for_export( assert _callback.message is not None await _callback.message.answer_document( document=BufferedInputFile(json_str.encode("utf-8"), filename=filename), - caption=f"📤 Экспорт теста\n\n📝 {test.title}", + caption=f"📤 Экспорт теста: {test.title}", ) @@ -125,7 +126,7 @@ templates_dialog = Dialog( id="test_select", item_id_getter=lambda x: x[1], items="tests", - on_click=on_test_selected_for_export, + on_click=on_test_selected_for_export, # type: ignore[arg-type] ), id="tests_scroll", width=1, diff --git a/src/trudex/application/bot/creator_dialogs/templates.py b/src/trudex/application/bot/creator_dialogs/templates.py index 28b88a4..ba21d49 100644 --- a/src/trudex/application/bot/creator_dialogs/templates.py +++ b/src/trudex/application/bot/creator_dialogs/templates.py @@ -53,11 +53,11 @@ async def get_tests_for_export(test_dao: FromDishka[TestDAO], **_kwargs): @inject async def on_test_selected_for_export( _callback: CallbackQuery, - _widget: Select, + _widget: Select, # type: ignore[type-arg] _manager: DialogManager, item_id: str, test_repo: FromDishka[TestRepository], -): +) -> None: test_id = int(item_id) test, questions_with_options = await test_repo.get_full_test(test_id) @@ -65,17 +65,20 @@ async def on_test_selected_for_export( await _callback.answer("❌ Тест не найден") return - export_data = { + export_data: dict = { "title": test.title, "description": test.description, "password": test.password, "attempts": test.attempts, + "expires_at": test.expires_at.isoformat() if test.expires_at else None, "for_group": test.for_group, "questions": [], } + questions_list: list = export_data["questions"] + for question, options in questions_with_options: - question_data = { + question_data: dict = { "text": question.text, "question_type": question.question_type, } @@ -90,7 +93,7 @@ async def on_test_selected_for_export( for o in options ] - export_data["questions"].append(question_data) + questions_list.append(question_data) json_str = json.dumps(export_data, ensure_ascii=False, indent=2) @@ -100,7 +103,7 @@ async def on_test_selected_for_export( assert _callback.message is not None await _callback.message.answer_document( document=BufferedInputFile(json_str.encode("utf-8"), filename=filename), - caption=f"📤 Экспорт теста\n\n📝 {test.title}", + caption=f"📤 Экспорт теста: {test.title}", ) @@ -123,7 +126,7 @@ templates_dialog = Dialog( id="test_select", item_id_getter=lambda x: x[1], items="tests", - on_click=on_test_selected_for_export, + on_click=on_test_selected_for_export, # type: ignore[arg-type] ), id="tests_scroll", width=1,