sphinx_django/sphinxcomment/views.py~
changeset 3 de4a2ed2f34b
parent 2 f5e18f8ed036
--- a/sphinx_django/sphinxcomment/views.py~	Fri Oct 15 15:59:28 2010 +0530
+++ b/sphinx_django/sphinxcomment/views.py~	Wed Oct 27 13:59:11 2010 +0530
@@ -10,10 +10,12 @@
 from django.template import Context
 from django.template.loader import get_template
 from django.utils.simplejson import dumps 
-
+from django.conf import settings
+from os.path import join, splitext
+from BeautifulSoup import BeautifulSoup as bss, Tag
 
-placeholder_string = open('paragraph_id.py').read()
-exec placeholder_string
+#placeholder_string = open('paragraph_id.py').read()
+#exec placeholder_string
 
 def dump_queries():
     # requires settings.DEBUG to be set to True in order to work
@@ -38,44 +40,36 @@
 def comments_by_chapter(chapter):
      objs = {}
 
-     try:
-         para_list=p_list[chapter]
-
-         for paragraph_id in para_list:
-           objs[paragraph_id]=[] 
+     for c in Comment.objects.filter(element__chapter_name=chapter).order_by('date'):
+         objs.setdefault(c.element.paragraph_id, []).append(c)
+         
 
-     except:
-         para_list=[]
+             
+     
+     return objs
 
-     for paragraph_id in para_list:
-         
-         for c in Comment.objects.filter(element__chapter_name=chapter,element__paragraph_id=paragraph_id).order_by('date'):
-
-             objs[paragraph_id].append(c)
-
-     return objs
 
      
 
 
 
 
-def chapter(request):
-    template = get_template('comment.html')
-    resp = {}
-    for elt, comments in comments_by_chapter(chapter).iteritems():
-        print elt ,comments
-        form = CommentForm(initial={
-            'paragraph_id': elt,
-            'name': name
-            })
-        resp[elt] = template.render(Context({
-            'paragraph_id': elt,
-            'form': form,
-            'length': len(comments),
-            'query': comments,
-            }))
-    return HttpResponse(dumps(resp), mimetype='application/json')
+# def chapter(request):
+#     template = get_template('comment.html')
+#     resp = {}
+#     for elt, comments in comments_by_chapter(chapter).iteritems():
+#         print elt ,comments
+#         form = CommentForm(initial={
+#             'paragraph_id': elt,
+#             'name': name
+#             })
+#         resp[elt] = template.render(Context({
+#             'paragraph_id': elt,
+#             'form': form,
+#             'length': len(comments),
+#             'query': comments,
+#             }))
+#     return HttpResponse(dumps(resp), mimetype='application/json')
 
 def chapter_count(request,chapter_name):
     print chapter_name
@@ -93,9 +87,10 @@
     return HttpResponse(dumps(resp), mimetype='application/json')
     
 def single(request,paragraph_id, form=None, newid=None):
-    paragraph_id=paragraph_id[:-1]
+    if paragraph_id[-1]=='/':
+        paragraph_id=paragraph_id[:-1]
     queryset = Comment.objects.filter(element=paragraph_id)
-    print paragraph_id 
+    print len(queryset)
     if form is None:
         form = CommentForm(initial={
             'paragraph_id': paragraph_id,
@@ -119,11 +114,13 @@
 
 
 def submit(request, paragraph_id):
+
     try:
         element = get_object_or_404(Element, paragraph_id=paragraph_id)
     except Http404:
+        #creating chapter name from paragraph_id surely there is a better way using the context but i do not know as yet
         chapter_id='_'.join(paragraph_id.split('_')[0:-1])
-        chapter_name=chapter_id.replace('_','/')
+        chapter_name=chapter_id[-1::-1].replace('_','/',1)[-1::-1]
         element=Element(chapter_name=chapter_name,paragraph_id=paragraph_id)
         element.save()
     print element.chapter_name
@@ -158,8 +155,27 @@
     string="<p>test comment</p>"
     return HttpResponse(string,mimetype="text/plain")
     
-       
-
+def page(req, path):
+    if splitext(path)[1] == '.html':
+        soup = bss(open(join(settings.SPHINX_PROJECT, path)).read())
+        head = soup.find('head')
+        first_script = Tag(soup, 'script')
+        first_script['src'] = "_static/simplecomment.js"
+        first_script['type'] = "text/javascript"
+        second_script = Tag(soup, 'script')
+        second_script['src'] = "_static/jquery.form.js"
+        second_script['type'] = "text/javascript"
+        head.insert(-1, first_script)
+        head.insert(-1, second_script)
+        counter = 0
+        page_identity = path.split('.')[0].replace('/', '_')
+        for p in soup.findAll('p'):
+            p['id'] = '%s_%s' %(page_identity, counter)
+            counter += 1
+        return HttpResponse(str(soup))
+    else:
+        return HttpResponse(open(join(settings.SPHINX_PROJECT, path)).read())
+    
 #return HttpResponse(dumps(string),mimetype="text/plain")
 #test= csrf_exempt(test)