Mercurial > public > sg101
diff core/views.py @ 581:ee87ea74d46b
For Django 1.4, rearranged project structure for new manage.py.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 05 May 2012 17:10:48 -0500 |
parents | gpp/core/views.py@be3fff614b93 |
children | 1982996ce365 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/views.py Sat May 05 17:10:48 2012 -0500 @@ -0,0 +1,38 @@ +""" +Views for the core application. These are mainly shared, common views +used by multiple applications. +""" +from django.contrib.auth.models import User +from django.http import HttpResponse +from django.shortcuts import render_to_response +from django.template import RequestContext +from django.contrib.auth.decorators import login_required +from django.views.decorators.http import require_GET +import django.utils.simplejson as json + + +@login_required +@require_GET +def markdown_help(request): + """ + This view provides the Markdown help cheat sheet. It is expected + to be called via AJAX. + """ + return render_to_response('core/markdown_help.html') + + +def ajax_users(request): + """ + If the user is authenticated, return a JSON array of strings of usernames + whose names start with the 'q' GET parameter, limited by the 'limit' GET + parameter. Only active usernames are returned. + If the user is not authenticated, return an empty array. + """ + q = request.GET.get('q', None) + if q is None or not request.user.is_authenticated(): + return HttpResponse(json.dumps([]), content_type='application/json') + + limit = int(request.GET.get('limit', 10)) + users = User.objects.filter(is_active=True, + username__istartswith=q).values_list('username', flat=True)[:limit] + return HttpResponse(json.dumps(list(users)), content_type='application/json')