web/ldt/ldt_utils/views.py
changeset 16 b3692a42ac79
parent 10 84e31387a741
child 24 c8d5e809ffdb
--- a/web/ldt/ldt_utils/views.py	Thu Jun 10 12:17:51 2010 +0200
+++ b/web/ldt/ldt_utils/views.py	Thu Jun 10 18:56:59 2010 +0200
@@ -203,14 +203,31 @@
 
 def project_json(request, project):
 
-    resp = HttpResponse(mimetype="application/json; charset=utf-8")
+    mimetype = request.REQUEST.get("mimetype")
+    if mimetype is None:
+        mimetype = u"application/json; charset=utf-8"
+
+    resp = HttpResponse(mimetype=mimetype)
     resp['Cache-Control']='no-cache, must-revalidate'
     resp['Pragma']='no-cache'
     
+    indent = request.REQUEST.get("indent")
+    if indent is None:
+        indent = settings.LDT_JSON_DEFAULT_INDENT
+    else:
+        indent = int(indent)
+    
+    callback = request.REQUEST.get("callback")
+        
     ps = ProjectSerializer(project)
     project_dict = ps.serialize_to_cinelab()
     
-    simplejson.dump(project_dict, resp, ensure_ascii=False, indent=2)
+    json_str = simplejson.dumps(project_dict, ensure_ascii=False, indent=indent)
+    
+    if callback is not None:
+        json_str = "%s(%s)" % (callback,json_str)
+    
+    resp.write(json_str)
 
     return resp