Beispiel #1
0
def change_contact_info():
    team = cube.get_team_properties(app)
    cube.update_team(
        app, session["username"], {
            "teamId": session["username"],
            "teamName": team.get("teamName", ""),
            "headquarters": team.get("headquarters", ""),
            "email": request.form["email"],
            "primaryPhone": request.form["primaryPhone"],
            "secondaryPhone": request.form["secondaryPhone"],
        })
    if request.referrer:
        return redirect(request.referrer)
    return redirect(url_for("index"))
Beispiel #2
0
def puzzle(puzzle_id):
    if (app.config["SITE_MODE"]
            if app.config["SITE_MODE"] else 'live') not in ['live']:
        abort(403)

    if not cube.is_puzzle_unlocked(app, puzzle_id):
        abort(403)

    if request.method == "POST":
        if "submission" in request.form:
            cube.create_submission(app, puzzle_id, request.form["submission"])
            return redirect(url_for('puzzle', puzzle_id=puzzle_id))
        elif "hintrequest" in request.form:
            cube.create_hint_request(app, puzzle_id,
                                     request.form["hintrequest"],
                                     request.form["hinttype"])
            return redirect(url_for('puzzle', puzzle_id=puzzle_id))
        elif "interactionrequest" in request.form:
            cube.create_interaction_request(app, puzzle_id,
                                            request.form["interactionrequest"])
            return redirect(url_for('puzzle', puzzle_id=puzzle_id))
        else:
            abort(400)

    submissions = cube.get_submissions(app, puzzle_id)
    puzzle = cube.get_puzzle(app, puzzle_id)
    visibility = cube.get_puzzle_visibility(app, puzzle_id)
    hints = cube.get_hints(app, puzzle_id)
    interactions = [
        i for i in cube.get_interactions(app, puzzle_id)
        if i['invisible'] != 'YES'
    ]
    team_properties = cube.get_team_properties(app)

    url = "puzzle.html"

    r = make_response(
        render_template(url,
                        puzzle_id=puzzle_id,
                        puzzle=puzzle,
                        submissions=submissions,
                        visibility=visibility,
                        hints=hints,
                        interactions=interactions,
                        team_properties=team_properties))
    r.headers.set('Cache-Control', 'private, max-age=0, no-cache, no-store')
    return r
Beispiel #3
0
def puzzle(puzzle_id):
    if (app.config["SITE_MODE"] if app.config["SITE_MODE"] else 'live') not in ['live']:
        abort(403)
      
    if not cube.is_puzzle_unlocked(app, puzzle_id):
        abort(403)

    if request.method == "POST":
        if "submission" in request.form:
            cube.create_submission(app, puzzle_id, request.form["submission"])
            return redirect(url_for('puzzle', puzzle_id = puzzle_id))
        elif "hintrequest" in request.form:
            cube.create_hint_request(app, puzzle_id, request.form["hintrequest"])
            return redirect(url_for('puzzle', puzzle_id = puzzle_id))
        elif "interactionrequest" in request.form:
            cube.create_interaction_request(app, puzzle_id, request.form["interactionrequest"])
            return redirect(url_for('puzzle', puzzle_id = puzzle_id))
        else:
            abort(400)

    submissions = cube.get_submissions(app, puzzle_id)
    puzzle = cube.get_puzzle(app, puzzle_id)
    visibility = cube.get_puzzle_visibility(app, puzzle_id)
    hints = cube.get_hints(app, puzzle_id)
    interactions = cube.get_interactions(app, puzzle_id)
    team_properties = cube.get_team_properties(app)

    return render_template(
        "puzzle.html",
        puzzle_id=puzzle_id,
        puzzle=puzzle,
        submissions=submissions,
        visibility=visibility,
        hints=hints,
        interactions=interactions,
        team_properties=team_properties)
Beispiel #4
0
                    raise e
                flash("Failed to update submission: %s" % e.response.json())
                return redirect(url_for("callqueue"))

            if request.form["status"] == "SUBMITTED":
                return redirect(url_for("callqueue"))
        else:
            abort(400)

    time.sleep(0.2)

    submission = cube.get_submission(app, submission_id)
    past_submissions = cube.get_submissions(app, submission['puzzleId'], submission['teamId'])
    past_submissions = [s for s in past_submissions if s['submissionId'] != submission_id]
    puzzle = cube.get_puzzle(app, submission['puzzleId'])
    team = cube.get_team_properties(app, team_id=submission['teamId'])

    return render_template(
        "submission.html",
        submission=submission,
        past_submissions=past_submissions,
        puzzle=puzzle,
        team=team)

@app.route("/hintrequest/<int:hint_request_id>", methods=["GET", "POST"])
@login_required.writingteam
def hintrequest(hint_request_id):
    if request.method == "POST":
        if "status" in request.form:
            response = ""
            if "response" in request.form: