예제 #1
0
def xhr_vote_popup(request, lon, lat):
    p = Point(float(lon), float(lat))
    freguesia = CAOPContinente.objects.get(geometry__intersects=p)
    print("xhr_vote_popup: request.method: %s" % request.method)
    if request.method == 'POST':
        form = VoteForm(request.POST)
        if form.is_valid():
            num_visitors = form.cleaned_data['adicionar_visitantes']
            freguesia.visitors += int(num_visitors)
            freguesia.save()
            result = HttpResponseRedirect(
                        #reverse('collectvisitors.views.xhr_vote_ok'), 
                        reverse('collectvisitors-vote_ok', args=(freguesia.pk,))
                     )
        else:
            form = VoteForm()
            result = render_to_response(
                        'collectvisitors/voteform.html',
                        {'form' : form, 'freguesia' : freguesia}, 
                        context_instance=RequestContext(request)
                     )
    else:
        form = VoteForm()
        result = render_to_response(
                    'collectvisitors/voteform.html',
                    {'form' : form, 'freguesia' : freguesia}, 
                    context_instance=RequestContext(request)
                 )
    return result
예제 #2
0
def voting_vote(request,vot_id):
    voting = get_object_or_404(Voting, pk=vot_id,uprawnieni__user=request.user,od__lte =timezone.now().date(),do__gte=timezone.now().date()) #zmiana na date() x2
    if Voter.objects.get(osoba__user=request.user,glosowanie=voting).zaglosowal==True:
        #juz glosowal przekierowujemy na strone bledu
        return render(request, 'voteError.html')
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = VoteForm(request.POST,voting=voting)
        # check whether it's valid:
        if form.is_valid():
            # zapisanie oddanych glosow
            for kan in form.getVotingResults():
                k = voting.candidate_set.get(osoba=kan)
                k.wynik=k.wynik+1
                k.save()
            #oddany glos - nie mozna glosowac drugi raz
            us =voting.voter_set.get(osoba=request.user.profile)
            us.zaglosowal=True;
            us.save()
            return render(request, 'voteSuccess.html',{'voting':voting.nazwa})
    # if a GET (or any other method) we'll create a blank form
    else:
        form = VoteForm(voting=voting)
        #form.fields["kandydaci"].queryset = UserProfile.objects.exclude(user=request.user) ##modyfikujemy liste kandydatow
    return render(request, 'vote.html', {'form': form,'vot_id':voting.id})
예제 #3
0
def xhr_vote(request, freg_id):
    freg_id = int(freg_id)
    freguesia = CAOPContinente.objects.get(pk=freg_id)
    print("xhr_vote: request.method: %s" % request.method)
    if request.method == 'POST':
        form = VoteForm(request.POST)
        if form.is_valid():
            #freg_id = form.cleaned_data['freguesia']
            num_visitors = form.cleaned_data['adicionar_visitantes']
            freguesia.visitors += int(num_visitors)
            freguesia.save()
            result = HttpResponseRedirect(
                        #reverse('collectvisitors.views.xhr_vote_ok'), 
                        reverse('collectvisitors-vote_ok', args=(freg_id,))
                        #reverse('collectvisitors-vote', args=(freg_id,))
                     )
        else:
            form = VoteForm()
            result = render_to_response(
                        'collectvisitors/voteform.html',
                        {'form' : form}, 
                        context_instance=RequestContext(request)
                     )
    else:
        form = VoteForm()
        result = render_to_response(
                    'collectvisitors/voteform.html',
                    {'form' : form, 'freguesia' : freguesia}, 
                    context_instance=RequestContext(request)
                 )
    return result
