]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/mvc/conference.cpp
Bump copyright years.
[toast/confclerk.git] / src / mvc / conference.cpp
index 17c4a9091293e9af63ed03de1d2edacf67435169..e57692a94d74becaed5564f5014d36f7e4ebf158 100644 (file)
@@ -1,4 +1,24 @@
+/*
+ * Copyright (C) 2010 Ixonos Plc.
+ * Copyright (C) 2011-2024 Philipp Spitzer, gregor herrmann, Stefan Stahl
+ *
+ * This file is part of ConfClerk.
+ *
+ * ConfClerk is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation, either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * ConfClerk is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
+ */
 #include "conference.h"
+#include "../sql/sqlengine.h"
 
 QSqlRecord const Conference::sColumns = Conference::toRecord(QList<QSqlField>()
     << QSqlField("id", QVariant::Int)
@@ -8,10 +28,13 @@ QSqlRecord const Conference::sColumns = Conference::toRecord(QList<QSqlField>()
     << QSqlField("city", QVariant::String)
     << QSqlField("start", QVariant::DateTime)
     << QSqlField("end", QVariant::DateTime)
-    << QSqlField("days", QVariant::Int)
     << QSqlField("day_change", QVariant::Int)
     << QSqlField("timeslot_duration", QVariant::Int)
-    << QSqlField("active", QVariant::Bool));
+    << QSqlField("utc_offset", QVariant::Int)
+    << QSqlField("display_time_shift", QVariant::Int)
+    << QSqlField("active", QVariant::Bool)
+    << QSqlField("url", QVariant::String)
+    );
 
 QString const Conference::sTableName = QString("conference");
 
@@ -30,18 +53,13 @@ QList<Conference> Conference::getAll()
     return load(query);
 }
 
-int Conference::activeConference()
-{
-    QSqlQuery query("SELECT id FROM conference WHERE active = 1");
-    query.exec();
+int Conference::activeConference() {
+    QSqlQuery query("SELECT id FROM conference ORDER BY active DESC, id LIMIT 1");
+    if (!query.exec() || !query.first()) return -1;
+    return query.record().value("id").toInt();
+}
 
-    QList<int> activeConfs;
-    while(query.next())
-        activeConfs.append(query.record().value("id").toInt());
 
-    if(activeConfs.count()==0) // no active DB
-        return 1;
-    else // even if there are more active confs, the first from the list is confidered active
-        return activeConfs[0];
+QTime Conference::shiftTime(const QTime& value) const {
+    return value.addSecs(displayTimeShift() * 60);
 }
-