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')