void tst_QDjango::databaseThreaded() { if (QDjango::database().databaseName() == QLatin1String(":memory:")) #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) QSKIP("Threaded test cannot work with in-memory SQLite database."); #else QSKIP("Threaded test cannot work with in-memory SQLite database.", SkipAll); #endif QDjangoQuerySet<Author> qs; QCOMPARE(qs.count(), 0); QEventLoop loop; Worker worker; QThread workerThread; // fire up worker worker.moveToThread(&workerThread); connect(&worker, SIGNAL(done()), &loop, SLOT(quit())); workerThread.start(); QTimer::singleShot(0, &worker, SLOT(doIt())); loop.exec(); // check database QCOMPARE(qs.count(), 1); // stop thread workerThread.quit(); workerThread.wait(); }
/** Perform filtering on foreign keys. */ void tst_QDjangoModel::filterRelated() { // load fixtures { Item *item1 = new Item; item1->setName("first"); QCOMPARE(item1->save(), true); Item *item2 = new Item; item2->setName("second"); QCOMPARE(item2->save(), true); Owner owner; owner.setName("owner"); owner.setItem1(item1); owner.setItem2(item2); QCOMPARE(owner.save(), true); } // perform filtering QDjangoQuerySet<Owner> owners; QDjangoQuerySet<Owner> qs = owners.filter( QDjangoWhere("item1__name", QDjangoWhere::Equals, "first")); CHECKWHERE(qs.where(), QLatin1String("T0.\"name\" = ?"), QVariantList() << "first"); QCOMPARE(qs.count(), 1); QCOMPARE(qs.size(), 1); Owner *owner = qs.at(0); QVERIFY(owner != 0); QCOMPARE(owner->name(), QLatin1String("owner")); delete owner; }
void Explorer::listUpdate(){ QDjangoQuerySet <Diagnostico> idDiag ,nomeD, num01, num02, idDom, definicao, cDefin, fRelac; QList<qint32> idList; QList <int> idDomList; QStringList nameList, num01List, num02List, defList, cDList, fRelList; //! Fills QLists whit content from Diagnostico ORM for(int i = 0; i < nomeD.count() && idDiag.count() && num01.count(); ++i){ idList << idDiag.at(i)->idDiag(); num01List << num01.at(i)->num01(); nameList << nomeD.at(i)->nomeDiag(); num02List << num02.at(i)->num02(); idDomList << idDom.at(i)->idDom(); defList << definicao.at(i)->definicao(); cDList << cDefin.at(i)->cDefin(); fRelList << fRelac.at(i)->fRelac(); } //! Fills the GUI TableWidget by column from Diagnos DATA for(int i = 0; i < nameList.count(); ++i){ ui->tW_showDiagnosReadyOnly->setRowCount(nameList.count()); //ui->tW_showDiagnosReadyOnly->setItem(i, 0, new QTableWidgetItem(idList.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 0, new QTableWidgetItem(num01List.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 1, new QTableWidgetItem(nameList.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 2, new QTableWidgetItem(idDomList.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 3, new QTableWidgetItem(num02List.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 4, new QTableWidgetItem(defList.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 5, new QTableWidgetItem(cDList.at(i))); ui->tW_showDiagnosReadyOnly->setItem(i, 6, new QTableWidgetItem(fRelList.at(i))); } }
void Patient::filtred_Patients(){ ui->lw_filtredPatients->clear(); QDjangoQuerySet <Paciente> pat; if (!ui->le_patFILTER->text().isEmpty()) pat = pat.filter(QDjangoWhere("nameP", QDjangoWhere::Contains, ui->le_patFILTER->text())); else if(!ui->le_prontSearch->text().isEmpty()) pat = pat.filter(QDjangoWhere("pront", QDjangoWhere::Contains, ui->le_prontSearch->text())); for (int i = 0; i < pat.count(); ++i){ QListWidgetItem * itemP = new QListWidgetItem(pat.at(i)->nameP(), ui->lw_filtredPatients); itemP->setData(Qt::UserRole, pat.at(i)->pront()); } }
//! When a Patient is clicked those informations is showed in a QTableWidget void Patient::on_lw_filtredPatients_itemClicked(QListWidgetItem* item) { QDjangoQuerySet<Paciente> ptPront; ptPront = ptPront.filter(QDjangoWhere("nameP", QDjangoWhere::Equals, ui->lw_filtredPatients->currentItem()->text())); for(int i = 0; i < ptPront.count(); ++i){ QString t; QSqlQuery s; s.prepare("SELECT pront FROM sae.paciente WHERE nameP = :name"); s.bindValue(":name", ui->lw_filtredPatients->currentItem()->text()); s.exec(); while (s.next()){ t = s.value(0).toString(); } ui->tblW_selectedPatient->setItem(0, 0, new QTableWidgetItem(t)); ui->tblW_selectedPatient->setItem(0, 1, new QTableWidgetItem(ptPront.at(i)->rg())); ui->tblW_selectedPatient->setItem(0, 2, new QTableWidgetItem(ptPront.at(i)->dBornP().toString("dd / MM / yyyy"))); ui->tblW_selectedPatient->setItem(0, 3, new QTableWidgetItem(ptPront.at(i)->mailP())); ui->tblW_selectedPatient->setItem(0, 4, new QTableWidgetItem(ptPront.at(i)->ethn())); } }
PromissionModel::PromissionModel() { QDjango::setDatabase(*Core::Base::instance().sessionDatabase()); QDjango::registerModel<Promission>(); QDjango::createTables(); // Создаем роль по-умолчанию QDjangoQuerySet<Role> roles; roles = roles.filter(QDjangoWhere("name", QDjangoWhere::Equals, "Admin")); if (roles.count()==0) { messageLibrary msg; msg.createInfoMessage("Информация", "Роль администратора отсутствует, разрешения по-умолчанию создать не могу!"); } else { addPromission( tr("Возможность смотреть документацию приложения"), "CAN_SEE_APP_DOCS", "CONST", roles.at(0) ); addPromission( tr("Возможность смотреть настройки приложения"), "CAN_SEE_APP_SETTINGS", "CONST", roles.at(0) ); addPromission( tr("Возможность смотреть меню плагинов приложения"), "CAN_SEE_MANAGERS_MENU", "CONST", roles.at(0) ); addPromission( tr("Возможность управлять настройками плагинов"), "CAN_SEE_MANAGERS_SETTINGS", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с панелями плагинов"), "CAN_SEE_MANAGERS_TOOLBAR", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с элементами управления плагина на уровне 0"), "CAN_SEE_MANAGER_CONROLS_LEVEL_0", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с элементами управления плагина на уровне 1"), "CAN_SEE_MANAGER_CONROLS_LEVEL_1", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с элементами управления плагина на уровне 2"), "CAN_SEE_MANAGER_CONROLS_LEVEL_2", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с элементами управления плагина на уровне 0"), "CAN_SEE_MODULES_CONROLS_LEVEL_0", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с элементами управления плагина на уровне 1"), "CAN_SEE_MODULES_CONROLS_LEVEL_1", "CONST", roles.at(0) ); addPromission( tr("Возможность работать с элементами управления плагина на уровне 2"), "CAN_SEE_MODULES_CONROLS_LEVEL_2", "CONST", roles.at(0) ); addPromission( tr("Возможность смотреть меню модулей приложения"), "CAN_SEE_MODULES_MENU", "CONST", roles.at(0) ); addPromission( tr("Возможность смотреть настройки модулей приложения"), "CAN_SEE_MODULES_SETTINGS", "CONST", roles.at(0) ); addPromission( tr("Возможность смотреть панели модулей приложения"), "CAN_SEE_MODULES_TOOLBAR", "CONST", roles.at(0) ); addPromission( tr("Возможность работать в отладочном режиме"), "DEBUG_MODE", "CONST", roles.at(0) ); } }
void rsmFilter(QDjangoQuerySet<T1> &qs, const QXmppResultSetQuery &rsmQuery, QList<T2> &results, QXmppResultSetReply &rsmReply) { // if count was requested, stop here if (rsmQuery.max() == 0) { rsmReply.setCount(qs.count()); return; } rsmReply.setCount(qs.size()); T1 result; if (rsmQuery.before().isNull()) { // page forwards bool rsmAfterReached = rsmQuery.after().isEmpty(); for (int i = 0; i < qs.size(); ++i) { if (rsmQuery.max() >= 0 && results.size() >= rsmQuery.max()) break; // fetch from database if (!qs.at(i, &result)) break; const QString uid = result.pk().toString(); // if an "after" was specified, check it was reached if (!rsmAfterReached) { if (uid == rsmQuery.after()) rsmAfterReached = true; continue; } if (results.isEmpty()) { rsmReply.setFirst(uid); rsmReply.setIndex(i); } rsmReply.setLast(uid); results << result; } } else { // page backwards bool rsmBeforeReached = rsmQuery.before().isEmpty(); for (int i = qs.size() - 1; i >= 0; --i) { if (rsmQuery.max() >= 0 && results.size() >= rsmQuery.max()) break; // fetch from database if (!qs.at(i, &result)) break; const QString uid = result.pk().toString(); // if a "before" was specified, check it was reached if (!rsmBeforeReached) { if (uid == rsmQuery.before()) rsmBeforeReached = true; continue; } if (results.isEmpty()) rsmReply.setLast(uid); rsmReply.setFirst(uid); rsmReply.setIndex(i); results.prepend(result); } } }