diff forums/views/attachments.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/forums/views/attachments.py@72fd300685d5
children 89b240fe9297
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/forums/views/attachments.py	Sat May 05 17:10:48 2012 -0500
@@ -0,0 +1,35 @@
+"""
+This module contains views for working with post attachments.
+"""
+from django.http import HttpResponse
+from django.http import HttpResponseForbidden
+from django.http import HttpResponseBadRequest
+from django.http import HttpResponseNotFound
+import django.utils.simplejson as json
+
+from forums.models import Post
+
+
+def fetch_attachments(request):
+    """
+    This view is the target of an AJAX GET request to retrieve the
+    attachment embed data for a given forum post.
+
+    """
+    if not request.user.is_authenticated():
+        return HttpResponseForbidden('Please login or register.')
+
+    post_id = request.GET.get('pid')
+    if post_id is None:
+        return HttpResponseBadRequest('Missing post ID.')
+
+    try:
+        post = Post.objects.get(pk=post_id)
+    except Post.DoesNotExist:
+        return HttpResponseNotFound("That post doesn't exist.")
+
+    embeds = post.attachments.all().select_related('embed')
+    data = [{'id': embed.id, 'html': embed.html} for embed in embeds]
+
+    return HttpResponse(json.dumps(data), content_type='application/json')
+