def get(self, request, election_pk): try: """ this will order the ballots from most recent to oldest. and optionally take a after parameter. """ election = getElection(election_pk) limit = after = None if request.GET.has_key('limit'): limit = int(request.GET['limit']) if request.GET.has_key('after'): after = datetime.datetime.strptime(request.GET['after'], '%Y-%m-%d %H:%M:%S') voters = Voter.get_by_election(election, cast=True, order_by='cast_at', limit=limit, after=after) # we explicitly cast this to a short cast vote # res = [v.last_cast_vote().ld_object.short.toDict(complete=True) for v in voters] res = [] for v in voters: cast = v.last_cast_vote().ld_object.short.toDict(complete=True) cast["url"] = reverse('ballot-last', args=[election_pk,v.uuid], request=request) res.append(cast) # res = serializer(voters,request) return response(200,res) except Exception as err: return get_error(err)
def get(self, request, election_pk, voter_pk): try: cast_vote = get_cast_vote(election_pk, voter_pk) res = serializer(cast_vote, request) return Response(res.data) except Exception as err: return get_error(err)
def get(self,request,election_pk, voter_pk): try: election = getElection(election_pk) voter = Voter.get_by_election_and_uuid(election, voter_pk) res = voter.last_cast_vote().toJSONDict() return response(200,res) except Exception as err: return get_error(err)
def get(self, request, election_pk, voter_pk): try: election = getElection(election_pk) voter = Voter.get_by_election_and_uuid(election, voter_pk) votes = CastVote.get_by_voter(voter) res = [v.toJSONDict() for v in votes] return response(200,res) except Exception as err: return get_error(err)
def post(self, request, election_pk): try: session = auth_user(request) if (session["username"] == "admin"): raise_exception(401, 'Admin is not allowed to be a voter.') user = get_user_session(session["username"]) election = getElection(election_pk) body = get_encrypted_vote(request) voter = election.voter_set.get( voter_login_id=user.user_id, voter_password=user.info["password"]) res = serializer(voter, request) create_cast_vote(body, voter, request) return response(200, res.data) except Voter.DoesNotExist as err: if (not election.openreg): return get_error(err) voter = create_voter(user, election) return self.post(request, election_pk) except Exception as err: return get_error(err)
def get(self,request): try: api_task.slow_task.delay() return response(200, 'ok') except Exception as err: return get_error(err)