Bug fixes and improved handling of event editor.

This commit is contained in:
2019-10-18 22:00:52 +02:00
parent 56477948fc
commit 79d1bbbc46
12 changed files with 183 additions and 44 deletions

View File

@@ -40,24 +40,20 @@ def enemy_edit(enemy_id: int):
form_title="Edit Enemy",
post_url=f"/enemy/{enemy_id}/edit",
)
db = orm.new_session()
enemy = db.query(Enemy).get(enemy_id)
form = forms.EnemyForm()
if request.method == "GET":
db = orm.new_session()
enemy = db.query(Enemy).filter(Enemy.id == enemy_id).first()
form = forms.EnemyForm()
form.season_id.data = enemy.season_id if enemy.season_id else -1
form.name.data = enemy.name
form.is_boss.data = enemy.boss
form.enemy_id.data = enemy_id
model.form_title = f'Edit Enemy "{enemy.name}"'
return render_template("generic_form.html", model=model, form=form)
else:
form = forms.EnemyForm()
if form.validate_on_submit():
db = orm.new_session()
enemy = db.query(Enemy).filter(Enemy.id == enemy_id).first()
if not enemy:
enemy = Enemy()
db.add(enemy)

View File

@@ -86,4 +86,4 @@ def episode_edit(season_id: int, episode_id: int):
if errors:
model.errors = {"Error saving episode": [errors]}
return render_template("generic_form.html", model=model, form=form)
return redirect(url_for("episode_detail", season_id=season_id, episode_id=episode_id))
return redirect(url_for("episode_detail", season_id=season.id, episode_id=episode.id))

View File

@@ -60,6 +60,7 @@ def event_new(s_id: int, ep_id: int):
form = forms.EventForm()
form.episode_id.data = ep_id
form.enemy.choices = choices.enemy_choice_for_season(s_id)
form.player.choices = choices.player_choice_for_episode(episode)
form.event_type.data = EventType.Death.value
Penalty = namedtuple("Penalty", ["penalty_id", "player_id", "player", "drink"])

View File

@@ -26,27 +26,26 @@ def player_edit(player_id: int):
form_title=f"Edit Player",
post_url=f"/player/{player_id}/edit",
)
db = orm.new_session()
player = db.query(Player).filter(Player.id == player_id).first()
form = forms.PlayerForm()
# Edit Existing Player
if request.method == "GET":
db = orm.new_session()
player = db.query(Player).filter(Player.id == player_id).first()
form = forms.PlayerForm()
form.player_id.data = player.id
form.anonymize.data = player.anon
form.real_name.data = player.real_name
form.alias.data = player.alias
form.hex_id.data = player.hex_id
model.form_title = f'Edit Player "{player.name}"'
return render_template("generic_form.html", model=model, form=form)
# Save POSTed data
else:
form = forms.PlayerForm()
if form.validate_on_submit():
db = orm.new_session()
player = db.query(Player).filter(Player.id == player_id).first()
if not player:
player = Player()
db.add(player)
player.populate_from_form(form)
db.commit()
return redirect("/player")