예제 #4
0
파일: views.py 프로젝트: kkkka/django-tasks
def detail(request, profile_id):
	profile = get_object_or_404(Profile, pk=profile_id)

	if request.method == 'POST' and request.POST['action'] == "create":
		comment_form = CommentForm(request.POST, )
		if comment_form.is_valid():
			obj = comment_form.save(commit=False)
			obj.user = request.user
			obj.profile = profile
			obj.save()
	else:
		comment_form = CommentForm()

	if request.method == 'POST' and request.POST['action'] == "vote":
		try:
			v = Vote.objects.get(for_whom=profile.owner, from_whom=request.user)
			vote_form = VoteForm(request.POST, instance=v)
		except Vote.DoesNotExist:
			vote_form = VoteForm(request.POST)
		if vote_form.is_valid():
			obj = vote_form.save(commit=False)
			obj.from_whom = request.user
			obj.for_whom = profile
			obj.save()
	else:
		vote_form = VoteForm()

	context = {
		'profile': profile,
		'comment_form': comment_form,
		'vote_form': vote_form,
	}

	return render(request, 'profiles/detail.html', context)
예제 #5
0
def vote_answer(request, answer_id):
    answer = get_object_or_404(Answer, id=answer_id)
    form = VoteForm(request.POST)
    if not form.is_valid():
        return HttpResponseServerError(_("Were you playing with that form?"))
    
    Vote.objects.get_or_create(answer=answer, user=request.user,
                               defaults={'value':form.cleaned_data['value']})

    return HttpResponseRedirect(reverse('view_question', args=[answer.question.id]))
예제 #6
0
파일: views.py 프로젝트: danrex/django-riv
def vote(request):
    if request.method == 'POST':
        form = VoteForm(request.POST)
        if form.is_valid():
            choice = form.cleaned_data.get('choice')
            choice.votes += 1
            choice.save()
            return render_to_rest({'poll': choice.poll.id, 'choice': choice.id})
        else:
            return render_form_error_to_rest(form)
    raise Http404
예제 #7
0
파일: views.py 프로젝트: NSkelsey/cvf
def vote(request, id_num):
    vf = VoteForm(request.POST or None)
    post = get_object_or_404(Post, pk=id_num)
    if vf.is_valid() and request.user.is_authenticated():
        user = request.user
        prev_vote = Vote.objects.filter(user=user, parent_post=post.parent,)
        if prev_vote.exists():
            prev_vote.delete()
            messages.warning(request, 'Changing your vote because you already voted on some child of the parent post')
        vote  = Vote(post=post, parent_post=post.parent, user=user)
        vote.save()
        return HttpResponseRedirect(request.META["HTTP_REFERER"])
예제 #8
0
def ajax_vote_cast(request, next=None, xhr="WTF?"):
    """
    Cast a vote

    HTTP POST is required.
    """
    # Fill out some initial data fields from an authenticated user, if present

    error = ""
    if request.user.is_anonymous():
        return ajax_error("Must be logged in.", "error")

    if not request.user.get_profile().access_token:
        error = "Must have access token."
        return ajax_error(error, "error")

    data = request.POST.copy()

    # Look up the object we're trying vote on
    issue = data.get("issue")
    if issue is None:
        error = "Missing issue field."
        status = simplejson.dumps({'status': 'debug', 'error': error})
        return http.HttpResponseServerError(status,
                                            mimetype="application/json")

    # Construct the vote form
    form = VoteForm(data)

    # If there are errors report
    if form.errors:
        error = ""
        for e in form.errors:
            error += "Error in the %s field: %s" % (e, form.errors[e])
        status = simplejson.dumps({'status': 'error', 'error': error})
        return http.HttpResponse(status, mimetype="application/json")

    # Otherwise submit the vote to Service Provider
    if form.is_valid():
        retstatus = demo.post_vote(request, form.clean())
    else:
        pass  #for now

    if retstatus != 201:
        error = "vote cast failed, code %d" % retstatus
        status = simplejson.dumps({'status': 'debug', 'error': error})
        return http.HttpResponseServerError(status,
                                            mimetype="application/json")

    # Save the vote and signal that it was saved
    status = simplejson.dumps({'status': "success"})
    return http.HttpResponse(status, mimetype="application/json")
예제 #9
0
파일: views.py 프로젝트: honza/vote
def index(request):
    if not _is_active():
        return render_to_response('over.html', {},
            context_instance=RequestContext(request))
    if request.method == 'POST':
        form = VoteForm(request.POST)
        if form.is_valid():
            form.save(commit=True)
            return HttpResponseRedirect(reverse('done'))
    else:
        form = VoteForm()
    return render_to_response('index.html', {
            'form': form,
        }, context_instance=RequestContext(request))
