--- 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,46 +40,36 @@
def comments_by_chapter(chapter):
objs = {}
- try:
- para_list=p_list[chapter]
-
- for paragraph_id in para_list:
- objs[paragraph_id]=[]
-
- except:
- para_list=[]
-
- for paragraph_id in para_list:
- print chapter ,paragraph_id
- for c in Comment.objects.filter(element__chapter_name=chapter,element__paragraph_id=paragraph_id).order_by('date'):
-
- objs[paragraph_id].append(c)
+ for c in Comment.objects.filter(element__chapter_name=chapter).order_by('date'):
+ objs.setdefault(c.element.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
@@ -98,7 +90,7 @@
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,
@@ -163,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)