reload trx list on adding - currently broken
This commit is contained in:
40
db.py
40
db.py
@ -19,13 +19,14 @@ except sqlite3.Error as error:
|
|||||||
def create_transmissions_table():
|
def create_transmissions_table():
|
||||||
scheme = """
|
scheme = """
|
||||||
CREATE TABLE IF NOT EXISTS transmissions (
|
CREATE TABLE IF NOT EXISTS transmissions (
|
||||||
date TEXT NOT NULL,
|
uid TEXT NOT NULL UNIQUE,
|
||||||
author TEXT NOT NULL,
|
date TEXT,
|
||||||
title TEXT NOT NULL,
|
author TEXT,
|
||||||
transmission_text TEXT NOT NULL,
|
title TEXT,
|
||||||
timeslots TEXT NOT NULL,
|
transmission_text TEXT,
|
||||||
transmission_order INT NOT NULL,
|
timeslots TEXT,
|
||||||
play BOOLEAN NOT NULL
|
transmission_order INT,
|
||||||
|
play BOOLEAN
|
||||||
);
|
);
|
||||||
"""
|
"""
|
||||||
if cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='transmissions';").fetchall() == []:
|
if cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='transmissions';").fetchall() == []:
|
||||||
@ -33,7 +34,8 @@ def create_transmissions_table():
|
|||||||
cursor.execute(scheme)
|
cursor.execute(scheme)
|
||||||
log.info("Successfully created database transmissions")
|
log.info("Successfully created database transmissions")
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
log.critical("Couldn't create transmissions table: ", error)
|
log.critical("Couldn't create transmissions table")
|
||||||
|
log.critical(error)
|
||||||
exit(1)
|
exit(1)
|
||||||
else:
|
else:
|
||||||
log.debug('DB transmissions exists, not creating.')
|
log.debug('DB transmissions exists, not creating.')
|
||||||
@ -41,16 +43,24 @@ def create_transmissions_table():
|
|||||||
def get_transmissions(date=None, timeslot=None):
|
def get_transmissions(date=None, timeslot=None):
|
||||||
return cursor.execute("SELECT * FROM transmissions").fetchall()
|
return cursor.execute("SELECT * FROM transmissions").fetchall()
|
||||||
|
|
||||||
def create_transmission(date, author, title, transmission_text, timeslots, transmission_order, play=True):
|
def add_transmission(uid):
|
||||||
command="""
|
command="INSERT INTO transmissions(uid, play) VALUES(?, 0)"
|
||||||
INSERT INTO transmissions VALUES(?, ?, ?, ?, ?, %d, %d);
|
|
||||||
"""%(transmission_order, (1 if play else 0))
|
|
||||||
try:
|
try:
|
||||||
cursor.execute(command, (date, author, title, transmission_text, timeslots))
|
cursor.execute(command, (uid,))
|
||||||
sqliteConnection.commit()
|
sqliteConnection.commit()
|
||||||
log.debug("Created a transmission with date %s, author %s, timeslots %s"%(date, author, timeslots))
|
log.debug("Created a transmission uid %s"%(uid))
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
log.error("Couldn't create a transmission with date %s, author %s, timeslots %s"%(date, author, bin(timeslots)))
|
log.error("Couldn't create a transmission with uid: %s"%(uid))
|
||||||
|
log.error(error)
|
||||||
|
|
||||||
|
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)
|
||||||
|
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)
|
log.error(error)
|
||||||
|
|
||||||
|
|
||||||
|
62
main.py
62
main.py
@ -4,6 +4,8 @@ import gi
|
|||||||
import config
|
import config
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from random import choice
|
||||||
|
from string import ascii_lowercase, digits
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
@ -63,12 +65,8 @@ class MainWindow(Gtk.Window):
|
|||||||
self.transmission_list = Gtk.ListBox()
|
self.transmission_list = Gtk.ListBox()
|
||||||
self.transmission_list.connect("row-activated", self.on_picked_transmission)
|
self.transmission_list.connect("row-activated", self.on_picked_transmission)
|
||||||
|
|
||||||
transmissions = db.get_transmissions()
|
self.transmissions = None
|
||||||
for trx in transmissions:
|
self.update_transmission_list()
|
||||||
trxID = "%s %s %s" % (trx[0], trx[2], trx[1])
|
|
||||||
label = Gtk.Label()
|
|
||||||
label.set_text("%s" % trxID)
|
|
||||||
self.transmission_list.add(label)
|
|
||||||
|
|
||||||
self.add_transmission_button = Gtk.Button(label="Add transmission")
|
self.add_transmission_button = Gtk.Button(label="Add transmission")
|
||||||
self.add_transmission_button.connect("clicked", self.on_add_transmission)
|
self.add_transmission_button.connect("clicked", self.on_add_transmission)
|
||||||
@ -158,15 +156,7 @@ class MainWindow(Gtk.Window):
|
|||||||
self.clear_save_box.pack_start(self.clear_button, True, True, 0)
|
self.clear_save_box.pack_start(self.clear_button, True, True, 0)
|
||||||
self.clear_save_box.pack_start(self.save_button, True, True, 0)
|
self.clear_save_box.pack_start(self.save_button, True, True, 0)
|
||||||
|
|
||||||
def on_picked_transmission(self, row, user_data):
|
############################## Helper functions #############################
|
||||||
log.debug("row %i activated" % user_data.get_index())
|
|
||||||
|
|
||||||
def on_add_transmission(self, user_data):
|
|
||||||
log.debug("new transmission %s"%(datetime.now().isoformat()))
|
|
||||||
|
|
||||||
def on_delete_transmission(self, user_data):
|
|
||||||
log.debug("transmission %s deleted" % self.transmission_list.get_selected_row().get_index())
|
|
||||||
|
|
||||||
# The save button should be greyed out until all the data is input
|
# The save button should be greyed out until all the data is input
|
||||||
def update_save_button(self, user_data):
|
def update_save_button(self, user_data):
|
||||||
messageBuffer = self.message.get_buffer()
|
messageBuffer = self.message.get_buffer()
|
||||||
@ -191,18 +181,44 @@ class MainWindow(Gtk.Window):
|
|||||||
selected += "%d " % i
|
selected += "%d " % i
|
||||||
return selected
|
return selected
|
||||||
|
|
||||||
|
def update_transmission_list(self):
|
||||||
|
self.transmissions = db.get_transmissions()
|
||||||
|
print(self.transmissions)
|
||||||
|
for child in self.transmission_list.get_children():
|
||||||
|
self.transmission_list.remove(child)
|
||||||
|
for trx in self.transmissions:
|
||||||
|
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)
|
||||||
|
|
||||||
|
############################ Button functions ###############################
|
||||||
|
def on_add_transmission(self, user_data):
|
||||||
|
uid = "".join(choice(ascii_lowercase + digits) for char in range(8))
|
||||||
|
log.debug(uid)
|
||||||
|
db.add_transmission(uid)
|
||||||
|
self.update_transmission_list()
|
||||||
|
|
||||||
|
def on_picked_transmission(self, row, user_data):
|
||||||
|
log.debug("row %i activated" % user_data.get_index())
|
||||||
|
|
||||||
|
def on_delete_transmission(self, user_data):
|
||||||
|
log.debug("transmission %s deleted" % self.transmission_list.get_selected_row().get_index())
|
||||||
|
|
||||||
def on_transmission_saved(self, user_data):
|
def on_transmission_saved(self, user_data):
|
||||||
messageBuffer = self.message.get_buffer()
|
messageBuffer = self.message.get_buffer()
|
||||||
startIter, endIter = messageBuffer.get_bounds()
|
startIter, endIter = messageBuffer.get_bounds()
|
||||||
message = messageBuffer.get_text(startIter, endIter, False)
|
message = messageBuffer.get_text(startIter, endIter, False)
|
||||||
#(date, author, title, transmission_text, timeslots, transmission_order, play)
|
print(message, " saved")
|
||||||
db.create_transmission( self.picked_date,\
|
#(uid, date, author, title, transmission_text, timeslots, transmission_order, play)
|
||||||
self.author.get_buffer().get_text(),\
|
#db.create_transmission( self.picked_date,\
|
||||||
self.title.get_buffer().get_text(),\
|
# self.author.get_buffer().get_text(),\
|
||||||
message,
|
# self.title.get_buffer().get_text(),\
|
||||||
self.get_selected_timeslots(),\
|
# message,
|
||||||
1,\
|
# self.get_selected_timeslots(),\
|
||||||
True)
|
# 1,\
|
||||||
|
# True)
|
||||||
|
|
||||||
|
|
||||||
win = MainWindow()
|
win = MainWindow()
|
||||||
|
Reference in New Issue
Block a user