Browse Source

Startegická: Zobrazení a editace konfigurace

master
Jiří Kalvoda 2 years ago
parent
commit
fbf85454b5
  1. 30
      server/bin/control_game
  2. 4
      server/hra/web/pages.py

30
server/bin/control_game

@ -13,6 +13,7 @@ import sys
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("game_id") parser.add_argument("game_id")
parser.add_argument("--step", action="store_true") parser.add_argument("--step", action="store_true")
parser.add_argument("--born-per-round", nargs="+", type=int)
parser.add_argument("--restore", action="store_true") parser.add_argument("--restore", action="store_true")
parser.add_argument("--set-step-mode", type=str) parser.add_argument("--set-step-mode", type=str)
parser.add_argument("--set-step-s", type=int) parser.add_argument("--set-step-s", type=int)
@ -26,16 +27,6 @@ game_id = args.game_id
game = ses.query(db.Game).filter_by(game_id=game_id).one_or_none() game = ses.query(db.Game).filter_by(game_id=game_id).one_or_none()
if args.set_step_mode:
game.step_mode = db.StepMode(args.set_step_mode)
ses.commit()
if args.set_step_s:
game.step_every_s = db.StepMode(args.set_step_s)
ses.commit()
if args.restore:
lib.game_restore_broken(args.game_id)
if args.step:
lib.game_step(args.game_id)
if args.autosteps: if args.autosteps:
while True: while True:
def sleep(timeout=1): def sleep(timeout=1):
@ -67,3 +58,22 @@ if args.autosteps:
step_in = game.step_every_s - diff step_in = game.step_every_s - diff
print(f"Step in {step_in:.2f} s (every {game.step_every_s})") print(f"Step in {step_in:.2f} s (every {game.step_every_s})")
sleep(step_in) sleep(step_in)
else:
game.lock()
if args.born_per_round:
print(args.born_per_round)
c = game.get_configuration()
c["born_per_round"] = args.born_per_round
game.configuration = db.new_big_data(c)
ses.commit()
print(game.get_configuration())
if args.set_step_mode:
game.step_mode = db.StepMode(args.set_step_mode)
ses.commit()
if args.set_step_s:
game.step_every_s = db.StepMode(args.set_step_s)
ses.commit()
if args.restore:
lib.game_restore_broken(args.game_id)
if args.step:
lib.game_step(args.game_id)

4
server/hra/web/pages.py

@ -10,6 +10,7 @@ import werkzeug.exceptions
import wtforms import wtforms
from wtforms.fields import EmailField from wtforms.fields import EmailField
from wtforms.widgets import NumberInput from wtforms.widgets import NumberInput
import pprint
import hra.config as config import hra.config as config
import hra.web.html as html import hra.web.html as html
@ -268,6 +269,9 @@ def web_game(game_id):
with b.form(method="POST", _class="btn-group", action=app.url_for(web_game_step.__name__, game_id=game_id)): with b.form(method="POST", _class="btn-group", action=app.url_for(web_game_step.__name__, game_id=game_id)):
b.button(_class="btn btn-primary", type="submit", name="su", value="yes")("Krok") b.button(_class="btn btn-primary", type="submit", name="su", value="yes")("Krok")
if g.org:
b.h3("Aktuální konfigurace")
b.p().pre(pprint.pformat(game.get_configuration()))
return b.print_file() return b.print_file()
@app.route("/game/<int:game_id>/step", methods=['POST']) @app.route("/game/<int:game_id>/step", methods=['POST'])

Loading…
Cancel
Save