def cast_vote(request): up = request.user.profile race_name = request.GET['race_name'] winner = request.GET['winner'] r = Race(number=up.counter, auditor=up, race_name=race_name,winner=winner) r.save() if up.counter%Election.get_num_races() != Election.get_num_races()-1: up.counter = F('counter')+1 up.save() return get_candidates(request) else: data = { 'currentRaceNum': Election.get_race_index(up.counter), 'currentBallotNum': Election.get_ballot_index(up.counter), 'numRaces': Election.get_num_races(), 'numBallots':up.ballots } data['transition'] = True data['previousRaces'] = Election.get_previous_winners(list(Race.objects.filter(auditor=up, number__gte=(data['currentBallotNum']*Election.get_num_races())))) if up.counter == up.ballots*Election.get_num_races()-1: data['end'] = True return HttpResponse(json.dumps(data), mimetype='application/json')
def get_candidates(request): up = request.user.profile counter = up.counter if Race.objects.filter(auditor=up,number=counter): data = { 'currentRaceNum': Election.get_race_index(up.counter), 'currentBallotNum': Election.get_ballot_index(up.counter), 'numRaces': Election.get_num_races(), 'numBallots':up.ballots } data['transition'] = True data['previousRaces'] = Election.get_previous_winners(list(Race.objects.filter(auditor=up, number__gte=(data['currentBallotNum']*Election.get_num_races())))) if counter == up.ballots*Election.get_num_races()-1: data['end'] = True return HttpResponse(json.dumps(data), mimetype='application/json') data = { 'transition': False, 'currentRace': { 'name': Election.get_race_name(counter), 'candidates': Election.get_candidates(counter) }, 'currentRaceNum': Election.get_race_index(counter), 'currentBallotNum': Election.get_ballot_index(counter), 'numRaces': Election.get_num_races(), 'numBallots':up.ballots } current_ballot = Election.get_ballot_index(counter) data['previousRaces'] = Election.get_previous_winners(list(Race.objects.filter(auditor=up, number__gte=(data['currentBallotNum']*Election.get_num_races())))) return HttpResponse(json.dumps(data), mimetype='application/json')