diff --git a/dsst/dsst_gtk3/gtk_ui.py b/dsst/dsst_gtk3/gtk_ui.py index 25c9dff..5f09263 100644 --- a/dsst/dsst_gtk3/gtk_ui.py +++ b/dsst/dsst_gtk3/gtk_ui.py @@ -72,6 +72,11 @@ class GtkUi: self.data_client.send_request('update_player', player) self.full_reload() + def update_drink(self, drink: 'models.Drink'): + with util.network_operation(self): + self.data_client.send_request('update_drink', drink) + 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 2c431b1..15738a1 100644 --- a/dsst/dsst_gtk3/handlers/base_data_handlers.py +++ b/dsst/dsst_gtk3/handlers/base_data_handlers.py @@ -28,20 +28,18 @@ class BaseDataHandlers: def do_add_drink(self, entry): if entry.get_text(): - sql.Drink.create(name=entry.get_text(), vol=0) + drink = models.Drink({'name': entry.get_text(), 'vol': 0.00}) + self.app.update_drink(drink) entry.set_text('') - self.app.full_reload() def on_drink_name_edited(self, _, index, value): row = self.app.ui.get_object('drink_store')[index] - # sql.Drink.update(name=value)\ - # .where(sql.Drink.id == row[0])\ - # .execute() - self.app.full_reload() + drink = [d for d in self.app.drinks.data if d.id == row[0]][0] + drink.name = value + self.app.update_drink(drink) def on_drink_vol_edited(self, _, index, value): row = self.app.ui.get_object('drink_store')[index] - # sql.Drink.update(vol=value) \ - # .where(sql.Drink.id == row[0]) \ - # .execute() - self.app.full_reload() \ No newline at end of file + drink = [d for d in self.app.drinks.data if d.id == row[0]][0] + drink.vol = value + self.app.update_drink(drink) \ No newline at end of file diff --git a/dsst/dsst_gtk3/resources/glade/window.glade b/dsst/dsst_gtk3/resources/glade/window.glade index aede1f1..23f1034 100644 --- a/dsst/dsst_gtk3/resources/glade/window.glade +++ b/dsst/dsst_gtk3/resources/glade/window.glade @@ -2246,6 +2246,7 @@ Name + True True diff --git a/dsst/dsst_server/func_write.py b/dsst/dsst_server/func_write.py index e1b12fd..7de237b 100644 --- a/dsst/dsst_server/func_write.py +++ b/dsst/dsst_server/func_write.py @@ -24,6 +24,14 @@ class WriteFunctions: sql.Player.hex_id: player.hex_id}) .execute()) + @staticmethod + def update_drink(drink: 'models.Drink', *_): + (sql.Drink + .insert(id=drink.id, name=drink.name, vol=drink.vol) + .on_conflict(update={sql.Drink.name: drink.name, + sql.Drink.vol: drink.vol}) + .execute()) + @staticmethod def update_season(season: 'models.Season', *_): (sql.Season