diff --git a/dsst/dsst_gtk3/gtk_ui.py b/dsst/dsst_gtk3/gtk_ui.py index a54070a..25c9dff 100644 --- a/dsst/dsst_gtk3/gtk_ui.py +++ b/dsst/dsst_gtk3/gtk_ui.py @@ -67,6 +67,11 @@ class GtkUi: self.data_client.send_request('update_enemy', enemy) self.full_reload() + def update_player(self, player: 'models.Player'): + with util.network_operation(self): + self.data_client.send_request('update_player', player) + self.full_reload() + def update_season(self, season: 'models.Season'): with util.network_operation(self): self.data_client.send_request('update_season', season) diff --git a/dsst/dsst_gtk3/handlers/base_data_handlers.py b/dsst/dsst_gtk3/handlers/base_data_handlers.py index eade0e0..2c431b1 100644 --- a/dsst/dsst_gtk3/handlers/base_data_handlers.py +++ b/dsst/dsst_gtk3/handlers/base_data_handlers.py @@ -1,4 +1,5 @@ from dsst_gtk3 import dialogs, gtk_ui +from common import models class BaseDataHandlers: @@ -8,23 +9,22 @@ class BaseDataHandlers: def do_add_player(self, entry): if entry.get_text(): - # sql.Player.create(name=entry.get_text()) + self.app.update_player(models.Player({'name': entry.get_text()})) entry.set_text('') - self.app.full_reload() def on_player_name_edited(self, _, index, value): row = self.app.ui.get_object('all_players_store')[index] - # sql.Player.update(name=value)\ - # .where(sql.Player.id == row[0])\ - # .execute() - self.app.full_reload() + player = models.Player({'id': row[0], + 'name': value, + 'hex_id': row[2]}) + self.app.update_player(player) def on_player_hex_edited(self, _, index, value): row = self.app.ui.get_object('all_players_store')[index] - # sql.Player.update(hex_id=value)\ - # .where(sql.Player.id == row[0])\ - # .execute() - self.app.full_reload() + player = models.Player({'id': row[0], + 'name': row[1], + 'hex_id': value}) + self.app.update_player(player) def do_add_drink(self, entry): if entry.get_text(): diff --git a/dsst/dsst_server/func_write.py b/dsst/dsst_server/func_write.py index 925f52d..e1b12fd 100644 --- a/dsst/dsst_server/func_write.py +++ b/dsst/dsst_server/func_write.py @@ -8,7 +8,7 @@ class WriteFunctions: return 'Season created.' @staticmethod - def update_enemy(enemy: 'models.Enemy'): + def update_enemy(enemy: 'models.Enemy', *_): (sql.Enemy .insert(id=enemy.id, boss=enemy.boss, name=enemy.name, season=enemy.season) .on_conflict(update={sql.Enemy.name: enemy.name, @@ -16,6 +16,14 @@ class WriteFunctions: sql.Enemy.season: enemy.season}) .execute()) + @staticmethod + def update_player(player: 'models.Player', *_): + (sql.Player + .insert(id=player.id, name=player.name, hex_id=player.hex_id) + .on_conflict(update={sql.Player.name: player.name, + sql.Player.hex_id: player.hex_id}) + .execute()) + @staticmethod def update_season(season: 'models.Season', *_): (sql.Season