async def list_dictations(message: types.Message): """ Выводит список диктантов для каждой темы """ theme_id = share_module.get_id_command(message.text) if theme_id: list_dictations_theme = dictations_module.get_dictations_theme( theme_id) else: list_dictations_theme = dictations_module.get_dictations_theme( theme_id, show_all_dictations=True) if not list_dictations_theme: await message.answer("Нет ни одного диктанта") return dictations_row = [] for d_th in list_dictations_theme: dictations = [ f"▪ {textwrap.shorten(dictation, width=100, placeholder='...')}ℹ /full_dict{d_id} \n" f"✏/rewrite_dict{d_id} ❌/del_dict{d_id}\n" for dictation, d_id in d_th.dicts ] dictations_row += [ f"📒 {d_th.theme_name}\n\n" f"{share_module.unpack_list(dictations)}" ] answer_message = "💬Список тем и диктантов для них:\n\n" await message.answer(answer_message) await handlers.share.pagination_output(message, dictations_row)
async def del_ege_content(message: types.Message): """ Удаляет контент """ ege_content_id = share_module.get_id_command(message.text) ege_module.del_ege_content(ege_content_id) await message.answer("Удалил")
async def del_student(message: types.Message): """ Удаляет одну запись студента по её идентификатору """ row_id = share_module.get_id_command(message.text) students_module.delete_student(row_id) answer_message = "Удалил" await message.answer(answer_message)
async def rewrite_ege_task1(message: types.Message, state: FSMContext): """ Приглашение на изменение название ЕГЭ задания """ await state.finish() ege_id = share_module.get_id_command(message.text) await state.update_data(ege_id=ege_id) await message.answer("Введите новое название задания:") await Form.wait_rewrite_ege_task.set()
async def del_theme(message: types.Message): """ Удаляет одну тему и связанные с ней диктанты по её идентификатору """ row_id = share_module.get_id_command(message.text) themes_module.delete_theme(row_id) answer_message = "Удалил" await message.answer(answer_message)
async def rewrite_ege_name_task1(message: types.Message, state: FSMContext): """ Приглашение на переименование описания/тематики ЕГЭ задания """ await state.finish() ege_id = share_module.get_id_command(message.text) await state.update_data(ege_id=ege_id) await message.answer("Введите новое описание/тематику ЕГЭ задания") await Form.wait_rewrite_ege_name_task.set()
async def get_dict_full(message: types.Message): """ Возвращает голый текст диктанта """ dict_id = share_module.get_id_command(message.text) dictation = dictations_module.get_dict(dict_id) theme_name = themes_module.get_theme(dictation.themes_id) await message.answer(f"📒 Тема {theme_name.theme_name}\n" f"Для {theme_name.themes_grade_number}а") await message.answer(dictation.dictation)
async def rewrite_content_description1(message: types.Message, state: FSMContext): """ Приглашение на переименование описания контента """ await state.finish() ege_content_id = share_module.get_id_command(message.text) await state.update_data(ege_content_id=ege_content_id) await message.answer("Введите новое описание к материалу:") await Form.wait_rewrite_content_description.set()
async def add_dictation2(message: types.Message, state: FSMContext): """ Предлагает исправить диктант """ theme_id = share_module.get_id_command(message.text) await state.update_data(theme_id=theme_id) theme = themes_module.get_theme(theme_id) await message.answer(f"Выбрана тема:\n\n" f"📒 {theme.theme_name}\n\n" f"💡Напечатайте диктант") await state.update_data(theme_name=f"{theme.theme_name}") await Form.wait_dictation.set()
async def upload_content1(message: types.Message, state: FSMContext): """ Приглашение на отправку контента """ await state.finish() task_id = share_module.get_id_command(message.text) await state.update_data(task_id=task_id) await message.answer( "Вставьте или перешлите мне одну фотографию или документ\n" "Убедитесь, что название файла не содержит точек, кроме той, что обозначает расширение" ) await Form.wait_content_upload.set()
async def rename_theme1(message: types.Message, state: FSMContext): """ Переименование темы, вывод текущей и приглос на ввод новой """ theme_id = share_module.get_id_command(message.text) await state.update_data(theme_id=theme_id) theme_old = themes_module.get_theme(theme_id) answer_message = (f"Текущее название:\n\n" f"📒 {theme_old.theme_name}\n\n" f"Введите новое название темы") await message.answer(answer_message) await Form.wait_theme_renamed_text.set()
async def get_ege_content(message: types.Message): """ Отправляет юзеру фото или документ по telegram_file_id """ ege_content_id = share_module.get_id_command(message.text) content = ege_module.get_ege_content_lite(ege_content_id) try: if content.content_type == "photo": await message.answer_photo(content.telegram_file_id, content.description) elif content.content_type == "document": await message.answer_document(content.telegram_file_id, content.description) except Exception as ex: await message.answer(f"Проблема с выгрузкой контента, {ex, ex.args}")
async def rewrite_dict1(message: types.Message, state: FSMContext): """ Приглашение на исправление диктанта """ await state.finish() dict_id = share_module.get_id_command(message.text) await state.update_data(dict_id=f"{dict_id}") dictation_old = dictations_module.get_dict(dict_id) answer_message = (f"💬Текущий диктант:\n\n" f"{dictation_old.dictation}\n\n" f"✏Введите исправленный диктант заново\n" f"или нажмите /cancel") await message.answer(answer_message) await Form.wait_renamed_dictation_text.set()
async def del_dict(message: types.Message): """ Удаляет диктант """ dict_id = share_module.get_id_command(message.text) dictations_module.del_dict(dict_id) await message.answer("Удалил")
async def del_ege_task(message: types.Message): """ Удаляет ЕГЭ задание и его контент """ ege_id = share_module.get_id_command(message.text) ege_module.del_ege_task(ege_id) await message.answer("Задание и материалы к нему удалены")