Exemple #1
0
def end_voting(request):
    if "discussion_id" in request.POST and request.POST["discussion_id"]:
        discussion = Discussion.objects.get(id=request.POST["discussion_id"])
        voting = Voting.objects.get_started(discussion=discussion)
        if not voting:
            return HttpResponseServerError(_('{"VOTE_ENDED":"Sorry, probably the vote has ended."}'))
        close_voting(voting, discussion)
    return HttpResponse("SUCCESS")
Exemple #2
0
def get_vote_progress(request, discussion_pk):
    voting = Voting.objects.select_related().filter(discussion=discussion_pk, status="Started")
    if voting:
        voting = voting[0]
        if voting.time_left():
            progress = calculate_progress_bar_value(voting)
            time_left = voting.end_time - datetime.now()
            return HttpResponse('{"progress":%d,"time_left":"%s"}' % (progress, time_left))
        else:
            close_voting(voting, voting.discussion)
            return HttpResponseServerError(_('{"VOTE_ENDED":"Oops, looks like your time is up."}'))
    else:
        return HttpResponseServerError(_('{"VOTE_ENDED":"Sorry, probably the vote has ended."}'))
Exemple #3
0
def remove_ballot(request):
    if request.POST:
        story_pk = request.POST.get("story_pk", None)
        if not story_pk:
            return HttpResponseServerError(_("No story id found in request."))
        story = Story.objects.get(pk=story_pk)
        discussion = story.discussion
        voting = Voting.objects.get_started(discussion=discussion)
        if not voting:
            return HttpResponseServerError(_('{"VOTE_ENDED":"Sorry, probably the vote has ended."}'))
        if voting.time_left():
            ballots = Ballot.objects.filter(user=request.user, voting=voting, story=story)
            if ballots:
                ballot = ballots[0]
            else:
                return HttpResponseServerError(_('{"NO_BALLOT":"Funnybone, You haven\'t voted on this story yet."}'))
            ballot.delete()
        else:
            close_voting(voting, discussion)
            return HttpResponseServerError(_('{"VOTE_ENDED":"Oops, looks like your time is up."}'))
    else:
        return HttpResponseServerError(_("Bad usage. No post params present in request."))
    return HttpResponse("SUCCESS")
Exemple #4
0
def add_ballot(request):
    if request.POST:
        story_pk = request.POST.get("story_pk", None)
        if not story_pk:
            return HttpResponseServerError(_("No story id found in request."))
        story = Story.objects.get(pk=story_pk)
        discussion = story.discussion
        voting = Voting.objects.get_started(discussion=discussion)
        if not voting:
            return HttpResponseServerError(_('{"VOTE_ENDED":"Sorry, probably the vote has ended."}'))
        if voting.time_left():
            user = request.user
            if Ballot.objects.count_left(user=user, voting=voting):
                Ballot.objects.create(user=user, voting=voting, story=story)
            else:
                return HttpResponseServerError(
                    _('{"NO_BALLOT":"Seems like you\'ve used up all your ballots for this vote."}')
                )
        else:
            close_voting(voting, discussion)
            return HttpResponseServerError(_('{"VOTE_ENDED":"Oops, looks like your time is up."}'))
    else:
        return HttpResponseServerError(_("Bad usage. No post params present in request."))
    return HttpResponse("SUCCESS")