Skip to content
This repository has been archived by the owner on May 28, 2022. It is now read-only.

Commit

Permalink
Merge 41c6ce3 into ab0991a
Browse files Browse the repository at this point in the history
  • Loading branch information
lauradichen committed Feb 9, 2014
2 parents ab0991a + 41c6ce3 commit 5d37456
Show file tree
Hide file tree
Showing 12 changed files with 120 additions and 76 deletions.
46 changes: 27 additions & 19 deletions src/freeseer/framework/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@
Event varchar(100),
Room varchar(25),
Date timestamp,
Time timestamp,
StartTime timestamp,
EndTime timestamp,
UNIQUE (Speaker, Title) ON CONFLICT IGNORE)'''

REPORTS_SCHEMA_300 = '''CREATE TABLE IF NOT EXISTS failures
Expand Down Expand Up @@ -150,7 +151,7 @@ def update_30to31():
QtSql.QSqlQuery('ALTER TABLE presentations RENAME TO presentations_old')
self.__create_presentations_table(PRESENTATIONS_SCHEMA_310)
QtSql.QSqlQuery("""INSERT INTO presentations
SELECT Id, Title, Speaker, Description, Level, Event, Room, Time, Time
SELECT Id, Title, Speaker, Description, Level, Event, Room, Time, Time, Time
FROM presentations_old""")
QtSql.QSqlQuery('DROP TABLE presentations_old')

Expand All @@ -171,7 +172,7 @@ def __create_presentations_table(self, schema=PRESENTATIONS_SCHEMA_310):

def __insert_default_talk(self):
"""Inserts the required placeholder talk into the database.At least one talk must exist"""
self.insert_presentation(Presentation("", "", "", "", "", "", "", ""))
self.insert_presentation(Presentation("", "", "", "", "", "", "", "", ""))

def get_talks(self):
"""Gets all the talks from the database including all columns"""
Expand Down Expand Up @@ -204,7 +205,8 @@ def get_presentation(self, talk_id):
event=unicode(result.value(5).toString()),
room=unicode(result.value(6).toString()),
date=unicode(result.value(7).toString()),
time=unicode(result.value(8).toString()))
starttime=unicode(result.value(8).toString()),
endtime=unicode(result.value(9).toString()))
else:
return None

Expand Down Expand Up @@ -233,32 +235,33 @@ def insert_presentation(self, presentation):
# Duplicate time to date field for older RSS / CSV formats
# If date is empty, and time has a full DateTime, split the DateTime to
# both Date and Time
if not presentation.date and presentation.time and len(presentation.time) == 16:
presentation.date, presentation.time = presentation.time[:-6], presentation.time[11:]

if not presentation.date and presentation.starttime and len(presentation.starttime) == 16:
presentation.date, presentation.starttime = presentation.starttime[:-6], presentation.starttime[11:]
QtSql.QSqlQuery(
'''INSERT INTO presentations VALUES (NULL, "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")''' %
'''INSERT INTO presentations VALUES (NULL, "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")''' %
(presentation.title,
presentation.speaker,
presentation.description,
presentation.category,
presentation.event,
presentation.room,
presentation.date,
presentation.time))
log.info("Talk added: %s - %s" % (presentation.speaker, presentation.title))
presentation.starttime,
presentation.endtime))
log.info("Talk added: %s - %s, Time: %s - %s" % (presentation.speaker, presentation.title, presentation.starttime, presentation.endtime))

