implement deleting a conference
[toast/confclerk.git] / src / mvc / conference.cpp
index b08a248..6c00f5e 100644 (file)
@@ -17,6 +17,7 @@
  * fosdem-schedule.  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)
@@ -29,7 +30,8 @@ QSqlRecord const Conference::sColumns = Conference::toRecord(QList<QSqlField>()
     << QSqlField("days", QVariant::Int)
     << QSqlField("day_change", QVariant::Int)
     << QSqlField("timeslot_duration", QVariant::Int)
-    << QSqlField("active", QVariant::Bool));
+    << QSqlField("active", QVariant::Bool)
+    << QSqlField("url", QVariant::String));
 
 QString const Conference::sTableName = QString("conference");
 
@@ -50,16 +52,27 @@ QList<Conference> Conference::getAll()
 
 int Conference::activeConference()
 {
-    QSqlQuery query("SELECT id FROM conference WHERE active = 1");
-    query.exec();
+    {
+        QSqlQuery query("SELECT id FROM conference WHERE active = 1");
+        query.exec();
 
-    QList<int> activeConfs;
-    while(query.next())
-        activeConfs.append(query.record().value("id").toInt());
+        // TODO: change it so that it will select somw existing ID
 
-    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];
+        if (query.next()) {
+            return query.record().value("id").toInt();
+        }
+    }
+
+    QSqlQuery query2("SELECT id FROM conference ORDER BY id");
+    if (query2.next()) {
+        return query2.record().value("id").toInt();
+    }
+
+    return -1;
+}
+
+void Conference::deleteConference(int id)
+{
+    SqlEngine::deleteConference(id);
 }