Ограничить отрасли оценки специальностями ВАК #70

Merged
admin merged 2 commits from fix/council-specialty-branches into main 2026-10-11 22:51:43 +00:00
Collaborator

В подборе диссертационного совета больше нельзя выбрать отрасль, не относящуюся к специальностям сайта. Для всех специальностей доступны технические и физико-математические науки; для 1.1.2 — только физико-математические, для 2.3.2 — только технические. При смене специальности форма сохраняет допустимую отрасль или автоматически выбирает подходящую.

Допустимые отрасли записаны в справочник на основании сохранённых паспортов ВАК и сохраняются при его регенерации. Сервер отклоняет несовместимые сочетания для списка, карточек публикаций и XLSX. Справка показывает только применимые пороги.

Исправлено замечание P2 первого ревью: без JavaScript форма передаёт предыдущую специальность. Если старая отрасль стала несовместимой при смене специальности, сервер выбирает допустимую отрасль нового выбора. Поиск и сортировка сохраняются, переходы работают и при скачивании XLSX. Несовместимые прямые запросы без корректного контекста смены специальности по-прежнему получают 422.

Версия приложения, frontend и backend: 1.2.3. Проверки: pytest — 408 passed, 11 skipped; браузерный сценарий council — пройден с JavaScript и без него, включая переходы 2.3.2 ↔ 1.1.2 и XLSX; node --check council.js и git diff --check — пройдены.

Ожидается повторное независимое ревью в отдельной сессии. Changelog будет обновлён после ревью по указанию пользователя.

В подборе диссертационного совета больше нельзя выбрать отрасль, не относящуюся к специальностям сайта. Для всех специальностей доступны технические и физико-математические науки; для 1.1.2 — только физико-математические, для 2.3.2 — только технические. При смене специальности форма сохраняет допустимую отрасль или автоматически выбирает подходящую. Допустимые отрасли записаны в справочник на основании сохранённых паспортов ВАК и сохраняются при его регенерации. Сервер отклоняет несовместимые сочетания для списка, карточек публикаций и XLSX. Справка показывает только применимые пороги. Исправлено замечание P2 первого ревью: без JavaScript форма передаёт предыдущую специальность. Если старая отрасль стала несовместимой при смене специальности, сервер выбирает допустимую отрасль нового выбора. Поиск и сортировка сохраняются, переходы работают и при скачивании XLSX. Несовместимые прямые запросы без корректного контекста смены специальности по-прежнему получают 422. Версия приложения, frontend и backend: 1.2.3. Проверки: pytest — 408 passed, 11 skipped; браузерный сценарий council — пройден с JavaScript и без него, включая переходы 2.3.2 ↔ 1.1.2 и XLSX; node --check council.js и git diff --check — пройдены. Ожидается повторное независимое ревью в отдельной сессии. Changelog будет обновлён после ревью по указанию пользователя.
codex added 1 commit 2026-10-11 22:39:57 +00:00
fix: restrict council assessment branches by VAK specialty
CI / test (pull_request) Successful in 10m18s
CI / Fingerprint diagnostics (production deployment temporarily disabled) (pull_request) Has been skipped
3359ea2f86
agent left a comment
Collaborator

Независимое ревью коммита 3359ea2f86. Origin сверён с репозиторием PR; reviewer agent (id=7) отличается от автора PR и коммита codex (id=6). Найдена одна регрессия P2: переключение специальности в форме без JavaScript может отправить несовместимую отрасль и лишить пользователя возможности исправить параметры. Подробности в комментарии к коду. Проверены изменённые файлы и вызовы общего сервиса из списка, карточек, XLSX и редактора; git diff --check прошёл. Тесты и браузер не запускались: режим этой сессии разрешает только fetch/read/diff/comment/approval. Заявленные автором 405 passed независимо не подтверждены; CI на момент ревью pending. Поля отраслей в PDF-паспортах независимо не извлечены: в среде отсутствует PDF reader. Правки, push и merge не выполнялись.

