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

@@ -1,9 +1,9 @@
#include <QHeaderView>
#include "traineesview.h"
TraineesView::TraineesView(DataBaseTrainees* db, TypeView type, bool adminMode, QWidget *parent):
TraineesView::TraineesView(DataBaseTrainees* dbTrainees, TypeView type, bool adminMode, QWidget *parent):
CommonView(type, adminMode, parent),
dbTrainees(db)
dbTrainees(dbTrainees)
{
}
@@ -21,32 +21,52 @@ void TraineesView::preparationTreeWidget(QTreeWidget *tree)
treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
treeWidget->setColumnWidth(0, 80);
treeWidget->setColumnWidth(1, 250);
treeWidget->setColumnWidth(2, 100);
treeWidget->setColumnWidth(3, 100);
treeWidget->setColumnWidth(4, 130);
treeWidget->setColumnWidth(5, 130);
treeWidget->setColumnWidth(6, 130);
treeWidget->setColumnWidth(7, 80);
treeWidget->setColumnWidth(8, 80);
treeWidget->setColumnWidth(9, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_ID, 80);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Trainee, 250);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Login, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Password, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Class, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Computer, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_IP_address, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Archived, 80);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Logged, 80);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Tasks, 200);
if(typeView == TypeView::onlyView)
{//onlyView
treeWidget->setColumnHidden(2, true);
treeWidget->setColumnHidden(3, true);
treeWidget->setColumnHidden(7, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true);
//treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Login, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Password, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true);
archiveVisible = false;
notLoggedInVisible = true;
}
else
{//control
treeWidget->setColumnHidden(7, true);
if(adminMode)
{
archiveVisible = true;
notLoggedInVisible = true;
}
else
{
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true);
}
}
}
void TraineesView::loadTraineesFromDB()
{
dbTrainees->LoadTraineesGroupsPSQL();
QList <Group> listGroups;
QList <Trainee> listTrainees;
dbTrainees->transactionBegin();
listGroups = dbTrainees->getListGroups();
listTrainees = dbTrainees->getListTrainees();
dbTrainees->transactionEnd();
if(treeWidget == nullptr)
return;
@@ -54,52 +74,56 @@ void TraineesView::loadTraineesFromDB()
//Обновление дерева
treeWidget->clear();
for(Group group : dbTrainees->getListGroups())
for(Group group : listGroups)
{
//Группа
QTreeWidgetItem *ItemGroup = new QTreeWidgetItem(treeWidget);
ItemGroup->setText(0, QString::number(group.getID()));
ItemGroup->setText(1, group.getName());
ItemGroup->setIcon(1, QIcon(QStringLiteral(":/icons/group.png")));
ItemGroup->setText(ColumnsTreeTrainees::clmn_ID, QString::number(group.getID()));
ItemGroup->setText(ColumnsTreeTrainees::clmn_Trainee, group.getName());
ItemGroup->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/icons/group.png")));
setItemColor(ItemGroup, QColor(170, 190, 170));
//Обучаемые
QList<Trainee> listTrainees;
listTrainees = dbTrainees->getListTraineesInGroup(group.getID());
for(Trainee trainee : listTrainees)
{
if(trainee.getGroup().getID() != group.getID())
continue;
QTreeWidgetItem *ItemTrainee = new QTreeWidgetItem();
ItemTrainee->setText(0, QString::number(trainee.getID()));
ItemTrainee->setText(1, trainee.getName());
ItemTrainee->setText(2, trainee.getLogin());
ItemTrainee->setText(3, trainee.getPassword());
ItemTrainee->setText(4, trainee.getComputer().getClassroom().getName());
ItemTrainee->setText(5, trainee.getComputer().getName());
ItemTrainee->setText(6, trainee.getComputer().getIpAddress());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_ID, QString::number(trainee.getID()));
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Trainee, trainee.getName());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Login, trainee.getLogin());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, trainee.getPassword());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Class, trainee.getComputer().getClassroom().getName());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Computer, trainee.getComputer().getName());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_IP_address, trainee.getComputer().getIpAddress());
//Сокрытие пароля
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, QStringLiteral("******"));
if(trainee.getArchived())
{//Архивный
ItemTrainee->setText(7, tr("yes"));
ItemTrainee->setIcon(1, QIcon(QStringLiteral(":/icons/traineeArchive.png")));
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("yes"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/icons/traineeArchive.png")));
setItemColorArchive(ItemTrainee);
}
else
{//Не Архивный
ItemTrainee->setText(7, tr("no"));
ItemTrainee->setIcon(1, QIcon(QStringLiteral(":/icons/trainee.png")));
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("no"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/icons/trainee.png")));
setItemColorNoArchive(ItemTrainee);
}
if(trainee.getLoggedIn())
{//Залогинен
ItemTrainee->setText(8, tr("yes"));
ItemTrainee->setIcon(8, QIcon(QStringLiteral(":/icons/circleGreen.png")));
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("yes"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGreen.png")));
}
else
{//Не Залогинен
ItemTrainee->setText(8, tr("no"));
ItemTrainee->setIcon(8, QIcon(QStringLiteral(":/icons/circleGray.png")));
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("no"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGray.png")));
}
QString tasksStr;
@@ -107,7 +131,7 @@ void TraineesView::loadTraineesFromDB()
{
tasksStr += task.getName() + QStringLiteral("; ");
}
ItemTrainee->setText(9, tasksStr);
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Tasks, tasksStr);
ItemGroup->addChild(ItemTrainee);
@@ -124,7 +148,7 @@ void TraineesView::loadTraineesFromDB()
}
treeWidget->setSortingEnabled(true);
treeWidget->sortItems(1, Qt::SortOrder::AscendingOrder);
treeWidget->sortItems(ColumnsTreeTrainees::clmn_Trainee, Qt::SortOrder::AscendingOrder);
treeWidget->expandAll();
if(typeView == TypeView::control)
@@ -137,6 +161,6 @@ void TraineesView::loadTraineesFromDB()
void TraineesView::reSetHeadTreeWidget()
{
QStringList listHeaders = {tr("ID"), tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("Tasks")};
QStringList listHeaders = {tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("Tasks"), tr("ID")};
treeWidget->setHeaderLabels(listHeaders);
}