after interface 13.11.2024

This commit is contained in:
krivoshein
2024-11-13 17:16:33 +03:00
parent 61aaac2b1c
commit 2ed1eac956
80 changed files with 1734 additions and 1379 deletions

View File

@@ -4,8 +4,8 @@
#include "dialogeditgroup.h"
#include "dialogedittrainee.h"
EditorTrainees::EditorTrainees(DataBaseTrainees* db, bool adminMode, QWidget *parent) :
TraineesView(db, CommonView::TypeView::control, adminMode, parent),
EditorTrainees::EditorTrainees(InterfaceDataBaseLMS* dbLMS, bool adminMode, QWidget *parent) :
TraineesView(dbLMS, CommonView::TypeView::control, adminMode, parent),
ui(new Ui::EditorTrainees)
{
ui->setupUi((QDialog*)this);
@@ -25,10 +25,50 @@ EditorTrainees::~EditorTrainees()
void EditorTrainees::on_btnNewGroup_clicked()
{
if(int id = dbTrainees->newGroup())
if(int id_group = dbLMS->newGroup())
{
loadTraineesFromDB();
setCurrentGroup(id);
setCurrentGroup(id_group);
DialogEditGroup dlg(this);
Group group = dbLMS->getGroup(id_group);
if(group.getID() == 0)
return;
dlg.setGroup(group);
while (true)
{
switch( dlg.exec() )
{
case QDialog::Accepted:
{
Group group_edit = dlg.getGroup();
if(int id_edit = dbLMS->editGroup(group_edit))
{//Отредактировано
loadTraineesFromDB();
setCurrentGroup(id_edit);
return;
}
else
{
dlg.setGroup(group_edit);
continue;
}
}
case QDialog::Rejected:
dbLMS->delGroup(id_group);
loadTraineesFromDB();
return;
default:
dbLMS->delGroup(id_group);
loadTraineesFromDB();
return;
}
}
}
}
@@ -43,14 +83,14 @@ void EditorTrainees::on_btnDeleteGroup_clicked()
{//Выбрана группа
int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(dbTrainees->getListTraineesInGroup(id_group).count() > 0)
if(dbLMS->getListTraineesInGroup(id_group).count() > 0)
{
QMessageBox::critical(this, tr("Editing error!"), tr("The group is not empty.\nIt is not possible to delete a non-empty group."));
return;
}
else
{//Пустая группа
if(int id = dbTrainees->deleteGroup(id_group))
if(int id = dbLMS->delGroup(id_group))
{//Удалено
loadTraineesFromDB();
}
@@ -73,14 +113,54 @@ void EditorTrainees::on_btnNewTrainee_clicked()
if(treeItemParent == nullptr)
{//Выбрана группа. Можно добавить Обучаемого
int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
if(int id = dbTrainees->newTrainee(id_group))
if(int id_trainee = dbLMS->newTrainee(id_group))
{
loadTraineesFromDB();
setCurrentGroup(id_group);
}
else
{
//Ошибка добавления
DialogEditTrainee dlg(this);
Trainee trainee = dbLMS->getTrainee(id_trainee);
if(trainee.getID() == 0)
return;
dlg.setTrainee(trainee);
while (true)
{
switch( dlg.exec() )
{
case QDialog::Accepted:
{
Trainee trainee_edit = dlg.getTrainee();
if(int id_edit = dbLMS->editTrainee(trainee_edit))
{//Отредактировано
loadTraineesFromDB();
//setCurrentTrainee(id_edit);
setCurrentGroup(id_group);
return;
}
else
{
dlg.setTrainee(trainee_edit);
continue;
}
break;
}
case QDialog::Rejected:
dbLMS->delTrainee(id_trainee);
loadTraineesFromDB();
setCurrentGroup(id_group);
return;
default:
dbLMS->delTrainee(id_trainee);
loadTraineesFromDB();
setCurrentGroup(id_group);
return;
}
}
}
}
}
@@ -101,7 +181,7 @@ void EditorTrainees::on_btnDeleteTrainee_clicked()
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
{
if(int id = dbTrainees->deleteTrainee(id_trainee))
if(int id = dbLMS->delTrainee(id_trainee))
{//Удалено
loadTraineesFromDB();
setCurrentGroup(id_group);
@@ -127,14 +207,14 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked()
int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt();
Trainee trainee = dbTrainees->getTrainee(id_trainee);
Trainee trainee = dbLMS->getTrainee(id_trainee);
if(trainee.getID() == 0)
return;
if(trainee.getArchived())
{//Архивный
trainee.setArchived(false);
if(int id = dbTrainees->editTrainee(trainee))
if(int id = dbLMS->editTrainee(trainee))
{//Отредактировано
loadTraineesFromDB();
setCurrentTrainee(id);
@@ -147,7 +227,7 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked()
else
{//Не Архивный
trainee.setArchived(true);
if(int id = dbTrainees->editTrainee(trainee))
if(int id = dbLMS->editTrainee(trainee))
{//Отредактировано
if(!archiveVisible)
ui->btnArchive->click();
@@ -179,7 +259,7 @@ void EditorTrainees::on_btnEdit_clicked()
DialogEditGroup dlg(this);
Group group = dbTrainees->getGroup(id_group);
Group group = dbLMS->getGroup(id_group);
if(group.getID() == 0)
return;
@@ -193,7 +273,7 @@ void EditorTrainees::on_btnEdit_clicked()
{
Group group_edit = dlg.getGroup();
if(int id = dbTrainees->editGroup(group_edit))
if(int id = dbLMS->editGroup(group_edit))
{//Отредактировано
loadTraineesFromDB();
setCurrentGroup(id);
@@ -223,7 +303,7 @@ void EditorTrainees::on_btnEdit_clicked()
DialogEditTrainee dlg(this);
Trainee trainee = dbTrainees->getTrainee(id_trainee);
Trainee trainee = dbLMS->getTrainee(id_trainee);
if(trainee.getID() == 0)
return;
@@ -237,7 +317,7 @@ void EditorTrainees::on_btnEdit_clicked()
{
Trainee trainee_edit = dlg.getTrainee();
if(int id = dbTrainees->editTrainee(trainee_edit))
if(int id = dbLMS->editTrainee(trainee_edit))
{//Отредактировано
loadTraineesFromDB();
setCurrentTrainee(id);
@@ -285,7 +365,7 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
{
ui->btnNewGroup->setEnabled(true);
if(dbTrainees->getListTraineesInGroup(id_group).count() > 0)
if(dbLMS->getListTraineesInGroup(id_group).count() > 0)
{//Группа не пуста
ui->btnDeleteGroup->setEnabled(false);
}
@@ -317,7 +397,7 @@ void EditorTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
ui->btnDeleteGroup->setEnabled(false);
ui->btnNewTrainee->setEnabled(false);
if(dbTrainees->isArchived(id_trainee))
if(dbLMS->isArchivedTrainee(id_trainee))
{//Архивный
ui->btnDeleteTrainee->setEnabled(true);