diff --git a/DataBaseLMS/typeQueryToDB.h b/DataBaseLMS/typeQueryToDB.h index 72b45f0..d534b0c 100644 --- a/DataBaseLMS/typeQueryToDB.h +++ b/DataBaseLMS/typeQueryToDB.h @@ -15,7 +15,9 @@ enum TypeQueryToDB{ TYPE_QUERY_DEL_TRAINEE, TYPE_QUERY_EDIT_TRAINEE, TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE, - TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE + TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE, + TYPE_QUERY_GET_TASKS_AMM_FOR_TRAINEE, + TYPE_QUERY_GET_TASKS_FIM_FOR_TRAINEE }; #endif // TYPEQUERYTODB_H diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp index 7aab0dc..d3e9255 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -49,7 +49,7 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : connect(connectorToServer,&ConnectorToServer::signal_ConnectedToServer,this,&InstructorsAndTraineesWidget::slot_ConnectedToServer); ammTasksWidget = new AMMtasksWidget(connectorToServer, AMMtasksWidget::TypeList::listCommon, this); - fimTasksWidget = new FIMtasksWidget(connectorToServer, FIMtasksWidget::TypeList::listForTrainee, this); + fimTasksWidget = new FIMtasksWidget(connectorToServer, FIMtasksWidget::TypeList::listCommon, this); connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, fimTasksWidget, &FIMtasksWidget::slot_NeedUpdateUI); connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMM, ammTasksWidget, &AMMtasksWidget::slot_NeedUpdateUI); diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index 3af1b3b..1699a20 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -114,6 +114,12 @@ void AMMtasksWidget::slot_traineeSelected(QString login) { qDebug() << "AMMtasksWidget::slot_traineeSelected thread ID " << QThread::currentThreadId(); loginTraineeSelected = login; + + if(type == TypeList::listForTrainee) + { + int trainee_id = connectorToServer->getIdTraineeByLogin(loginTraineeSelected); + connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_GET_TASKS_AMM_FOR_TRAINEE, trainee_id); + } } void AMMtasksWidget::loadTasksAMM() diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp index 5e95f64..1fb4c07 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -223,6 +223,12 @@ void FIMtasksWidget::slot_traineeSelected(QString login) { qDebug() << "FIMtasksWidget::slot_traineeSelected thread ID " << QThread::currentThreadId(); loginTraineeSelected = login; + + if(type == TypeList::listForTrainee) + { + int trainee_id = connectorToServer->getIdTraineeByLogin(loginTraineeSelected); + connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_GET_TASKS_FIM_FOR_TRAINEE, trainee_id); + } } void FIMtasksWidget::loadTasksFIM() diff --git a/InstructorsAndTrainees/trainees/viewertrainees.cpp b/InstructorsAndTrainees/trainees/viewertrainees.cpp index f467191..0624d7d 100644 --- a/InstructorsAndTrainees/trainees/viewertrainees.cpp +++ b/InstructorsAndTrainees/trainees/viewertrainees.cpp @@ -17,6 +17,9 @@ ViewerTrainees::ViewerTrainees(ConnectorToServer* connectorToServer, QWidget *pa ammTasksWidget = new AMMtasksWidget(connectorToServer, AMMtasksWidget::TypeList::listForTrainee, this); fimTasksWidget = new FIMtasksWidget(connectorToServer, FIMtasksWidget::TypeList::listForTrainee, this); + connect(this, &ViewerTrainees::signal_traineeSelected, fimTasksWidget, &FIMtasksWidget::slot_traineeSelected); + connect(this, &ViewerTrainees::signal_traineeSelected, ammTasksWidget, &AMMtasksWidget::slot_traineeSelected); + ui->verticalLayout_2->addWidget(ammTasksWidget); ui->verticalLayout_2->addWidget(fimTasksWidget); @@ -47,6 +50,9 @@ void ViewerTrainees::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column void ViewerTrainees::slot_tabMessengerChanged(QString login) { + if(login == "") + return; + for (int i = 0; i < treeWidget->topLevelItemCount(); i++) {//Проход по группам int countChild = treeWidget->topLevelItem(i)->childCount(); @@ -58,7 +64,12 @@ void ViewerTrainees::slot_tabMessengerChanged(QString login) { treeWidget->setCurrentItem(treeWidget->topLevelItem(i)->child(j)); typeObject = TypeObject::objTrainee; - lastCurrentID = connectorToServer->getIdTraineeByLogin(login); + int newCurrentID = connectorToServer->getIdTraineeByLogin(login); + + if(newCurrentID == lastCurrentID) + return; + + lastCurrentID = newCurrentID; Q_EMIT signal_traineeSelected(login); return; } @@ -106,7 +117,17 @@ void ViewerTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, if(current->childCount() == 0) {//Выбран обучаемый QString login = current->text(ColumnsTreeTrainees::clmn_Login); - Q_EMIT signal_traineeSelected(login); + if(login != "") + { + int newCurrentID = connectorToServer->getIdTraineeByLogin(login); + + if(newCurrentID == lastCurrentID) + return; + + lastCurrentID = newCurrentID; + + Q_EMIT signal_traineeSelected(login); + } } }