ArtemBalandin81 / tech_accidents

Приложение для учета и фиксации простоев в бизнес-процессах УК ПИФ, АИФ, НПФ
MIT License
0 stars 0 forks source link

Feature/add task upload files #73

Closed ArtemBalandin81 closed 4 months ago

ArtemBalandin81 commented 5 months ago

В постановке задач и в модели простоев нужны порой доп.материалы к задачам и простоям (фото, иллюстрация и т.п.), например - динамика ключевой ставки при фиксации рисков, или .pdf предписание ЦБ. А в случае постановки задач - нужны прикрепленные пояснительные материлы.

Реализован следующий функционал:

  1. Добавлена модель файлов и сервисы по ее управлению: файлы хранятся в специальной директории, а инфа о файлах (пути) хранятся в БД. В БД описаны модели м-т-м, связывающие модель файлов и задач. При добавлении файла - инфа о нем записывается в БД в модель файлов. Если добавляются файлы к задачам - то инфа о связях записывается в модель TasksFiles, а сами файлы сохраняются в директорию приложения (можно установить в настройках)!

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

  3. Файлы можно выгружать по одному, или несколько в формате .zip. Реализованы эндпоинты.

  4. При постановке задачи можно прикрепить один необязательный файл, или в отдельном эндпоинте несколько (но обязательных к загрузке) файлов. При получении инфы о задаче, можно как посмотреть задачу в формате json и прикрепленные к ней файлы, так и выгрузить файлы в формате .zip.

  5. Для админа подготовлен сервис управления бесхозными файлами как в БД, так и в каталоге.

  6. Настроены валидации случайного удаления прикрепленных файлов, дублирования загрузки, размера загружаемого файла, типа и т.п. (можно изменять в настройках приложения).

чуть подробнее:

ArtemBalandin81 commented 4 months ago

После обновления docker до версии 4.31.1 он перестал запускаться: engine не взлетал, логиниться не давал. Были попытки:

Исключение этого процесса как и самого docker из проверок не давало результата. Раньше такого замечено не было! Победить смог, лишь полностью отключив брандмауэр вэба. Подготовил и отправил запрос в др.вэб