예제 #10
0
def ajax_vote_cast(request, next=None, xhr="WTF?"):
    """
    Cast a vote

    HTTP POST is required.
    """
    # Fill out some initial data fields from an authenticated user, if present

    error = ""
    if request.user.is_anonymous():
        return ajax_error( "Must be logged in." , "error" )

    if not request.user.get_profile().access_token:
        error = "Must have access token."
        return ajax_error( error , "error" )

    data = request.POST.copy()

    # Look up the object we're trying vote on
    issue = data.get("issue")
    if issue is None:
        error = "Missing issue field." 
        status = simplejson.dumps({'status': 'debug', 'error': error})
        return http.HttpResponseServerError(status, mimetype="application/json")

    # Construct the vote form
    form = VoteForm(data)

    # If there are errors report
    if form.errors:
        error = ""
        for e in form.errors:
            error += "Error in the %s field: %s" % (e, form.errors[e])
        status = simplejson.dumps({'status' : 'error', 'error' : error })
        return http.HttpResponse(status, mimetype="application/json")

    # Otherwise submit the vote to Service Provider
    if form.is_valid():
        retstatus = demo.post_vote(request, form.clean())
    else:
        pass #for now

    if retstatus != 201:
        error = "vote cast failed, code %d" % retstatus
        status = simplejson.dumps({'status': 'debug', 'error': error})
        return http.HttpResponseServerError(status, mimetype="application/json")

    # Save the vote and signal that it was saved
    status = simplejson.dumps({'status': "success"})
    return http.HttpResponse(status, mimetype="application/json")
예제 #11
0
def vote(request, id_num):
    vf = VoteForm(request.POST or None)
    post = get_object_or_404(Post, pk=id_num)
    if request.method == "POST" and vf.is_valid():
        if request.user.is_authenticated():
            user = request.user
        else:
            user = User.objects.get(username="******")
        vote = Vote(post=post, user=user, ip=request.META["REMOTE_ADDR"])
        vote.save()
        return HttpResponseRedirect(request.META["HTTP_REFERER"])

    return render_to_response("vote.html", {"form": vf},
                              context_instance=RequestContext(request))
예제 #12
0
파일: views.py 프로젝트: NSkelsey/blogo
def vote(request, id_num):
    vf = VoteForm(request.POST or None)
    post = get_object_or_404(Post, pk=id_num)
    if request.method == "POST" and vf.is_valid():
        if request.user.is_authenticated():
            user = request.user
        else:
            user = User.objects.get(username="******")
        vote = Vote(post=post, user=user, ip=request.META["REMOTE_ADDR"])
        vote.save()
        return HttpResponseRedirect(request.META["HTTP_REFERER"])

    return render_to_response("vote.html",
            {"form": vf},
            context_instance=RequestContext(request))
예제 #13
0
파일: views.py 프로젝트: NSkelsey/cvf
def vote(request, id_num):
    vf = VoteForm(request.POST or None)
    post = get_object_or_404(Post, pk=id_num)
    if vf.is_valid() and request.user.is_authenticated():
        user = request.user
        prev_vote = Vote.objects.filter(
            user=user,
            parent_post=post.parent,
        )
        if prev_vote.exists():
            prev_vote.delete()
            messages.warning(
                request,
                'Changing your vote because you already voted on some child of the parent post'
            )
        vote = Vote(post=post, parent_post=post.parent, user=user)
        vote.save()
        return HttpResponseRedirect(request.META["HTTP_REFERER"])
예제 #14
0
파일: views.py 프로젝트: dragonslice/nxdom
def index(request):
    """
    Handle post requests or list recent feedback messages.
    """
    # Check if this is a post request with new feedback.
    feedback_form = FeedbackForm(request.POST or None)
    if feedback_form.is_valid():
        return submit(request,
                      page=feedback_form.cleaned_data['page'],
                      message=feedback_form.cleaned_data['message'])
    # Check if this is a post request to vote on a message.
    vote_form = VoteForm(request.POST or None)
    if vote_form.is_valid():
        return vote(request, vote_form.cleaned_data['vote'])
    # Check if this is a post request to delete a message.
    delete_form = DeleteForm(request.POST or None)
    if delete_form.is_valid():
        return delete(request, delete_form.cleaned_data['delete'])
    # Otherwise, display recent feedback.
    return render_to_response(request, 'feedback/index.html', locals())
