Closed ArtemBalandin81 closed 4 months ago
После обновления docker
до версии 4.31.1
он перестал запускаться: engine
не взлетал, логиниться не давал.
Были попытки:
wsl 2
, docker
, unregister и удаление ubuntu
.др.вэб
в брандмауэре процесс, который он лочит
C:\Program Files\Docker\Docker\resources\com.docker.backend.exe
Исключение этого процесса как и самого docker
из проверок не давало результата.
Раньше такого замечено не было!
Победить смог, лишь полностью отключив брандмауэр вэба.
Подготовил и отправил запрос в др.вэб
В постановке задач и в модели простоев нужны порой доп.материалы к задачам и простоям (фото, иллюстрация и т.п.), например - динамика ключевой ставки при фиксации рисков, или .pdf предписание ЦБ. А в случае постановки задач - нужны прикрепленные пояснительные материлы.
Реализован следующий функционал:
Добавлена модель файлов и сервисы по ее управлению: файлы хранятся в специальной директории, а инфа о файлах (пути) хранятся в БД. В БД описаны модели м-т-м, связывающие модель файлов и задач. При добавлении файла - инфа о нем записывается в БД в модель файлов. Если добавляются файлы к задачам - то инфа о связях записывается в модель TasksFiles, а сами файлы сохраняются в директорию приложения (можно установить в настройках)!
Подготовлены сервисы управления файлами: сохранения в каталог, удаление, проверка бесхозности, запись информации о файлах в БД и проверка бесхозности, прикрепление файлов к задачам, открепление, выгрузка и загрузка из каталогов. проверки и т.п.
Файлы можно выгружать по одному, или несколько в формате
.zip
. Реализованы эндпоинты.При постановке задачи можно прикрепить один необязательный файл, или в отдельном эндпоинте несколько (но обязательных к загрузке) файлов. При получении инфы о задаче, можно как посмотреть задачу в формате json и прикрепленные к ней файлы, так и выгрузить файлы в формате
.zip
.Для админа подготовлен сервис управления бесхозными файлами как в БД, так и в каталоге.
Настроены валидации случайного удаления прикрепленных файлов, дублирования загрузки, размера загружаемого файла, типа и т.п. (можно изменять в настройках приложения).
чуть подробнее:
(+) Храним пути файлов в БД, а не сами файлы (хотя BLOB предусмотрен и на этот случай в моделях);
(+) Добавлена МОДЕЛЬ ФАЙЛОВ M-t-M в
src/core/db/models.py
, например:FileAttached(Base)
; Файлы не загружаются в БД SQLite в формате BLOB, а записываются пути в отдельную таблицу.(+) Добалены поля модели
FileAttached(Base)
в каждую из моделей; По схеме взаимодействия M-t-M файлы будут связаны с остальными таблицами:tasks
,suspensions
,risk_accidents
(todo). Один файл может быть связан с несколькими моделями, как и у одной модели может быть несколько файлов(+) Добавил промежуточные таблицы для каждой из моделей;
(+) Провел миграции;
(+) Тестировал добавление файлов в таблицу
FileAttached(Base)
и проверить, что они записались.(+) Подготовил отдельный эндпоинт по загрузке файлов, сервисы к нему
(+) Выгружал файлы из
Files(Base)
и проверял, что они отображаются в апи(+) Загружать и выгружать несколько файлов (выгрузка zip-архива) Для начала можно подготовить отдельный эндпоинт по выгрузке файлов по айди, сервисы к нему
(+) Схема ответа содержит и пайдентик и FileResponse через переключатель в форме сваггер
Изменить эндпоинт задач под возможность загрузки файлов
(+) Поправлен эндпоинт управления файлами: загрузка, запись в БД, присвоение задачам файлов, поиск файлов, удаление, управление бесхозными файлами (отображение и удаление бесхозных из БД, и из каталога - эндпоинт с чекбоксом)
(+) Метод патч задач также допускает загрузку файлов
(+) Поправил readme;
(+) PEP рефакторинг;
(+) обновили библиотеки и файл req (было - стало в комментариях ниже)
(+) Запуск в доккер: ошибка запуска доккер была решена отключение доктора вэба брандмауэра, который гасил процесс: C:\Program Files\Docker\Docker\resources\com.docker.backend.exe
(+) Изменить эндпоинт задач под возможность загрузки файлов
(+) Написать сервис поиска файлов по имени - ниже в комментариях отдельный метод в репозитории