#1412 closed дефект (готово)
Неверная работа фильтра (сезон 3)
| Reported by: | alx | Owned by: | Denis_N |
|---|---|---|---|
| Priority: | critical | Component: | БД изделий АДС |
| Keywords: | Cc: |
Description (last modified by )
В r420/base выполняю следующие действия:
- Открываю главную страницу.
- В поле "Название изделия" ввожу "VE-02-01".
- Кликаю в панели "Фильтры по истории изделия".
- В открывшейся панели отмечаю радио-кнопку "Было протестированно".
- В появившейся строке "Кем" ввожу "Alex Mogilnikov". В результате получаю в таблице список из 30 изделий, что неверно.
Ожидалось, что я получу список всех изделий, тестировавшихся Алексом Могильниковым, которых на данный момент 39. Например в выведенном списке отсутствует изделие S/N H01568, которое имеет в истории запись о том, что его тестировал Alex Mogilnikov.
Change History (5)
comment:1 by , 9 months ago
| Description: | modified (diff) |
|---|
follow-up: 4 comment:3 by , 3 weeks ago
| Resolution: | → готово |
|---|---|
| Status: | new → closed |
Исправлено в r498/base.
В r420 фильтр “Было протестировано” на Главной странице проверял записи истории через точное сравнение h.type_write = 'testing'. Из-за этого записи со составным типом события, например mismatch,testing, не учитывались фильтром, хотя фактически это тоже записи тестирования. Поэтому часть изделий, протестированных указанным сотрудником, могла не попадать в результат.
В r498/base логика фильтров истории на Главной была переработана: тип события теперь проверяется через FIND_IN_SET('testing', h.type_write) > 0, поэтому составные записи тестирования также учитываются.
Спасибо, Алексей
follow-up: 5 comment:4 by , 3 weeks ago
Replying to Denis_N:
Исправлено в r498/base.
Хм... В сообщении коммита говорится об исправлении бага "новая главная сделана". :) Не обычный баг... :) Интересно, если через год ты прочитаешь это сообщение коммита, ты сам поймешь, чтоб было исправлено? :)
В r498/base логика фильтров истории на Главной была переработана: тип события теперь проверяется через
FIND_IN_SET('testing', h.type_write) > 0, поэтому составные записи тестирования также учитываются.
Вот в комментарии ты смог вполне ясно описать суть сделанных изменений...
Спасибо, Алексей
Да не за что. Рад был чем-то помочь.
comment:5 by , 3 weeks ago
Replying to alx:
Хм... В сообщении коммита говорится об исправлении бага "новая главная сделана". :) Не обычный баг... :) Интересно, если через год ты прочитаешь это сообщение коммита, ты сам поймешь, чтоб было исправлено? :)
Нет, сам не пойму. Буду стараться конкретнее писать
![[MC-04 logo]](/mc-04/chrome/site/logo.png)
В r420 несоответствие, созданное через интерфейс “Тестирование” с результатом “Выявлены ошибки”, сохранялось как составная запись
testing,mismatch, а не как чистая записьmismatch.В интерфейсе “Несоответствия” уже существовали два режима поиска: общий режим через
find_in_set('mismatch', history.type_write), который показывает также составные записиtesting,mismatchиotk,mismatch, и режим “только чистые несоответствия” черезtype_write = 'mismatch'. Но в r420 галочка была подписана неочевидно как “Показывать только несоответствия”, из-за чего пользователь мог включить режим, скрывающий записи из “Тестирования” и “ОТК”.Позже это было исправлено на стороне интерфейса:
input, устаревшие AJAX-запросы отменяются.Передача галочки прямо в AJAX дала то, что backend стал получать состояние фильтра именно на момент конкретного поиска. До этого backend смотрел в cookie view_only_mismatch, а cookie обновлялась отдельно на frontend. Если пользователь менял галочку и сразу шёл поиск, можно было получить рассинхрон: в интерфейсе галочка уже в одном состоянии, а запрос обработался по старому cookie.
Перевод S/N на событие input исправил сценарий вставки/сканирования серийника. Раньше обработчик висел на keyup paste; paste срабатывает до того, как новое значение гарантированно оказалось в поле. В итоге AJAX мог уйти со старым или пустым S/N, и пользователь видел “Записей у изделия не найдено”. input срабатывает уже после изменения значения поля, поэтому поиск уходит с актуальным серийником.
В текущей проверенной версии r579/base несоответствия, созданные через “Тестирование” и “ОТК”, отображаются при снятой галочке.
Закрою как "Готово". Хотя, я думаю, что можно предложить какое-то UI-улучшение