예제 #15
0
파일: views.py 프로젝트: echo0101/PollApp
def vote(request, pk):
	request.session.set_test_cookie()
	c = {}
	poll = get_object_or_404(Poll, pk=pk)
	
	c.update(csrf(request))
	sid = request.session.session_key
	if request.method == 'POST':
		form = VoteForm(request.POST)
		if form.is_valid():
			keyword_field = form.clean_keyword()
			match = re.match("((?P<poll_pk>\d+)\.)?(?P<keyword>\w+)", keyword_field)
			keyword = match.group("keyword")
			choice = poll.choiceByKeyword(keyword=keyword)
			if choice and WebVote.do_vote(sid, choice):
				return HttpResponseRedirect("/success/%s/%s/"%(poll.id,choice.id))
	else:
		form = VoteForm(initial={'poll_id':poll.id,'sid_saved':sid})

	c['form'] = form
	return render_to_response('vote.html', c, context_instance=RequestContext(request))
예제 #16
0
def election(request, electionid):
	election = get_object_or_404(Election, pk=electionid)
	if not election.isopen:
		raise Http404("This election is not open (yet)")

	if election.startdate > date.today():
		raise Http404("This election has not started yet")

	if election.enddate < date.today():
		# Election is closed, consider publishing the results
		if not election.resultspublic:
			# If user is an admin, show anyway, otherwise throw an error
			if not request.user.is_superuser:
				raise Http404("The results for this election isn't published yet.")

		# Ok, so we do have the results. Use a custom query to make sure we get decently formatted data
		# and no client-side ORM aggregation
		curs = connection.cursor()
		curs.execute("SELECT c.name, sum(v.score) AS score FROM elections_candidate c INNER JOIN elections_vote v ON c.id=v.candidate_id WHERE v.election_id=%(election)s AND c.election_id=%(election)s GROUP BY c.name ORDER BY 2 DESC", {
				'election': election.pk,
				})
		res = curs.fetchall()
		if len(res) == 0:
			raise Http404('No results found for this election')

		return render_to_response('elections/results.html', {
				'election': election,
				'topscore': res[0][1],
				'scores': [{'name': r[0], 'score': r[1], 'width': 300*r[1]/res[0][1]} for r in res],
				}, context_instance=RequestContext(request))

	if len(election.candidate_set.all()) <= 0:
		raise Http404("This election has no candidates!")

	# Otherwise, we show up the form. This part requires login
	if not request.user.is_authenticated():
		return HttpResponseRedirect("/login/?next=%s" % request.path)

	try:
		member = Member.objects.get(user=request.user)

		# Make sure member has paid
		if not member.paiduntil:
			return render_to_response('elections/mustbemember.html', {},
									  context_instance=RequestContext(request))

		# Make sure that the membership hasn't expired
		if member.paiduntil < date.today():
			return render_to_response('elections/mustbemember.html', {},
									  context_instance=RequestContext(request))

		# Verify that the user has been a member for at least 28 days.
		if member.membersince > election.startdate - timedelta(days=28):
			return render_to_response('elections/memberfourweeks.html', {
					'registered_at': member.paiduntil - timedelta(days=365),
					'mustregbefore': election.startdate - timedelta(days=28),
					'election': election,
					}, context_instance=RequestContext(request))

	except Member.DoesNotExist:
		return render_to_response('elections/mustbemember.html', {},
								  context_instance=RequestContext(request))

	if request.method == "POST":
		form = VoteForm(election, member, data=request.POST)
		if form.is_valid():
			# Save the form
			form.save()
	else:
		# Not a POST, so generate an empty form
		form = VoteForm(election, member)


	return render_to_response('elections/form.html', {
			'form': form,
			'election': election,
	}, context_instance=RequestContext(request))