From 4d248bd72fb46a5d22058855523a587967125e14 Mon Sep 17 00:00:00 2001 From: kenia Date: Thu, 28 Sep 2023 23:41:30 +0200 Subject: [PATCH] Fix defect in join table, add get leg count from class definition --- quickshow/src/appclioptions.cpp | 3 +-- quickshow/src/appclioptions.h | 1 - quickshow/src/model.cpp | 16 +++++++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/quickshow/src/appclioptions.cpp b/quickshow/src/appclioptions.cpp index d8de4171f..e21e42c3d 100644 --- a/quickshow/src/appclioptions.cpp +++ b/quickshow/src/appclioptions.cpp @@ -10,8 +10,7 @@ AppCliOptions::AppCliOptions(QObject *parent) addOption("application.fontScale").setType(QMetaType::Int).setNames("--font-scale").setDefaultValue(100).setComment("font scale in %"); addOption("event.name").setType(QMetaType::QString).setNames("-e", "--event"); addOption("event.stage").setType(QMetaType::Int).setNames("-n", "--stage").setComment("If not set, the current stage number is loaded from database."); - addOption("event.legNum").setType(QMetaType::Int).setNames("-l", "--leg-num").setComment("Set leg numbers for relays. Default: 3").setDefaultValue(3); - addOption("event.type").setType(QMetaType::QString).setNames("-t", "--type").setComment("Type of event [relay | individual]. Default: 'individual'").setDefaultValue("individual"); + addOption("event.type").setType(QMetaType::QString).setNames("-t", "--type").setComment("Type of event [relay | individual].").setDefaultValue("individual"); addOption("event.classesLike").setType(QMetaType::QString).setNames("--classes-like").setComment("SQL LIKE expression to filter classes to show, for ex. --classes-like \"H%\""); addOption("event.classesNotLike").setType(QMetaType::QString).setNames("--classes-not-like").setComment("SQL LIKE expression to filter classes not to show, for ex. --not-classes-like \"HDR\""); addOption("event.classesIn").setType(QMetaType::QString).setNames("--classes-in").setComment("list to filter classes to show, for ex. --classes-in \"(\'HDR\', \'H21A\')\""); diff --git a/quickshow/src/appclioptions.h b/quickshow/src/appclioptions.h index fa5875bfe..2700a2b0b 100644 --- a/quickshow/src/appclioptions.h +++ b/quickshow/src/appclioptions.h @@ -19,7 +19,6 @@ class AppCliOptions : public qf::core::utils::ConfigCLIOptions CLIOPTION_GETTER_SETTER2(int, "application.fontScale", f, setF, ontScale) CLIOPTION_GETTER_SETTER2(QString, "event.name", e, setE, ventName) CLIOPTION_GETTER_SETTER2(int, "event.stage", s, setS, tage) - CLIOPTION_GETTER_SETTER2(int, "event.legNum", l, setL, egNum) CLIOPTION_GETTER_SETTER2(QString, "event.type", t, setT, ype) CLIOPTION_GETTER_SETTER2(QString, "event.classesLike", c, setC, lassesLike) CLIOPTION_GETTER_SETTER2(QString, "event.classesNotLike", c, setC, lassesNotLike) diff --git a/quickshow/src/model.cpp b/quickshow/src/model.cpp index fa9e2533e..31fecd9e7 100644 --- a/quickshow/src/model.cpp +++ b/quickshow/src/model.cpp @@ -83,13 +83,20 @@ bool Model::addCategoryToStorage() Application *app = Application::instance(); int cat_id_to_load = m_categoriesToProceed.takeFirst().toInt(); if (app->cliOptions()->type() == QLatin1String("relay")) { - int leg_num_from_cli = app->cliOptions()->legNum(); - for (int leg_num = 1; leg_num <= leg_num_from_cli; leg_num++) { + qf::core::sql::QueryBuilder qb; + QString qs = "select cd.relaylegcount as leg_count from classdefs as cd where cd.classid = {{class_id}} and cd.stageid = {{stage_id}}"; + qfInfo() << "Get leg count for category:" << qs; + qs.replace("{{stage_id}}", QString::number(app->cliOptions()->stage())); + qs.replace("{{class_id}}", QString::number(cat_id_to_load)); + qf::core::sql::Query q = app->execSql(qs); + q.next(); + int leg_count_from_class = q.value("leg_count").toInt(); + for (int leg_num = 1; leg_num <= leg_count_from_class; leg_num++) { QVariantMap category_map; { qf::core::sql::QueryBuilder qb; QString qs = "select c.name || '-' || '{{leg_num}}' as name, 0 as length, 0 as climb from classes as c where c.id = {{class_id}}"; - qfInfo() << "vytazeni kategorie:" << qs; + qfInfo() << "Get category:" << qs; qs.replace("{{stage_id}}", QString::number(app->cliOptions()->stage())); qs.replace("{{class_id}}", QString::number(cat_id_to_load)); qs.replace("{{leg_num}}", QString::number(leg_num)); @@ -112,7 +119,7 @@ bool Model::addCategoryToStorage() qf::core::sql::QueryBuilder qb; if(app->cliOptions()->profile() == QLatin1String("results")) { qs = "SELECT c.registration, c.lastName, c.firstName, r.* FROM competitors as c join runs as r on r.competitorId = c.id " - "join test_pbm_stafety.relays as rel on r.relayid = rel.id " + "join relays as rel on r.relayid = rel.id " "where r.isRunning and r.finishTimeMs>0 and rel.classId = {{class_id}} and r.leg = {{leg_num}} " "order by r.notCompeting, r.disqualified, r.finishtimeMs"; if(first_run) @@ -224,4 +231,3 @@ bool Model::addCategoryToStorage() first_run = false; return true; } -