-@ajax_login_required
-def ajax_toggle_ignored_questions(request):#ajax tagging and tag-filtering system
- if request.user.hide_ignored_questions:
- new_hide_setting = False
- else:
- new_hide_setting = True
- request.user.hide_ignored_questions = new_hide_setting
- request.user.save()
-
-@ajax_method
-def ajax_command(request):#refactor? view processing ajax commands - note "vote" and view others do it too
- if 'command' not in request.POST:
- return HttpResponseForbidden(mimetype="application/json")
- if request.POST['command'] == 'toggle-ignored-questions':
- return ajax_toggle_ignored_questions(request)
-
-@login_required
-def close(request, id):#close question
- """view to initiate and process
- question close
- """
- question = get_object_or_404(Question, id=id)
- if not request.user.can_close_question(question):
- return HttpResponseForbidden()
- if request.method == 'POST':
- form = CloseForm(request.POST)
- if form.is_valid():
- reason = form.cleaned_data['reason']
- question.closed = True
- question.closed_by = request.user
- question.closed_at = datetime.datetime.now()
- question.close_reason = reason
- question.save()
- return HttpResponseRedirect(question.get_absolute_url())
- else:
- form = CloseForm()
- return render_to_response('close.html', {
- 'form' : form,
- 'question' : question,
- }, context_instance=RequestContext(request))
-
-@login_required
-def reopen(request, id):#re-open question
- """view to initiate and process
- question close
- """
- question = get_object_or_404(Question, id=id)
- # open question
- if not request.user.can_reopen_question(question):
- return HttpResponseForbidden()
- if request.method == 'POST' :
- Question.objects.filter(id=question.id).update(closed=False,
- closed_by=None, closed_at=None, close_reason=None)
- return HttpResponseRedirect(question.get_absolute_url())
+def matching_tags(request):
+ if len(request.GET['q']) == 0:
+ raise CommandException(_("Invalid request"))
+
+ possible_tags = Tag.objects.filter(name__istartswith = request.GET['q'])
+ tag_output = ''
+ for tag in possible_tags:
+ tag_output += (tag.name + "|" + tag.name + "." + tag.used_count.__str__() + "\n")
+
+ return HttpResponse(tag_output, mimetype="text/plain")
+
+def related_questions(request):
+ if request.POST and request.POST.get('title', None):
+ return HttpResponse(simplejson.dumps(
+ [dict(title=q.title, url=q.get_absolute_url(), score=q.score, summary=q.summary)
+ for q in Question.objects.search(request.POST['title'])[0:10]]), mimetype="application/json")