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
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})
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
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)
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]))
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
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"])
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")
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))
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")
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))
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"])
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())
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))
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))