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() 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 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_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 questionvote(**kwargs): defaults = dict(created=datetime.now()) defaults.update(kwargs) if 'question' not in kwargs and 'queation_id' not in kwargs: defaults['question'] = question(save=True) if 'creator' not in kwargs and 'creator_id' not in kwargs: defaults['creator'] = user(save=True) return QuestionVote(**defaults)
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_key, upvote): question = get_object_or_404(Question, key=question_key) user = users.get_current_user() # check it not already voted.. vote = QuestionVote.all() \ .filter('question =', question).filter('user ='******'Duplicated vote: %s;;%s', question, user) redirect_url = request.META.get('HTTP_REFERER', None) if redirect_url is None: logging.warning('No referer. Fallback to questions list') redirect_url = reverse('questions_question_list') return redirect(redirect_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 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 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 '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())