def submit_ballot(): json = request.get_json(force=True) verify = verify_ballot(json["ballot"]) if not verify["success"]: return jsonify(success=False, errors=["Ballot failed verification."]) if current_user.voted: return jsonify(success=False, errors=["Forbidden."]) for position, choices in json["ballot"].iteritems(): db_position = Position.query.filter_by(name=position).first() for choice in choices: if "[WRITE IN]" in choice: can_id = User.query.filter_by(name="WRITE_IN").first().id write_in = choice else: can_id = User.query.filter_by(name=choice).first().id write_in = "" vote = Vote(voter_id=current_user.id, position_id=db_position.id, candidate_id=can_id, write_in=write_in) db.session.add(vote) db.session.commit() current_user.voted = True db.session.add(current_user) db.session.commit() return jsonify(success=True)
def run_verify_ballot(): return jsonify(verify_ballot(request.get_json(force=True)["ballot"]))