Opened 11 months ago

Closed 3 weeks ago

#1409 closed дефект (готово)

В интерфейсе "Несоответствия" не отображается несоответствие

Reported by: alx Owned by: Denis_N
Priority: critical Component: БД изделий АДС
Keywords: Cc:

Description

В r420/base выполняю следующие действия.

  • Открываю интерфейс "Тестирование".
  • Ввожу серийный номер платы.
  • Произвожу тестирование платы, в процессе которого обнаруживаю несоответствие. Выбираю результат тестирования "Выявлены ошибки", пишу описание выявленного несоответствия в поле комментария.
  • Нажимаю "Сохранить данные".
  • Открываю интерфейс "Несоответствия".
  • Ввожу в поле серийного номера серийный номер изделия, которое я только что тестировал.
  • Получаю пустой список несоответствий (написано "Записей у изделия не найдено").

Ожидалось, что в списке будет отображено выявленное мной при тестировании несоответствие.

Change History (2)

comment:1 by alx, 11 months ago

На всякий случай доп. информация: баг замечен при тестировании платы S/N H04167.

comment:2 by Denis_N, 3 weeks ago

Resolution: готово
Status: newclosed

В r420/base запись, созданная при тестировании с результатом “Выявлены ошибки”, сохранялась как составное событие testing,mismatch. В интерфейсе “Несоответствия” при включённой галочке “Показывать только несоответствия” выполнялся поиск только по type_write = 'mismatch', поэтому составные записи из “Тестирования” и “ОТК” не отображались.

В r462/base текст галочки изменён на явный: “Не показывать несоответствия, созданные через ОТК и Тестирование”, добавлена поясняющая подсказка.

Дополнительно в r537/base исправлен поиск по S/N в этом интерфейсе: поиск теперь срабатывает после фактического обновления поля, состояние галочки передаётся в AJAX-запрос, устаревшие запросы отменяются.

Передача галочки прямо в AJAX дала то, что backend стал получать состояние фильтра именно на момент конкретного поиска. До этого backend смотрел в cookie view_only_mismatch, а cookie обновлялась отдельно на frontend. Если пользователь менял галочку и сразу шёл поиск, можно было получить рассинхрон: в интерфейсе галочка уже в одном состоянии, а запрос обработался по старому cookie.

Перевод S/N на событие input исправил сценарий вставки/сканирования серийника. Раньше обработчик висел на keyup paste; paste срабатывает до того, как новое значение гарантированно оказалось в поле. В итоге AJAX мог уйти со старым или пустым S/N, и пользователь видел “Записей у изделия не найдено”. input срабатывает уже после изменения значения поля, поэтому поиск уходит с актуальным серийником.

В текущей версии такие несоответствия отображаются при снятой галочке.

Закрываю как исправленный, хотя открыт к предложению по UI-улучшению

Note: See TracTickets for help on using tickets.