/*
* Copyright (C) 2010 Ixonos Plc.
+ * Copyright (C) 2011-2024 Philipp Spitzer, gregor herrmann, Stefan Stahl
*
- * This file is part of fosdem-schedule.
+ * This file is part of ConfClerk.
*
- * fosdem-schedule is free software: you can redistribute it and/or modify it
+ * 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.
*
- * fosdem-schedule is distributed in the hope that it will be useful, but
+ * 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
- * fosdem-schedule. If not, see <http://www.gnu.org/licenses/>.
+ * 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)
<< 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("utc_offset", QVariant::Int)
+ << QSqlField("display_time_shift", QVariant::Int)
<< QSqlField("active", QVariant::Bool)
- << QSqlField("url", QVariant::String));
+ << QSqlField("url", QVariant::String)
+ );
QString const Conference::sTableName = QString("conference");
return load(query);
}
-int Conference::activeConference()
-{
- QSqlQuery query("SELECT id FROM conference WHERE active = 1");
- query.exec();
-
- QList<int> activeConfs;
- while(query.next())
- activeConfs.append(query.record().value("id").toInt());
+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();
+}
- qDebug() << __PRETTY_FUNCTION__
- << "activeConfs.count()" << activeConfs.count()
- ;
- 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);
}
-