Add Basic Database functions.

This commit is contained in:
luxick
2018-02-22 21:27:07 +01:00
parent 0d14a64482
commit b0ed96611d
14 changed files with 1374 additions and 389 deletions

View File

View File

@@ -0,0 +1,24 @@
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from dsst_gtk3.handlers.season_and_episodes import SeasonAndEpisodesHandlers
from dsst_gtk3.handlers.players import PlayerHandlers
class Handlers(SeasonAndEpisodesHandlers, PlayerHandlers):
""" Class containing all signal handlers for the GTK GUI """
def __init__(self, app):
""" Initialize handler class
:param app: reference to the main application object
"""
self.app = app
# Call constructors of superclasses
SeasonAndEpisodesHandlers.__init__(self, app)
PlayerHandlers.__init__(self, app)
@staticmethod
def do_delete_event(*args):
""" Signal will be sent when app should close
:param args: Arguments to the delete event
"""
Gtk.main_quit()

View File

@@ -0,0 +1,27 @@
from dsst_gtk3.gtk_ui import DSSTGtkUi
from dsst_gtk3 import dialogs, util
from dsst_sql import sql
class PlayerHandlers:
def __init__(self, app: DSSTGtkUi):
self.app = app
def do_manage_players(self, *_):
result = dialogs.show_manage_players_dialog(self.app.ui, 'Manage Players')
def do_add_player(self, entry):
if entry.get_text():
sql.Player.create(name=entry.get_text())
entry.set_text('')
self.app.reload_view_data()
def do_add_player_to_episode(self, combo):
player_id = util.Util.get_combo_value(combo, 0)
if player_id:
self.app.ui.get_object('add_player_combo_box').set_active(-1)
player = sql.Player.get(sql.Player.id == player_id)
store = self.app.ui.get_object('episode_players_store')
if not any(row[0] == player_id for row in store):
store.append([player_id, player.name, player.hex_id])

View File

@@ -0,0 +1,26 @@
from dsst_gtk3.gtk_ui import DSSTGtkUi
from dsst_gtk3.util import Util
from dsst_sql import sql
from dsst_gtk3 import dialogs
class SeasonAndEpisodesHandlers:
def __init__(self, app: DSSTGtkUi):
self.app = app
def do_add_season(self, *_):
name = dialogs.enter_string_dialog(self.app.ui, 'Name for the new Season')
if name:
sql.Season.create(game_name=name, number=1)
self.app.reload_view_data()
def do_season_selected(self, *_):
combo = self.app.ui.get_object('season_combo_box')
season_id = Util.get_combo_value(combo, 0)
if not season_id: return
season = sql.Season.get(sql.Season.id == season_id)
for episode in season.episodes:
print(episode)
def do_add_episode(self, *_):
episode = dialogs.show_episode_dialog(self.app.ui, 'Create new Episode')