Create death events function.
This commit is contained in:
@@ -146,8 +146,8 @@ def edit_death(app: 'gtk_ui.GtkUi', death: 'models.Death'=None):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
# Parse the inputs
|
# Parse the inputs
|
||||||
death.time = datetime.time(hour_spin.get_value(), min_spin.set_value)
|
death.time = datetime.time(int(hour_spin.get_value()), int(min_spin.get_value()))
|
||||||
death.enemy = util.get_combo_value(app.ui.get_object('edit_death_enemy_combo'), 3)
|
death.enemy = util.get_combo_value(app.ui.get_object('edit_death_enemy_combo'), 4)
|
||||||
death.player = util.get_combo_value(app.ui.get_object('edit_death_player_combo'), 0)
|
death.player = util.get_combo_value(app.ui.get_object('edit_death_player_combo'), 0)
|
||||||
death.info = app.ui.get_object('edit_death_comment_entry').get_text()
|
death.info = app.ui.get_object('edit_death_comment_entry').get_text()
|
||||||
store = app.ui.get_object('player_penalties_store')
|
store = app.ui.get_object('player_penalties_store')
|
||||||
|
|||||||
@@ -77,6 +77,11 @@ class GtkUi:
|
|||||||
self.data_client.send_request('update_drink', drink)
|
self.data_client.send_request('update_drink', drink)
|
||||||
self.full_reload()
|
self.full_reload()
|
||||||
|
|
||||||
|
def save_death(self, death: 'models.Death'):
|
||||||
|
with util.network_operation(self):
|
||||||
|
self.data_client.send_request('save_death', death)
|
||||||
|
self.full_reload()
|
||||||
|
|
||||||
def update_season(self, season: 'models.Season'):
|
def update_season(self, season: 'models.Season'):
|
||||||
with util.network_operation(self):
|
with util.network_operation(self):
|
||||||
self.data_client.send_request('update_season', season)
|
self.data_client.send_request('update_season', season)
|
||||||
|
|||||||
@@ -11,10 +11,9 @@ class DeathHandlers:
|
|||||||
ep_id = self.app.get_selected_episode_id()
|
ep_id = self.app.get_selected_episode_id()
|
||||||
if not ep_id:
|
if not ep_id:
|
||||||
return
|
return
|
||||||
result = dialogs.edit_death(self.app)
|
death = dialogs.edit_death(self.app)
|
||||||
if result == Gtk.ResponseType.OK:
|
if death:
|
||||||
self.app.episodes.valid = False
|
self.app.save_death(death)
|
||||||
self.app.full_reload()
|
|
||||||
|
|
||||||
def on_penalty_drink_changed(self, _, path, text):
|
def on_penalty_drink_changed(self, _, path, text):
|
||||||
self.app.ui.get_object('player_penalties_store')[path][2] = text
|
self.app.ui.get_object('player_penalties_store')[path][2] = text
|
||||||
|
|||||||
@@ -81,7 +81,8 @@ def reload_episode_stats(app: 'gtk_ui.GtkUi'):
|
|||||||
penalties = [x.drink.name for x in death.penalties]
|
penalties = [x.drink.name for x in death.penalties]
|
||||||
penalties = ['{}x {}'.format(number, drink) for drink, number in Counter(penalties).items()]
|
penalties = ['{}x {}'.format(number, drink) for drink, number in Counter(penalties).items()]
|
||||||
penalty_string = ', '.join(penalties)
|
penalty_string = ', '.join(penalties)
|
||||||
store.append([death.id, death.player.name, death.enemy.name, penalty_string])
|
time_string = '{}:{}'.format(death.time.hour, death.time.minute)
|
||||||
|
store.append([death.id, death.player.name, death.enemy.name, penalty_string, time_string])
|
||||||
# Reload victory store for notebook view
|
# Reload victory store for notebook view
|
||||||
store = app.ui.get_object('episode_victories_store')
|
store = app.ui.get_object('episode_victories_store')
|
||||||
store.clear()
|
store.clear()
|
||||||
|
|||||||
@@ -51,6 +51,8 @@
|
|||||||
<column type="gchararray"/>
|
<column type="gchararray"/>
|
||||||
<!-- column-name penalty_name -->
|
<!-- column-name penalty_name -->
|
||||||
<column type="gchararray"/>
|
<column type="gchararray"/>
|
||||||
|
<!-- column-name time -->
|
||||||
|
<column type="gchararray"/>
|
||||||
</columns>
|
</columns>
|
||||||
</object>
|
</object>
|
||||||
<object class="GtkListStore" id="episode_players_store">
|
<object class="GtkListStore" id="episode_players_store">
|
||||||
@@ -987,6 +989,17 @@
|
|||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
<object class="GtkTreeSelection"/>
|
<object class="GtkTreeSelection"/>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkTreeViewColumn">
|
||||||
|
<property name="title" translatable="yes">Time</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCellRendererText"/>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="text">4</attribute>
|
||||||
|
</attributes>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeViewColumn">
|
<object class="GtkTreeViewColumn">
|
||||||
<property name="title" translatable="yes">Player</property>
|
<property name="title" translatable="yes">Player</property>
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ from sql import Episode
|
|||||||
query = Episode.select().where(Episode.name == 'MyName')
|
query = Episode.select().where(Episode.name == 'MyName')
|
||||||
"""
|
"""
|
||||||
import sys
|
import sys
|
||||||
|
import datetime
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from peewee import *
|
from peewee import *
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@@ -70,6 +72,7 @@ class Enemy(Model):
|
|||||||
class Death(Model):
|
class Death(Model):
|
||||||
id = AutoField()
|
id = AutoField()
|
||||||
info = CharField(null=True)
|
info = CharField(null=True)
|
||||||
|
time = TimeField(default=datetime.time(0, 0))
|
||||||
player = ForeignKeyField(Player)
|
player = ForeignKeyField(Player)
|
||||||
enemy = ForeignKeyField(Enemy)
|
enemy = ForeignKeyField(Enemy)
|
||||||
episode = ForeignKeyField(Episode, backref='deaths')
|
episode = ForeignKeyField(Episode, backref='deaths')
|
||||||
|
|||||||
@@ -32,6 +32,16 @@ class WriteFunctions:
|
|||||||
sql.Drink.vol: drink.vol})
|
sql.Drink.vol: drink.vol})
|
||||||
.execute())
|
.execute())
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def save_death(death: 'models.Death'):
|
||||||
|
with sql.db.atomic():
|
||||||
|
created_id = (sql.Death
|
||||||
|
.insert(info=death.info, player=death.player, enemy=death.enemy, episode=death.episode,
|
||||||
|
time=death.time)
|
||||||
|
.execute())
|
||||||
|
for penalty in death.penalties:
|
||||||
|
sql.Penalty.create(death=created_id, size=penalty.size, drink=penalty.drink, player=penalty.player)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def update_season(season: 'models.Season', *_):
|
def update_season(season: 'models.Season', *_):
|
||||||
(sql.Season
|
(sql.Season
|
||||||
|
|||||||
Reference in New Issue
Block a user