Add fully-functional administration panel for administrators and dispatchers
This commit is contained in:
parent
bf599549ea
commit
ff6901e3a9
22 changed files with 1257 additions and 42 deletions
46
iFacility/viewmodels/professionsviewmodel.cpp
Normal file
46
iFacility/viewmodels/professionsviewmodel.cpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#include "professionsviewmodel.h"
|
||||
|
||||
ProfessionsViewModel::ProfessionsViewModel(QObject *parent) : QStandardItemModel(parent) {
|
||||
|
||||
}
|
||||
|
||||
void ProfessionsViewModel::invalidateData() {
|
||||
beginResetModel();
|
||||
|
||||
clear();
|
||||
QStandardItemModel::setHeaderData(0, Qt::Orientation::Horizontal, "Professions");
|
||||
QStandardItem *rootNode = invisibleRootItem();
|
||||
foreach (auto prof, Database::instance()->professions()) {
|
||||
QStandardItem *profNode = new QStandardItem("Profession: " + prof.title());
|
||||
QStandardItem *profUID = new QStandardItem("PID: " + prof.pID().toString());
|
||||
QStandardItem *currentWorkers = new QStandardItem("Current workers");
|
||||
QStandardItem *availableWorkers = new QStandardItem("Available workers");
|
||||
foreach(auto worker, Database::instance()->getUsersByProfession(prof.pID())) {
|
||||
QStandardItem *workerNode = new QStandardItem(worker->getFullNameShortForm());
|
||||
UserProfession up;
|
||||
foreach (auto uProf, worker->getProfessions()) {
|
||||
if (uProf.getProfession() == prof.pID()) {
|
||||
up = uProf;
|
||||
}
|
||||
}
|
||||
QStandardItem *workerRank = new QStandardItem(tr("%1 rank").arg(up.getRank()));
|
||||
QStandardItem *acqDateNode = new QStandardItem(
|
||||
up.getAcquiredDate().toString(Qt::DateFormat::SystemLocaleShortDate));
|
||||
workerNode->appendRow(workerRank);
|
||||
workerNode->appendRow(acqDateNode);
|
||||
if (worker->getCurrentProfession() == prof.pID()) {
|
||||
currentWorkers->appendRow(workerNode);
|
||||
}
|
||||
else {
|
||||
availableWorkers->appendRow(workerNode);
|
||||
}
|
||||
}
|
||||
|
||||
profNode->appendRow(profUID);
|
||||
profNode->appendRow(currentWorkers);
|
||||
profNode->appendRow(availableWorkers);
|
||||
rootNode->appendRow(profNode);
|
||||
}
|
||||
|
||||
endResetModel();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue