From 4b9ee1738ac6942733d309a078f22a02b80032bb Mon Sep 17 00:00:00 2001 From: semenov Date: Fri, 17 Jan 2025 11:10:34 +0300 Subject: [PATCH] bugfix: diff update --- DOCS/Алексей/Board.md | 6 ++++-- ServerLMS/Data/PacketType.h | 2 ++ ServerLMS/Data/StreamingVersionData.h | 14 ++++++++++++++ ServerLMS/Systems/recognizesystem.cpp | 8 +++----- ServerLMS/Systems/updatecontroller.cpp | 2 +- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/DOCS/Алексей/Board.md b/DOCS/Алексей/Board.md index b0760b5..55eae26 100644 --- a/DOCS/Алексей/Board.md +++ b/DOCS/Алексей/Board.md @@ -10,7 +10,7 @@ kanban-plugin: board ## bugs -- [ ] QT сервер Найти причину двойного вызова проверки при логине инструктором +- [ ] При старт стопе не сканится шэред дата ## feature client Unity @@ -24,7 +24,6 @@ kanban-plugin: board - [ ] Иерархия проекта - папка application, папка updater и линк на основной экзешник - [ ] на старте все мониторы должны быть активны - [ ] Нужен ли дополнительный выбор для загрузки с мат моделью или нет? -- [ ] при создании копии переключение сервера и переключения клиента ## feature server @@ -32,6 +31,7 @@ kanban-plugin: board - [ ] добавить генерацию пустых файлов, если shared не найден - [ ] добавить подключение без DB - [ ] ПЕРЕВЕСТИ все действия под операции и формировать процент из них +- [ ] блокировать выгрузку под инструктором, если режим версия base ## NOW @@ -270,6 +270,8 @@ kanban-plugin: board ## BUGFIX Complete +- [ ] при создании копии переключение сервера и переключения клиента +- [ ] QT сервер Найти причину двойного вызова проверки при логине инструктором - [ ] QT клиент: device not open после прерывания загрузки - [ ] QT сервер При изменении версии правильный списке с файлами прилетает со второго раза - [ ] QT клиент, если обновление в режиме инструктора доступно, кнопку запуск отключать diff --git a/ServerLMS/Data/PacketType.h b/ServerLMS/Data/PacketType.h index 2b54672..326dda7 100644 --- a/ServerLMS/Data/PacketType.h +++ b/ServerLMS/Data/PacketType.h @@ -14,6 +14,8 @@ enum PacketType TYPE_XMLANSWER = 8, TYPE_QT = 9, TYPE_DISABLE = 11, + TYPE_UPDATE = 12, + TYPE_CHECK_VERSION = 13, TYPE_FILESIZE = 20, TYPE_XMLANSWER_MESSAGE_FOR_GUI = 90, diff --git a/ServerLMS/Data/StreamingVersionData.h b/ServerLMS/Data/StreamingVersionData.h index 3746bd7..007b368 100644 --- a/ServerLMS/Data/StreamingVersionData.h +++ b/ServerLMS/Data/StreamingVersionData.h @@ -36,11 +36,25 @@ public: return size; } + bool getIsChangeable() const; + void setIsChangeable(bool value); + private: QString absolutePath; QString viewName; QDateTime createData; + bool isChangeable; qint32 size; }; #endif // STREAMINGVERSIONDATA_H + +bool StreamingVersionData::getIsChangeable() const +{ +return isChangeable; +} + +void StreamingVersionData::setIsChangeable(bool value) +{ +isChangeable = value; +} diff --git a/ServerLMS/Systems/recognizesystem.cpp b/ServerLMS/Systems/recognizesystem.cpp index 2389ca6..46e929d 100644 --- a/ServerLMS/Systems/recognizesystem.cpp +++ b/ServerLMS/Systems/recognizesystem.cpp @@ -87,24 +87,22 @@ void RecognizeSystem::recognize() if (!stream.commitTransaction()) continue; } - if (command == commandUpdateFilesClient) //запускает процесс оновления + if (packetType == PacketType::TYPE_UPDATE) { + sendSystem->updateFiles(updateController->getFileSendList(), updateController->getFileDeleteList()); qDebug()<< "Call update"; packetType = PacketType::TYPE_NONE; - command = ""; } - if(command == "check") + if(packetType == PacketType::TYPE_CHECK_VERSION) { - command = ""; QFile checkFile(clientHash); checkFile.open(QIODevice::ReadOnly); updateController->compareFiles(clientHandler,checkFile.readAll()); checkFile.close(); - } if (packetType == PacketType::TYPE_XMLANSWER) diff --git a/ServerLMS/Systems/updatecontroller.cpp b/ServerLMS/Systems/updatecontroller.cpp index 7b0247a..08c7e9c 100644 --- a/ServerLMS/Systems/updatecontroller.cpp +++ b/ServerLMS/Systems/updatecontroller.cpp @@ -479,6 +479,7 @@ void UpdateController::createVersionListXmlAnswer(QList xmlWriter.writeEndDocument(); file.close(); } + void UpdateController::saveVersionToFile(StreamingVersionData *streamingVersion) //TODO: переименовать и перебросить в AssetManager { QFile file(version); @@ -498,7 +499,6 @@ void UpdateController::saveVersionToFile(StreamingVersionData *streamingVersion) file.close(); } - void UpdateController::sendNewVersionList() { commonClientHandler->sendNewVersionListToAllClient();