def question_vote(request, question_id): """I have this problem too.""" question = get_object_or_404(Question, pk=question_id) if question.is_locked: raise PermissionDenied if not question.has_voted(request): vote = QuestionVote(question=question) if request.user.is_authenticated(): vote.creator = request.user else: vote.anonymous_id = request.anonymous.anonymous_id vote.save() if request.is_ajax(): tmpl = 'questions/includes/question_vote_thanks.html' form = _init_watch_form(request) html = jingo.render_to_string(request, tmpl, { 'question': question, 'watch_form': form }) return HttpResponse(json.dumps({'html': html})) return HttpResponseRedirect(question.get_absolute_url())
def question_vote(request, question_id): """I have this problem too.""" question = get_object_or_404(Question, pk=question_id) if question.is_locked: raise PermissionDenied if not question.has_voted(request): vote = QuestionVote(question=question) if request.user.is_authenticated(): vote.creator = request.user else: vote.anonymous_id = request.anonymous.anonymous_id vote.save() ua = request.META.get('HTTP_USER_AGENT') if ua: vote.add_metadata('ua', ua[:1000]) # 1000 max_length statsd.incr('questions.votes.question') if request.is_ajax(): tmpl = 'questions/includes/question_vote_thanks.html' form = _init_watch_form(request) html = jingo.render_to_string(request, tmpl, {'question': question, 'watch_form': form}) return HttpResponse(json.dumps({'html': html})) return HttpResponseRedirect(question.get_absolute_url())
def question_vote(request, question_id): """I have this problem too.""" question = get_object_or_404(Question, pk=question_id) if question.is_locked: raise PermissionDenied if not question.has_voted(request): vote = QuestionVote(question=question) if request.user.is_authenticated(): vote.creator = request.user else: vote.anonymous_id = request.anonymous.anonymous_id vote.save() if "referrer" in request.REQUEST: referrer = request.REQUEST.get("referrer") vote.add_metadata("referrer", referrer) if referrer == "search" and "query" in request.REQUEST: vote.add_metadata("query", request.REQUEST.get("query")) ua = request.META.get("HTTP_USER_AGENT") if ua: vote.add_metadata("ua", ua[:1000]) # 1000 max_length statsd.incr("questions.votes.question") if request.is_ajax(): tmpl = "questions/includes/question_vote_thanks.html" form = WatchQuestionForm(request.user) html = jingo.render_to_string(request, tmpl, {"question": question, "watch_form": form}) return HttpResponse(json.dumps({"html": html})) return HttpResponseRedirect(question.get_absolute_url())
def test_vote_updates_count(self): q = Question.objects.all()[0] eq_(0, q.num_votes_past_week) vote = QuestionVote(question=q, anonymous_id='abc123') vote.save() eq_(1, q.num_votes_past_week)
def question_vote(request, question_id): """I have this problem too.""" question = get_object_or_404(Question, pk=question_id) if question.is_locked: raise PermissionDenied if not question.has_voted(request): vote = QuestionVote(question=question) if request.user.is_authenticated(): vote.creator = request.user else: vote.anonymous_id = request.anonymous.anonymous_id vote.save() ua = request.META.get('HTTP_USER_AGENT') if ua: vote.add_metadata('ua', ua[:1000]) # 1000 max_length statsd.incr('questions.votes.question') if request.is_ajax(): tmpl = 'questions/includes/question_vote_thanks.html' form = _init_watch_form(request) html = jingo.render_to_string(request, tmpl, {'question': question, 'watch_form': form}) return HttpResponse(json.dumps({'html': html})) return HttpResponseRedirect(question.get_absolute_url())
def test_vote_updates_count(self): q = Question.objects.all()[0] eq_(0, q.num_votes_past_week) vote = QuestionVote(question=q, anonymous_id='abc123') vote.save() eq_(1, q.num_votes_past_week)
def test_vote_updates_count(self): q = Question.objects.all()[0] eq_(0, q.num_votes_past_week) vote = QuestionVote(question=q, anonymous_id="abc123") vote.save() q = Question.uncached.get(id=q.id) eq_(1, q.num_votes_past_week)
def test_cron_updates_counts(self): q = Question.objects.all()[0] eq_(0, q.num_votes_past_week) vote = QuestionVote(question=q, anonymous_id="abc123") vote.save() q.num_votes_past_week = 0 q.save() update_weekly_votes() q = Question.objects.get(pk=q.pk) eq_(1, q.num_votes_past_week)
def test_cron_updates_counts(self): q = Question.objects.all()[0] eq_(0, q.num_votes_past_week) vote = QuestionVote(question=q, anonymous_id='abc123') vote.save() q.num_votes_past_week = 0 q.save() update_weekly_votes() q = Question.objects.get(pk=q.pk) eq_(1, q.num_votes_past_week)
def test_sort(self): default = reverse('questions.questions') sorted = urlparams(default, sort='requested') q = Question.objects.get(pk=2) qv = QuestionVote(question=q, anonymous_id='abc123') qv.save() response = self.client.get(default) doc = pq(response.content) eq_('question-1', doc('ol.questions li')[0].attrib['id']) response = self.client.get(sorted) doc = pq(response.content) eq_('question-2', doc('ol.questions li')[0].attrib['id'])
def test_sort(self): default = reverse('questions.questions') sorted = urlparams(default, sort='requested') q = Question.objects.get(pk=2) qv = QuestionVote(question=q, anonymous_id='abc123') qv.save() response = self.client.get(default) doc = pq(response.content) eq_('question-1', doc('ol.questions li')[0].attrib['id']) response = self.client.get(sorted) doc = pq(response.content) eq_('question-2', doc('ol.questions li')[0].attrib['id'])
def vote_foo_question(request, question_id, value): if not request.user.is_authenticated(): return redirect('questions:show', question_id) user_id = request.user.id question = get_object_or_404(Question, pk=question_id) vote = QuestionVote.objects.filter(user_id=user_id, question=question).first() if vote is None: vote = QuestionVote() vote.user_id = user_id vote.question = question vote.value = value vote.save() question.update_votes() question.save() return redirect('questions:show', question_id)
def question_vote(request, question_id): """I have this problem too.""" question = get_object_or_404(Question, pk=question_id) if question.is_locked: raise PermissionDenied if not question.has_voted(request): vote = QuestionVote(question=question) if request.user.is_authenticated(): vote.creator = request.user else: vote.anonymous_id = request.anonymous.anonymous_id vote.save() if request.is_ajax(): tmpl = 'questions/includes/question_vote_thanks.html' form = _init_watch_form(request) html = jingo.render_to_string(request, tmpl, {'question': question, 'watch_form': form}) return HttpResponse(json.dumps({'html': html})) return HttpResponseRedirect(question.get_absolute_url())