diff --git a/db.py b/db.py index 87934d4..667b02a 100755 --- a/db.py +++ b/db.py @@ -66,10 +66,27 @@ def delete_transmission(uid): def edit_transmission(uid, date, author, title, transmission_text, timeslots, transmission_order, play): command="UPDATE transmissions set date=?, author=?, title=?, transmission_text=?, timeslots=?, transmission_order=?, play=? WHERE uid=?" try: - cursor.execute(command, date, author, title, transmission_text, timeslots, transmission_order, play, uid) + cursor.execute(command, (date, author, title, transmission_text, timeslots, transmission_order, play, uid)) sqliteConnection.commit() log.debug("Updated a transmission with uid %s (date %s, author %s)"%(uid, date, author)) except sqlite3.Error as error: log.error("Couldn't create a transmission with uid %s (date %s, author %s)"%uid, (date, author)) log.error(error) +def get_transmission_data(uid): + data = cursor.execute("SELECT * FROM transmissions WHERE uid=?", (uid,)).fetchall() + if len(data) > 1: + log.critical("More than one record has the UID %s. Inspect the database manually!" % uid) + exit(2) + data = data[0] + return_data = { + "uid": data[0], + "date": data[1], + "author": data[2], + "title": data[3], + "message": data[4], + "timeslots": data[5], + "transmission_order": data[6], + "play": data[7] + } + return return_data diff --git a/main.py b/main.py index a1016c6..6cc2294 100755 --- a/main.py +++ b/main.py @@ -65,7 +65,7 @@ class MainWindow(Gtk.Window): self.transmission_list = Gtk.ListBox() self.transmission_list.connect("row-activated", self.on_picked_transmission) - self.transmissions = None + self.transmissions = [] self.update_transmission_list() self.add_transmission_button = Gtk.Button(label="Add transmission") @@ -186,12 +186,12 @@ class MainWindow(Gtk.Window): print(self.transmissions) for child in self.transmission_list.get_children(): self.transmission_list.remove(child) - for trx in self.transmissions: + for i in range(len(self.transmissions)): + trx = self.transmissions[i] trxID = "%s %s %s" % (trx[0], trx[1], trx[3]) - print(trxID) - label = Gtk.Label() - label.set_text("%s" % trxID) - self.transmission_list.insert(label, -1) + self.transmission_list.insert(Gtk.Label(label=trxID), -1) + self.transmission_list.show_all() + ############################ Button functions ############################### def on_add_transmission(self, user_data): @@ -209,20 +209,28 @@ class MainWindow(Gtk.Window): def on_picked_transmission(self, row, user_data): log.debug("row %i activated" % user_data.get_index()) + uid = self.transmissions[self.transmission_list.get_selected_row().get_index()][0] + trxData = db.get_transmission_data(uid) + self.author.set_text(trxData["author"]) + self.title.set_text(trxData["title"]) + self.message.get_buffer().set_text(trxData["message"]) + year, month, date = trxData["date"].split("-") def on_transmission_saved(self, user_data): + uid = self.transmissions[self.transmission_list.get_selected_row().get_index()][0] + log.debug("saving transmission %s" % uid) messageBuffer = self.message.get_buffer() startIter, endIter = messageBuffer.get_bounds() message = messageBuffer.get_text(startIter, endIter, False) - print(message, " saved") - #(uid, date, author, title, transmission_text, timeslots, transmission_order, play) - #db.create_transmission( self.picked_date,\ - # self.author.get_buffer().get_text(),\ - # self.title.get_buffer().get_text(),\ - # message, - # self.get_selected_timeslots(),\ - # 1,\ - # True) + db.edit_transmission(uid, + self.picked_date,\ + self.author.get_buffer().get_text(),\ + self.title.get_buffer().get_text(),\ + message, + self.get_selected_timeslots(),\ + 1,\ + True) + self.update_transmission_list() win = MainWindow()