before interface 13.11.2024

This commit is contained in:
krivoshein
2024-11-13 09:54:35 +03:00
parent f4ca58ce91
commit 61aaac2b1c
62 changed files with 1233 additions and 1047 deletions

View File

@@ -13,6 +13,9 @@ EditorTrainees::EditorTrainees(DataBaseTrainees* db, bool adminMode, QWidget *pa
preparationTreeWidget(ui->treeWidget);
setNotLoggedInVisible(true);
loadTraineesFromDB();
if(adminMode)
ui->btnArchive->click();
}
EditorTrainees::~EditorTrainees()
@@ -22,9 +25,11 @@ EditorTrainees::~EditorTrainees()
void EditorTrainees::on_btnNewGroup_clicked()
{
int id = dbTrainees->newGroup();
loadTraineesFromDB();
setCurrentGroup(id);
if(int id = dbTrainees->newGroup())
{
loadTraineesFromDB();
setCurrentGroup(id);
}
}
void EditorTrainees::on_btnDeleteGroup_clicked()
@@ -36,7 +41,7 @@ void EditorTrainees::on_btnDeleteGroup_clicked()
QTreeWidgetItem *treeItemParent = treeItemCurrent->parent();
if(treeItemParent == nullptr)
{//Выбрана группа
int id_group = treeItemCurrent->text(0).toInt();
int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(dbTrainees->getListTraineesInGroup(id_group).count() > 0)
{
@@ -67,7 +72,7 @@ void EditorTrainees::on_btnNewTrainee_clicked()
QTreeWidgetItem *treeItemParent = treeItemCurrent->parent();
if(treeItemParent == nullptr)
{//Выбрана группа. Можно добавить Обучаемого
int id_group = treeItemCurrent->text(0).toInt();
int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(int id = dbTrainees->newTrainee(id_group))
{
loadTraineesFromDB();
@@ -91,8 +96,8 @@ void EditorTrainees::on_btnDeleteTrainee_clicked()
if(treeItemParent != nullptr)
{//Выбран обучаемый
int id_trainee = treeItemCurrent->text(0).toInt();
int id_group = treeItemParent->text(0).toInt();
int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
int id_group = treeItemParent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
{
@@ -120,9 +125,11 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked()
if(treeItemParent != nullptr)
{//Выбран обучаемый
int id_trainee = treeItemCurrent->text(0).toInt();
int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
Trainee trainee = dbTrainees->getTrainee(id_trainee);
if(trainee.getID() == 0)
return;
if(trainee.getArchived())
{//Архивный
@@ -168,61 +175,89 @@ void EditorTrainees::on_btnEdit_clicked()
if(treeItemParent == nullptr)
{//Выбрана группа
int id_group = treeItemCurrent->text(0).toInt();
int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
DialogEditGroup dlg(this);
dlg.setGroup(dbTrainees->getGroup(id_group));
switch( dlg.exec() )
Group group = dbTrainees->getGroup(id_group);
if(group.getID() == 0)
return;
dlg.setGroup(group);
while (true)
{
case QDialog::Accepted:
{
if(int id = dbTrainees->editGroup(dlg.getGroup()))
{//Отредактировано
loadTraineesFromDB();
setCurrentGroup(id);
}
else
switch( dlg.exec() )
{
//Ошибка редактирования
}
case QDialog::Accepted:
{
Group group_edit = dlg.getGroup();
break;
}
case QDialog::Rejected:
break;
default:
break;
if(int id = dbTrainees->editGroup(group_edit))
{//Отредактировано
loadTraineesFromDB();
setCurrentGroup(id);
return;
}
else
{
dlg.setGroup(group_edit);
continue;
}
break;
}
case QDialog::Rejected:
return;
break;
default:
return;
break;
}
}
}
else
{//Выбран обучаемый
int id_trainee = treeItemCurrent->text(0).toInt();
int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
DialogEditTrainee dlg(this);
dlg.setTrainee(dbTrainees->getTrainee(id_trainee));
switch( dlg.exec() )
Trainee trainee = dbTrainees->getTrainee(id_trainee);
if(trainee.getID() == 0)
return;
dlg.setTrainee(trainee);
while (true)
{
case QDialog::Accepted:
switch( dlg.exec() )
{
if(int id = dbTrainees->editTrainee(dlg.getTrainee()))
{//Отредактировано
loadTraineesFromDB();
setCurrentTrainee(id);
}
else
case QDialog::Accepted:
{
//Ошибка редактирования
}
Trainee trainee_edit = dlg.getTrainee();
if(int id = dbTrainees->editTrainee(trainee_edit))
{//Отредактировано
loadTraineesFromDB();
setCurrentTrainee(id);
return;
}
else
{
dlg.setTrainee(trainee_edit);
continue;
}
break;
}
case QDialog::Rejected:
return;
break;
default:
return;
break;
}
case QDialog::Rejected:
break;
default:
break;
}
}
}
@@ -244,7 +279,7 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
QTreeWidgetItem *treeItemParent = current->parent();
if(treeItemParent == nullptr)
{//Выбрана группа
int id_group = current->text(0).toInt();
int id_group = current->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(adminMode)
{
@@ -276,7 +311,7 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
}
else
{//Выбран обучаемый
int id_trainee = current->text(0).toInt();
int id_trainee = current->text(ColumnsTreeTrainees::clmn_ID).toInt();
ui->btnNewGroup->setEnabled(false);
ui->btnDeleteGroup->setEnabled(false);
@@ -310,7 +345,7 @@ void EditorTrainees::setCurrentGroup(int id)
{
QTreeWidgetItem * item = treeWidget->topLevelItem(i);
if(item != nullptr)
if(item->text(0).toInt() == id)
if(item->text(ColumnsTreeTrainees::clmn_ID).toInt() == id)
{
treeWidget->setCurrentItem(item);
break;
@@ -329,7 +364,7 @@ void EditorTrainees::setCurrentTrainee(int id)
{
QTreeWidgetItem * itemChild = item->child(j);
if(itemChild != nullptr)
if(itemChild->text(0).toInt() == id)
if(itemChild->text(ColumnsTreeTrainees::clmn_ID).toInt() == id)
{
treeWidget->setCurrentItem(itemChild);
break;