def index(): form = InputForm() if form.validate_on_submit(): attacker, defender = units_from_form(form) options = options_from_form(form) outcomes = calc.calculate(attacker, defender, options, test=False) defaults = form checkboxes = defaultdict(lambda: "") for opt in options.keys(): checkboxes[opt] = "checked" if options[opt] else "" hidden = defaultdict(lambda: False) for opt in options.keys(): if "hide" in opt: if "att_" in opt and not options["att_faction"].lower().split( "-")[0] in opt: hidden[opt] = True if "def_" in opt and not options["def_faction"].lower().split( "-")[0] in opt: hidden[opt] = True boxes = html_generator.make_boxes(checkboxes, hidden) return render_template('index.html', outcomes=outcomes, form=form, defaults=defaults, checkboxes=checkboxes, boxes=boxes) else: print("in else") flash_errors(form) outcomes = [0, 0, 0] defaults = defaultdict(lambda: {"data": "0"}) checkboxes = defaultdict(lambda: "") checkboxes["att_riskdirecthit"] = "checked" checkboxes["def_riskdirecthit"] = "checked" hidden = defaultdict(lambda: False) for opt in options_list(): if "hide" in opt: hidden[opt] = True boxes = html_generator.make_boxes(checkboxes, hidden) return render_template('index.html', outcomes=outcomes, form=form, defaults=defaults, checkboxes=checkboxes, boxes=boxes)
import os import sys sys.path.insert(1, os.path.join(sys.path[0], '../../..')) import app.calculator.calculator as calc from app import testing_helpers attacker, defender, options, tol = testing_helpers.defaults() # target source: http://alphamou.se/ti4calc/ target = [11, 44, 44] # target percentages; [tie, attacker, defender] print("1 Carrier vs 1 Carrier") # Units attacker["carrier"] = 1 defender["carrier"] = 1 # Factions # Ground Combat options["ground_combat"] = False # Options outcomes = calc.calculate(attacker, defender, options) testing_helpers.evaluate(outcomes, target, tol)
def index(): form = InputForm() if form.validate_on_submit(): # Get inputs from form attacker, defender = units_from_form(form) options = options_from_form(form) try: outcomes = calc.calculate(attacker, defender, options, test=False) except: error_print(attacker, defender, options) flash("Sorry, something went wrong in the calculation :(") outcomes = [0, 0, 0] traceback.print_exc() # Determine which checkboxes should remain checked checkboxes = defaultdict(lambda: "") for opt in options.keys(): checkboxes[opt] = "checked" if options[opt] else "" # Determine which options should be hidden hidden = defaultdict(lambda: False) for opt in options.keys(): if "hide" in opt: if "att_" in opt and not options["att_faction"].lower().split( "-")[0] in opt: hidden[opt] = True if "def_" in opt and not options["def_faction"].lower().split( "-")[0] in opt: hidden[opt] = True boxes = html_generator.make_boxes(checkboxes, hidden) # Remember numbers that were filled in defaults = form return render_template('index.html', outcomes=outcomes, form=form, defaults=defaults, checkboxes=checkboxes, boxes=boxes) else: flash_errors(form) outcomes = [0, 0, 0] defaults = defaultdict(lambda: {"data": "0"}) checkboxes = defaultdict(lambda: "") checkboxes["att_riskdirecthit"] = "checked" checkboxes["def_riskdirecthit"] = "checked" hidden = defaultdict(lambda: False) for opt in options_list(): if "hide" in opt: hidden[opt] = True boxes = html_generator.make_boxes(checkboxes, hidden) return render_template('index.html', outcomes=outcomes, form=form, defaults=defaults, checkboxes=checkboxes, boxes=boxes)