]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/views/commands.py
Should fix the missing admin items problem.
[osqa.git] / forum / views / commands.py
index 0b5412686d2ae558961d2d859fc49bc06c4c8176..aeb01e54b2a387d3a8795cf30cb83ef0b8a2bc28 100644 (file)
@@ -73,6 +73,7 @@ def vote_post(request, id, vote_type):
         raise NotEnoughRepPointsException(vote_type == 'up' and _('upvote') or _('downvote'))
 
     user_vote_count_today = user.get_vote_count_today()
+    user_can_vote_count_today = user.can_vote_count_today()
 
     if user_vote_count_today >= user.can_vote_count_today():
         raise NotEnoughLeftException(_('votes'), str(settings.MAX_VOTES_PER_DAY))
@@ -104,7 +105,7 @@ def vote_post(request, id, vote_type):
     }
     }
 
-    votes_left = (int(settings.MAX_VOTES_PER_DAY) - user_vote_count_today) + (vote_type == 'none' and -1 or 1)
+    votes_left = (user_can_vote_count_today - user_vote_count_today) + (vote_type == 'none' and -1 or 1)
 
     if int(settings.START_WARN_VOTES_LEFT) >= votes_left:
         response['message'] = _("You have %(nvotes)s %(tvotes)s left today.") % \
@@ -534,6 +535,10 @@ def matching_users(request):
 def related_questions(request):
     if request.POST and request.POST.get('title', None):
         can_rank, questions = Question.objects.search(request.POST['title'])
+
+        if can_rank and isinstance(can_rank, basestring):
+            questions = questions.order_by(can_rank)
+
         return HttpResponse(simplejson.dumps(
                 [dict(title=q.title, url=q.get_absolute_url(), score=q.score, summary=q.summary)
                  for q in questions.filter_state(deleted=False)[0:10]]), mimetype="application/json")
@@ -579,6 +584,9 @@ def award_points(request, user_id, answer_id):
         points = int(request.POST['points'])
 
         # We should check if the user has enough reputation points, otherwise we raise an exception.
+        if points < 0:
+            raise CommandException(_("The number of points to award needs to be a positive value."))
+
         if user.reputation < points:
             raise NotEnoughRepPointsException(_("award"))