source: src/mvc/conference.cpp @ 83f0ba7

qt5
Last change on this file since 83f0ba7 was cec47c6, checked in by kirilma <kirilma@…>, 12 years ago

store path to conference map in database

path stored as additional field in conference table
if it's null or empty, "Show map" button is not shown
if existing database does not have the field, it will be automatically added

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/*
2 * Copyright (C) 2010 Ixonos Plc.
3 *
4 * This file is part of fosdem-schedule.
5 *
6 * fosdem-schedule is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the Free
8 * Software Foundation, either version 2 of the License, or (at your option)
9 * any later version.
10 *
11 * fosdem-schedule is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * fosdem-schedule.  If not, see <http://www.gnu.org/licenses/>.
18 */
19#include "conference.h"
20#include "../sql/sqlengine.h"
21
22QSqlRecord const Conference::sColumns = Conference::toRecord(QList<QSqlField>()
23    << QSqlField("id", QVariant::Int)
24    << QSqlField("title", QVariant::String)
25    << QSqlField("subtitle", QVariant::String)
26    << QSqlField("venue", QVariant::String)
27    << QSqlField("city", QVariant::String)
28    << QSqlField("start", QVariant::DateTime)
29    << QSqlField("end", QVariant::DateTime)
30    << QSqlField("days", QVariant::Int)
31    << QSqlField("day_change", QVariant::Int)
32    << QSqlField("timeslot_duration", QVariant::Int)
33    << QSqlField("active", QVariant::Bool)
34    << QSqlField("url", QVariant::String)
35    << QSqlField("map", QVariant::String)
36    );
37
38QString const Conference::sTableName = QString("conference");
39
40Conference Conference::getById(int id)
41{
42    QSqlQuery query;
43    query.prepare(selectQuery() + "WHERE id = :id");
44    query.bindValue(":id", id);
45    return loadOne(query);
46}
47
48QList<Conference> Conference::getAll()
49{
50    QSqlQuery query;
51    query.prepare(selectQuery());
52    return load(query);
53}
54
55int Conference::activeConference()
56{
57    {
58        QSqlQuery query("SELECT id FROM conference WHERE active = 1");
59        query.exec();
60
61        // TODO: change it so that it will select somw existing ID
62
63        if (query.next()) {
64            return query.record().value("id").toInt();
65        }
66    }
67
68    QSqlQuery query2("SELECT id FROM conference ORDER BY id");
69    if (query2.next()) {
70        return query2.record().value("id").toInt();
71    }
72
73    return -1;
74}
75
76void Conference::deleteConference(int id)
77{
78    SqlEngine::deleteConference(id);
79}
80
Note: See TracBrowser for help on using the repository browser.