Opened 23 months ago

Last modified 20 months ago

#1025 assigned улучшение

Хранить протоколы тестирования изделий в базе данных

Reported by: alx Owned by: san
Priority: major Component: БД изделий АДС
Keywords: Cc: andrei

Description

По существующей в настоящее время традиции, сотрудник, тестирующий иделие, составляет протокол испытаний, заносит в БД запись о проведенном испытании, а файл протокола помещает на r2 в каталог /media/pto/Протоколы испытаний (точнее, один из его подкаталогов).

Как показала практика, данная традиция дает неудовлетворительные результаты (см. ticket:1010#comment:6). Кроме этого, недавнее решение не хранить номера протоколов в записях о тестировании (см. ticket:1022#comment:3) затрудняет поиск файла протокола, даже когда он имеется.

Предлагаю изменить существующую традицию и хранить протоколы испытаний не в отдельных от БД файлах, а в самой БД, а именно:

  • В талицу history добавить столбцы document и document-mime;
  • В веб-интерфейсе испытания в форме записи результатов испытания добавить поле выбора файла протокола;
  • при сабмите формы записывать в history протокол и его MIME-type.
  • В веб-интерефйсе на странице просмотра истории предусмотреть возможность скачивания протокола.
  • Уже имеющиеся на r2 файлы протоколов добавить в существующие записи в таблице history в течение некоторого "переходного периода".

В записях таблицы history с типом, отличным от 'testing', столбцы document и document-mime будут иметь значение NULL.

Предлагаемое улучшение, по моему мнению, позволит:

  • исключить возможность отсутствия протокола тестирования (фронтенд не позволит пользователю забыть загрузить файл);
  • исключить необходимость "ручного" (визуального) поиска файла протокола по имени и/или дате файла, так как будет строгое соответствие - в одной записи один протокол.

Change History (2)

comment:1 by san, 22 months ago

milestone: 1 очередь

Milestone deleted

comment:2 by san, 20 months ago

Owner: changed from Denis_N to san
Status: newassigned
Note: See TracTickets for help on using tickets.