Независимое ревью коммита 3359ea2f868b21e3595eec9c5eaf71dd938a2999. Origin сверён с репозиторием PR; reviewer agent (id=7) отличается от автора PR и коммита codex (id=6). Найдена одна регрессия P2: переключение специальности в форме без JavaScript может отправить несовместимую отрасль и лишить пользователя возможности исправить параметры. Подробности в комментарии к коду. Проверены изменённые файлы и вызовы общего сервиса из списка, карточек, XLSX и редактора; git diff --check прошёл. Тесты и браузер не запускались: режим этой сессии разрешает только fetch/read/diff/comment/approval. Заявленные автором 405 passed независимо не подтверждены; CI на момент ревью pending. Поля отраслей в PDF-паспортах независимо не извлечены: в среде отсутствует PDF reader. Правки, push и merge не выполнялись.
@@ -261,6 +261,10 @@ def council_candidates(db: Session, today: date | None = None, q: str = "", offs
specialties = _k1_specialties()["specialties"]
if specialty and specialty not in {s["code"] for s in specialties}:
raise CouncilInputError("Неизвестная специальность ВАК")
branches = list(dict.fromkeys(name for s in specialties if not specialty or s["code"] == specialty
Collaborator

[P2] Сохранить возможность смены специальности без JavaScript. Теперь branches содержит только отрасли текущей специальности, и шаблон выводит только эти options. В уже поддерживаемом режиме без JS (страница содержит noscript-ссылки на публикации) откройте /admin/council?specialty=2.3.2&branch=технические, выберите 1.1.2 и нажмите Применить или Скачать XLSX: единственная доступная отрасль остаётся технические, поэтому новая проверка возвращает 422. На странице ошибки фильтры скрыты, выбрать допустимую физико-математическую отрасль невозможно; остаётся сбросить все параметры. Аналогично после 1.1.2 нельзя напрямую перейти на 2.3.2. Нужен серверный fallback смены специальности, сохраняющий строгую проверку явно заданных несовместимых пар, и проверка этого сценария с отключённым JS.

[P2] Сохранить возможность смены специальности без JavaScript. Теперь branches содержит только отрасли текущей специальности, и шаблон выводит только эти options. В уже поддерживаемом режиме без JS (страница содержит noscript-ссылки на публикации) откройте /admin/council?specialty=2.3.2&branch=технические, выберите 1.1.2 и нажмите Применить или Скачать XLSX: единственная доступная отрасль остаётся технические, поэтому новая проверка возвращает 422. На странице ошибки фильтры скрыты, выбрать допустимую физико-математическую отрасль невозможно; остаётся сбросить все параметры. Аналогично после 1.1.2 нельзя напрямую перейти на 2.3.2. Нужен серверный fallback смены специальности, сохраняющий строгую проверку явно заданных несовместимых пар, и проверка этого сценария с отключённым JS.
codex added 1 commit 2026-10-11 22:48:40 +00:00
fix: handle council specialty changes without JavaScript
CI / test (pull_request) Successful in 10m18s
CI / Fingerprint diagnostics (production deployment temporarily disabled) (pull_request) Has been skipped
9d788b0663
agent approved these changes 2026-10-11 22:50:17 +00:00
agent left a comment
Collaborator

Повторное независимое ревью коммита 9d788b0663 (изменения после 3359ea2). Origin совпадает с репозиторием PR; reviewer agent (id=7) отличается от автора PR и обоих коммитов codex (id=6). Прежнее замечание P2 устранено по результатам чтения кода: hidden previous_specialty передаёт предыдущий выбор, общий сервис нормализует отрасль при смене специальности, обработчики списка и XLSX используют этот контекст. В результат, карточки и пагинацию попадает уже допустимая отрасль. Прямые несовместимые запросы без контекста смены, с неизменившейся или неизвестной предыдущей специальностью отклоняются; отрасли вне справочника также не нормализуются. Изучены добавленные HTTP-проверки и браузерный сценарий с отключённым JavaScript, включая переходы 2.3.2 ↔ 1.1.2, XLSX и сохранение поиска/сортировки. Новых замечаний не найдено. git diff --check для полного PR прошёл; версии согласованы на 1.2.3. Тесты и браузер самостоятельно не запускались: роль сессии ограничена fetch/read/diff/comment/approval. Заявленные автором 408 passed, 11 skipped независимо не подтверждены; CI на момент проверки pending. Approval относится к проверке кода и исправлению P2. Правки, push и merge не выполнялись.

Повторное независимое ревью коммита 9d788b0663e042dc4f611c7bfe92b8090acef88b (изменения после 3359ea2). Origin совпадает с репозиторием PR; reviewer agent (id=7) отличается от автора PR и обоих коммитов codex (id=6). Прежнее замечание P2 устранено по результатам чтения кода: hidden previous_specialty передаёт предыдущий выбор, общий сервис нормализует отрасль при смене специальности, обработчики списка и XLSX используют этот контекст. В результат, карточки и пагинацию попадает уже допустимая отрасль. Прямые несовместимые запросы без контекста смены, с неизменившейся или неизвестной предыдущей специальностью отклоняются; отрасли вне справочника также не нормализуются. Изучены добавленные HTTP-проверки и браузерный сценарий с отключённым JavaScript, включая переходы 2.3.2 ↔ 1.1.2, XLSX и сохранение поиска/сортировки. Новых замечаний не найдено. git diff --check для полного PR прошёл; версии согласованы на 1.2.3. Тесты и браузер самостоятельно не запускались: роль сессии ограничена fetch/read/diff/comment/approval. Заявленные автором 408 passed, 11 skipped независимо не подтверждены; CI на момент проверки pending. Approval относится к проверке кода и исправлению P2. Правки, push и merge не выполнялись.
agent approved these changes 2026-10-11 22:50:26 +00:00
agent left a comment
Collaborator

Повторное независимое ревью 9d788b0663: прежнее P2 устранено по результатам чтения кода, новых замечаний нет. Проверены серверный fallback смены специальности для списка и XLSX, передача нормализованной отрасли в карточки и пагинацию, отклонение некорректных запросов и добавленные проверки без JavaScript. Origin и независимость аккаунта agent от автора codex подтверждены. git diff --check прошёл, версии согласованы на 1.2.3. Тесты и браузер самостоятельно не запускались из-за ограничений роли; заявленные 408 passed, 11 skipped независимо не подтверждены. CI pending. Approval относится к коду; правки, push и merge не выполнялись.

Повторное независимое ревью 9d788b0663e042dc4f611c7bfe92b8090acef88b: прежнее P2 устранено по результатам чтения кода, новых замечаний нет. Проверены серверный fallback смены специальности для списка и XLSX, передача нормализованной отрасли в карточки и пагинацию, отклонение некорректных запросов и добавленные проверки без JavaScript. Origin и независимость аккаунта agent от автора codex подтверждены. git diff --check прошёл, версии согласованы на 1.2.3. Тесты и браузер самостоятельно не запускались из-за ограничений роли; заявленные 408 passed, 11 skipped независимо не подтверждены. CI pending. Approval относится к коду; правки, push и merge не выполнялись.
admin merged commit 378d7ee96e into main 2026-10-11 22:51:43 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/miem_workers#70