diff --git a/InstructorsAndTrainees/InstructorsAndTrainees.qrc b/InstructorsAndTrainees/InstructorsAndTrainees.qrc index 198a0c1..a81d934 100644 --- a/InstructorsAndTrainees/InstructorsAndTrainees.qrc +++ b/InstructorsAndTrainees/InstructorsAndTrainees.qrc @@ -55,5 +55,6 @@ resources/icons/personalCard.png resources/icons/eye.png resources/icons/exchange.png + resources/icons/link.png diff --git a/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp b/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp index 1e64edd..3d4dab8 100644 --- a/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp +++ b/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp @@ -799,6 +799,20 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array task.ammProcedure.dmCode = taskNode.toElement().attribute("dmCode"); task.status = taskNode.toElement().attribute("status"); + for(int j = 0; j < taskNode.childNodes().count(); j++) + { + QDomNode subProcNode = taskNode.childNodes().at(j); + if(subProcNode.nodeName() == "SubProc") + {//Подпроцедура + SubProc subProc; + subProc.setDmCode(subProcNode.toElement().attribute("dmCode")); + subProc.setTitle(subProcNode.toElement().attribute("title")); + subProc.setModeListStr(subProcNode.toElement().attribute("canplay")); + + task.listSubProc.append(subProc); + } + } + listTasks.append(task); } } diff --git a/InstructorsAndTrainees/resources/icons/link.png b/InstructorsAndTrainees/resources/icons/link.png new file mode 100644 index 0000000..0dee870 Binary files /dev/null and b/InstructorsAndTrainees/resources/icons/link.png differ diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index 23922f6..e8c0a28 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -182,27 +182,51 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) { ui->btnDelete->setEnabled(false); ui->btnCheck->setEnabled(false); + ui->btnAssignTask->setEnabled(false); return; } - else + + if(this->type == TypeListTreeAMMFIM::listCommon) { - ui->btnCheck->setEnabled(true); - ui->btnDelete->setEnabled(true); + int id = item->text(ColumnsTreeAMM::clmnAMM_ID).toInt(); + TaskAmmFim task = taskTreePreparation->getTaskAMMbyID(id); + + if(taskTreePreparation->getTypeModuleAMMbyID(id) == ModuleType::TYPE_PM) + ui->btnAssignTask->setEnabled(false); + else + { + ui->btnAssignTask->setEnabled(true); + } + + if(task.getID()) + lastCurrentID = id; + + ui->btnDelete->setEnabled(false); + ui->btnCheck->setEnabled(false); } + else if(this->type == TypeListTreeAMMFIM::listForTrainee) + { + QTreeWidgetItem *treeItemParent = item->parent(); + if(treeItemParent == nullptr) + {//Выбрана задача + ui->btnCheck->setEnabled(true); + ui->btnDelete->setEnabled(true); - int id = item->text(ColumnsTreeAMM::clmnAMM_ID).toInt(); + int id = item->text(ColumnsTreeAMM::clmnAMM_ID).toInt(); + TaskAmmFim task = taskTreePreparation->getTaskAMMbyID(id); - TaskAmmFim task = taskTreePreparation->getTaskAMMbyID(id); - - if(taskTreePreparation->getTypeModuleAMMbyID(id) == ModuleType::TYPE_PM) + if(task.getID()) + lastCurrentID = id; + } + else + { + ui->btnCheck->setEnabled(false); + ui->btnDelete->setEnabled(false); + } ui->btnAssignTask->setEnabled(false); - else - { - ui->btnAssignTask->setEnabled(true); } - - if(task.getID()) - lastCurrentID = id; + else + lastCurrentID = 0; } void AMMtasksWidget::slot_NeedUpdateUI() @@ -233,7 +257,7 @@ void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id) if(idTraineeSelected == trainee_id) { QList listTask = connectorToServer->getListTasksAMMforTrainee(trainee_id); - signal_prepareAMMListItemsForTrainee(listTask); + emit signal_prepareAMMListItemsForTrainee(listTask); emit signal_countTasksAMMforTraineeChanged(trainee_id, listTask.count()); } diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp index 8495057..2afa32d 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -161,11 +161,10 @@ void FIMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) { ui->btnDelete->setEnabled(false); ui->btnCheck->setEnabled(false); + ui->btnAssignTask->setEnabled(false); return; } - QString code = ""; - QTreeWidgetItem *treeItemParent = item->parent(); if(treeItemParent == nullptr) {//Выбрана задача @@ -185,8 +184,6 @@ void FIMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) lastCurrentID = task.getID(); } - code = task.title; - ui->btnAssignTask->setEnabled(true); ui->btnDelete->setEnabled(true); diff --git a/InstructorsAndTrainees/tasks/tasktreepreparation.cpp b/InstructorsAndTrainees/tasks/tasktreepreparation.cpp index cbeeb33..0cbe523 100644 --- a/InstructorsAndTrainees/tasks/tasktreepreparation.cpp +++ b/InstructorsAndTrainees/tasks/tasktreepreparation.cpp @@ -515,6 +515,26 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QListsetToolTip(0, text); + if(type == TypeListTreeAMMFIM::listForTrainee) + { + for (int j = 0; j < task.listSubProc.count(); j++) + {/*Подпроцедуры*/ + SubProc subProc = task.listSubProc.at(j); + + QTreeWidgetItem* itemSubProc = new QTreeWidgetItem(); + + itemSubProc->setText(ColumnsTreeAMM::clmnAMM_PMorDM, subProc.getTitle()); + + itemSubProc->setIcon(ColumnsTreeAMM::clmnAMM_PMorDM, QIcon(":/resources/icons/link.png")); + itemSubProc->setToolTip(ColumnsTreeAMM::clmnAMM_PMorDM, subProc.getTitle()); + + itemSubProc->setText(ColumnsTreeAMM::clmnAMM_code, subProc.getDmCode()); + + item->addChild(itemSubProc); + } + + } + listItemsAll.append(item); }