def update_presentation(self, talk_id, presentation):
"""Updates an existing Presentation in the database."""
QtSql.QSqlQuery(
'''UPDATE presentations SET Title="%s", Speaker="%s", Event="%s", Room="%s", Date="%s", Time="%s"
'''UPDATE presentations SET Title="%s", Speaker="%s", Event="%s", Room="%s", Date="%s", StartTime="%s", EndTime="%s"
WHERE Id="%s"''' %
(presentation.title,
presentation.speaker,
presentation.event,
presentation.room,
presentation.date,
presentation.time,
presentation.starttime,
presentation.endtime,
talk_id))
log.info("Talk %s updated: %s - %s" % (talk_id, presentation.speaker, presentation.title))

Expand Down Expand Up @@ -291,10 +294,10 @@ def get_events_model(self):
return self.eventsModel

def get_dates_from_event_room_model(self, event, room):
"""Gets the Rooms Model.Useful for Qt GUI based Frontends to load the Model into Views."""
"""Gets the Dates Model.Useful for Qt GUI based Frontends to load the Model into Views."""
self.datesModel = QtSql.QSqlQueryModel()
self.datesModel.setQuery(
"SELECT DISTINCT date(Time) FROM presentations WHERE Event='%s' and Room='%s' ORDER BY Date ASC"
"SELECT DISTINCT date FROM presentations WHERE Event='%s' and Room='%s' ORDER BY Date ASC"
% (event, room))
return self.datesModel

Expand Down Expand Up @@ -348,6 +351,7 @@ def add_talks_from_rss(self, feed_url):
presentation["Level"],
presentation["Event"],
presentation["Room"],
presentation["Time"],
presentation["Time"])
self.insert_presentation(talk)

Expand All @@ -371,6 +375,7 @@ def add_talks_from_csv(self, fname):
presentation["Level"],
presentation["Event"],
presentation["Room"],
presentation["Time"],
presentation["Time"])
self.insert_presentation(talk)

Expand All @@ -385,7 +390,8 @@ def export_talks_to_csv(self, fname):
'Event',
'Room',
'Date',
'Time')
'StartTime',
'EndTime')

try:
file = open(fname, 'w')
Expand All @@ -395,15 +401,15 @@ def export_talks_to_csv(self, fname):

result = self.get_talks()
while result.next():
log.debug(unicode(result.value(1).toString()))
writer.writerow({'Title': unicode(result.value(1).toString()),
'Speaker': unicode(result.value(2).toString()),
'Abstract': unicode(result.value(3).toString()),
'Category': unicode(result.value(4).toString()),
'Event': unicode(result.value(5).toString()),
'Room': unicode(result.value(6).toString()),
'Date': unicode(result.value(7).toString()),
'Time': unicode(result.value(8).toString())})
'StartTime': unicode(result.value(8).toString()),
'EndTime': unicode(result.value(9).toString())})
finally:
file.close()

Expand All @@ -415,7 +421,8 @@ def export_reports_to_csv(self, fname):
'Event',
'Room',
'Date',
'Time',
'StartTime',
'EndTime',
'Problem',
'Error')
try:
Expand All @@ -433,7 +440,8 @@ def export_reports_to_csv(self, fname):
'Event': report.presentation.event,
'Room': report.presentation.room,
'Date': report.presentation.date,
'Time': report.presentation.time,
'StartTime': report.presentation.starttime,
'EndTime': report.presentation.endtime,
'Problem': report.failure.indicator,
'Error': report.failure.comment})
finally:
Expand Down
9 changes: 5 additions & 4 deletions src/freeseer/framework/presentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class Presentation(object):
This class is responsible for encapsulate data about presentations
and its database related operations
'''
def __init__(self, title, speaker="", description="", category="", event="Default", room="Default", date="", time=""):
def __init__(self, title, speaker="", description="", category="", event="Default", room="Default", date="", starttime="", endtime=""):
'''
Initialize a presentation instance
'''
Expand All @@ -41,7 +41,8 @@ def __init__(self, title, speaker="", description="", category="", event="Defaul
self.event = event
self.room = room
self.date = date
self.time = time
self.starttime = starttime
self.endtime = endtime


class PresentationFile(Presentation):
Expand All @@ -51,9 +52,9 @@ class PresentationFile(Presentation):
to a file and the metadata that has been loaded from it
'''

def __init__(self, title, speaker="", description="", category="", event="Default", room="Default", date="", time=""):
def __init__(self, title, speaker="", description="", category="", event="Default", room="Default", date="", starttime="", endtime=""):
Presentation.__init__(
self, title, speaker, description, category, event, room, date, time)
self, title, speaker, description, category, event, room, date, starttime, endtime)

self.filename = ""
self.album = ""
Expand Down
3 changes: 2 additions & 1 deletion src/freeseer/framework/rss_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ def build_data_dictionary(self):
presentation["Abstract"] = abstract.strip()
presentation["Level"] = level.strip()
presentation["Status"] = status.strip()
presentation["Time"] = time.strip()
presentation["sTime"] = time.strip()
presentation["eTime"] = time.strip()
presentation["Event"] = event.strip()
presentation["Room"] = room.strip()

Expand Down
2 changes: 2 additions & 0 deletions src/freeseer/frontend/qtcommon/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -6340,9 +6340,11 @@
\x00\x00\x01\x6c\x00\x00\x00\x00\x00\x01\x00\x01\x19\x8a\
"


def qInitResources():
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)


def qCleanupResources():
QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)

Expand Down
12 changes: 8 additions & 4 deletions src/freeseer/frontend/record/ReportDialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,18 @@ def __init__(self, parent=None):
self.roomLabel = QLabel("Room:")
self.roomLabel2 = QLabel()
self.roomLabel2.setFont(boldFont)
self.timeLabel = QLabel("Time:")
self.timeLabel2 = QLabel()
self.timeLabel2.setFont(boldFont)
self.starttimeLabel = QLabel("Start Time:")
self.starttimeLabel2 = QLabel()
self.starttimeLabel2.setFont(boldFont)
self.endtimeLabel = QLabel("End Time:")
self.endtimeLabel2 = QLabel()
self.endtimeLabel2.setFont(boldFont)
self.infoLayout.addRow(self.titleLabel, self.titleLabel2)
self.infoLayout.addRow(self.speakerLabel, self.speakerLabel2)
self.infoLayout.addRow(self.eventLabel, self.eventLabel2)
self.infoLayout.addRow(self.roomLabel, self.roomLabel2)
self.infoLayout.addRow(self.timeLabel, self.timeLabel2)
self.infoLayout.addRow(self.starttimeLabel, self.starttimeLabel2)
self.infoLayout.addRow(self.endtimeLabel, self.endtimeLabel2)

#Report
self.commentLabel = QLabel("Comment")
Expand Down
6 changes: 4 additions & 2 deletions src/freeseer/frontend/record/record.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@ def retranslate(self):
self.reportWidget.speakerLabel.setText(self.app.translate("RecordApp", "Speaker:"))
self.reportWidget.eventLabel.setText(self.app.translate("RecordApp", "Event:"))
self.reportWidget.roomLabel.setText(self.app.translate("RecordApp", "Room:"))
self.reportWidget.timeLabel.setText(self.app.translate("RecordApp", "Time:"))
self.reportWidget.starttimeLabel.setText(self.app.translate("RecordApp", "Start Time:"))
self.reportWidget.endtimeLabel.setText(self.app.translate("RecordApp", "End Time:"))
self.reportWidget.commentLabel.setText(self.app.translate("RecordApp", "Comment"))
self.reportWidget.releaseCheckBox.setText(self.app.translate("RecordApp", "Release Received"))
self.reportWidget.closeButton.setText(self.app.translate("RecordApp", "Close"))
Expand Down Expand Up @@ -492,7 +493,8 @@ def show_report_widget(self):
self.reportWidget.speakerLabel2.setText(p.speaker)
self.reportWidget.eventLabel2.setText(p.event)
self.reportWidget.roomLabel2.setText(p.room)
self.reportWidget.timeLabel2.setText(p.time)
self.reportWidget.starttimeLabel2.setText(p.starttime)
self.reportWidget.endtimeLabel2.setText(p.endtime)

# Get existing report if there is one.
talk_id = self.current_presentation_id()
Expand Down
12 changes: 8 additions & 4 deletions src/freeseer/frontend/reporteditor/ReportEditorWidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,21 @@ def __init__(self, parent=None):
self.roomLabel = QtGui.QLabel("Room :")
self.roomLabel2 = QtGui.QLabel()
self.roomLabel2.setFont(boldFont)
self.timeLabel = QtGui.QLabel("Time :")
self.timeLabel2 = QtGui.QLabel()
self.timeLabel2.setFont(boldFont)
self.starttimeLabel = QtGui.QLabel("Start Time :")
self.starttimeLabel2 = QtGui.QLabel()
self.starttimeLabel2.setFont(boldFont)
self.endtimeLabel = QtGui.QLabel("End Time :")
self.endtimeLabel2 = QtGui.QLabel()
self.endtimeLabel2.setFont(boldFont)

self.infoLayout.addRow(self.titleLabel, self.titleLabel2)
self.infoLayout.addRow(self.speakerLabel, self.speakerLabel2)
self.infoLayout.addRow(self.descriptionLabel, self.descriptionLabel2)
self.infoLayout.addRow(self.levelLabel, self.levelLabel2)
self.infoLayout.addRow(self.eventLabel, self.eventLabel2)
self.infoLayout.addRow(self.roomLabel, self.roomLabel2)
self.infoLayout.addRow(self.timeLabel, self.timeLabel2)
self.infoLayout.addRow(self.starttimeLabel, self.starttimeLabel2)
self.infoLayout.addRow(self.endtimeLabel, self.endtimeLabel2)

if __name__ == "__main__":
import sys
Expand Down
16 changes: 10 additions & 6 deletions src/freeseer/frontend/reporteditor/reporteditor.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,8 @@ def retranslate(self):
self.editorWidget.levelLabel.setText(self.app.translate("ReportEditorApp", "Level:"))
self.editorWidget.eventLabel.setText(self.app.translate("ReportEditorApp", "Event:"))
self.editorWidget.roomLabel.setText(self.app.translate("ReportEditorApp", "Room:"))
self.editorWidget.timeLabel.setText(self.app.translate("ReportEditorApp", "Time:"))
self.editorWidget.starttimeLabel.setText(self.app.translate("ReportEditorApp", "Start Time:"))
self.editorWidget.endtimeLabel.setText(self.app.translate("ReportEditorApp", "End Time:"))
# --- End EditorWidget

def load_failures_model(self):
Expand All @@ -162,15 +163,16 @@ def hide_add_talk_widget(self):

def add_talk(self):
date = self.addTalkWidget.dateEdit.date()
time = self.addTalkWidget.timeEdit.time()
datetime = QDateTime(date, time)
starttime = self.addTalkWidget.starttimeEdit.time()
datetime = QDateTime(date, starttime) # original "time" is now "starttime"
presentation = Presentation(unicode(self.addTalkWidget.titleLineEdit.text()),
unicode(self.addTalkWidget.presenterLineEdit.text()),
"", # description
"", # level
unicode(self.addTalkWidget.eventLineEdit.text()),
unicode(self.addTalkWidget.roomLineEdit.text()),
unicode(datetime.toString()))
unicode(datetime.toString()),
unicode(self.addTalkWidget.endtimeEdit.text()))

# Do not add talks if they are empty strings
if (len(presentation.title) == 0):
Expand Down Expand Up @@ -234,15 +236,17 @@ def updatePresentationInfo(self, talkId):
self.editorWidget.levelLabel2.setText(p.level)
self.editorWidget.eventLabel2.setText(p.event)
self.editorWidget.roomLabel2.setText(p.room)
self.editorWidget.timeLabel2.setText(p.time)
self.editorWidget.starttimeLabel2.setText(p.starttime)
self.editorWidget.endtimeLabel2.setText(p.endtime)
else:
self.editorWidget.titleLabel2.setText("Talk not found")
self.editorWidget.speakerLabel2.setText("Talk not found")
self.editorWidget.descriptionLabel2.setText("Talk not found")
self.editorWidget.levelLabel2.setText("Talk not found")
self.editorWidget.eventLabel2.setText("Talk not found")
self.editorWidget.roomLabel2.setText("Talk not found")
self.editorWidget.timeLabel2.setText("Talk not found")
self.editorWidget.starttimeLabel2.setText("Talk not found")
self.editorWidget.endtimeLabel2.setText("Talk not found")

def export_reports_to_csv(self):
fname = QFileDialog.getSaveFileName(self, self.selectFileString, "", "*.csv")
Expand Down
19 changes: 13 additions & 6 deletions src/freeseer/frontend/talkeditor/AddTalkWidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,20 @@ def __init__(self, parent=None):

self.dateEdit.setCalendarPopup(True)

# Time
# Start Time
current_time = QTime()
self.timeLabel = QLabel("Time")
self.timeEdit = QTimeEdit()
self.timeEdit.setTime(current_time.currentTime())
self.timeLabel.setBuddy(self.dateEdit)
self.addTalkLayout.addRow(self.timeLabel, self.timeEdit)
self.starttimeLabel = QLabel("Start Time")
self.starttimeEdit = QTimeEdit()
self.starttimeEdit.setTime(current_time.currentTime())
self.starttimeLabel.setBuddy(self.dateEdit)
self.addTalkLayout.addRow(self.starttimeLabel, self.starttimeEdit)

# End Time
self.endtimeLabel = QLabel("End Time")
self.endtimeEdit = QTimeEdit()
self.endtimeEdit.setTime(current_time.currentTime())
self.endtimeLabel.setBuddy(self.dateEdit)
self.addTalkLayout.addRow(self.endtimeLabel, self.endtimeEdit)

# Buttons
addIcon = QIcon.fromTheme("list-add")
Expand Down
Loading

0 comments on commit 5d37456

Please sign in to comment.