Skip to content

study v1.7.0

Latest

Choose a tag to compare

@nowherewashere nowherewashere released this 22 Sep 14:18

Задание в ТУИС приходит из двух ручек, и раньше об этом знала только сводка: mod_assign_get_assignments отдаёт всё про приём ответа, но молчит о заданиях с ограничением доступа, а core_course_get_contents отдаёт их без данных о сдаче. Теперь слияние вынесено в реестр, и одно и то же задание везде видно одинаково.

  • Реестр заданий (study/assigns.py): works() сливает источники по cmid, find() ищет по номеру работы, id и cmid, modules() отдаёт прочие элементы со сроком. На нём стоят сводка, study task, study assigns и предполёт study submit.
  • study task <код> <NN|id|cmid> открывает и задание, закрытое ограничением доступа: срок, описание модуля и причина из ТУИС («Вы принадлежите к группе …») вместо «в курсе нет задания». Принимает cmid — тот самый номер, которым задание называет сводка.
  • study assigns --course <код> печатает такие задания строками (cmid, срок, причина) вместо счётчика «Скрыто ограничением доступа: N»; без курса поведение прежнее — состав пришлось бы спрашивать по каждому курсу. Курс, который в ТУИС ничего не принимает, так и говорит.
  • study submit с id, которого нет в mod_assign (часто это cmid из сводки), отказывает сразу и объясняет почему — раньше шёл за статусом и получал невнятную ошибку Moodle.
  • Сводка не изменилась ни на строку, но теперь стоит на реестре; порядок сроков стал детерминированным: срок → курс → название, а не «как ответил ТУИС».
  • Курс без папки больше не молчит: строка «Без папки (файлы не скачиваются): … — CODE <id> <папка> или COURSE_IGNORE» держится в каждой сводке, пока курс не заведён или не в игноре. Объявление «Новый курс в ТУИС» бывает один раз, и его легко пропустить.
  • Имена работ: «Решение задачи 3 ИДЗ» → «Задача 3» в таблицах, поиск по номеру работает и для них.
  • Сбой состава курса больше не уносит список и не молчит в карточке: ошибка мягкая и печатается строкой «Не удалось: …», как в сводке.

Внутри: soft переехал в config, lab_number — в fmt, KINDS/DATE_IDS/SUBMISSION — в assigns. Тестов 176, CI зелёный на 3.8 и 3.12 под Linux, macOS и Windows.