--- a/sphinx_django/sphinxcomment/views.py~ Thu Sep 30 15:59:32 2010 +0530
+++ b/sphinx_django/sphinxcomment/views.py~ Fri Oct 15 15:59:28 2010 +0530
@@ -4,27 +4,30 @@
from django.contrib.csrf.middleware import csrf_exempt
import django.forms as forms
from django.db import connection
-from django.http import HttpResponse
+from django.http import HttpResponse,Http404
from sphinxcomment.models import Comment, Element
from django.shortcuts import get_object_or_404, render_to_response
from django.template import Context
from django.template.loader import get_template
from django.utils.simplejson import dumps
-# def dump_queries():
-# # requires settings.DEBUG to be set to True in order to work
-# if len(connection.queries) == 1:
-# print connection.queries
-# else:
-# qs = {}
-# for q in connection.queries:
-# qs[q['sql']] = qs.setdefault(q['sql'], 0) + 1
-# for q in sorted(qs.items(), key=lambda x: x[1], reverse=True):
-# print q
-# print len(connection.queries)
+
+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
+ if len(connection.queries) == 1:
+ print connection.queries
+ else:
+ qs = {}
+ for q in connection.queries:
+ qs[q['sql']] = qs.setdefault(q['sql'], 0) + 1
+ for q in sorted(qs.items(), key=lambda x: x[1], reverse=True):
+ print q
+ print len(connection.queries)
class CommentForm(forms.Form):
- id = forms.CharField(widget=forms.HiddenInput)
name = forms.CharField(max_length=64)
url = forms.URLField(max_length=128, required=False)
comment = forms.CharField(widget=forms.Textarea(attrs={
@@ -33,48 +36,78 @@
remember = forms.BooleanField(initial=True, required=False)
def comments_by_chapter(chapter):
- objs = {}
- for c in Comment.objects.filter(element__chapter=id, hidden=False).order_by('date'):
- objs.setdefault(c.element_id, []).append(c)
- return objs
+ 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:
+
+ 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(id).iteritems():
- form = CommentForm(initial={
- 'id': 'elt',
- 'name': 'name'
+ 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({
- 'id': 'elt',
+ resp[elt] = template.render(Context({
+ 'paragraph_id': elt,
'form': form,
- 'length': 5,
- 'query': 'abcde',
+ 'length': len(comments),
+ 'query': comments,
}))
return HttpResponse(dumps(resp), mimetype='application/json')
-def chapter_count(request):
-# resp = comments_by_chapter(chapter_name)
-# # for elt, comments in resp.iteritems():
-# # resp[elt] = len(comments)
+def chapter_count(request,chapter_name):
+ print chapter_name
+ chapter_name=chapter_name.split('.')[0]
+ comment_objs = comments_by_chapter(chapter_name)
resp={}
- resp['elt']=5
+ temp_dict={}
+ for elt, comments in comment_objs.iteritems():
+ temp_dict[elt]=len(comments)
+
+ resp['count']=temp_dict
+
+
+ print resp
return HttpResponse(dumps(resp), mimetype='application/json')
-def single(request, id, form=None, newid=None):
- queryset = Comment.objects.filter(element=id, hidden=False).order_by('date')
+def single(request,paragraph_id, form=None, newid=None):
+ paragraph_id=paragraph_id[:-1]
+ queryset = Comment.objects.filter(element=paragraph_id)
+ print paragraph_id
if form is None:
form = CommentForm(initial={
- 'id': id,
+ 'paragraph_id': paragraph_id,
'name': request.session.get('name', ''),
})
try:
error = form.errors[0]
except:
error = ''
+ print form.errors
return render_to_response('comment.html', {
- 'id': id,
+ 'paragraph_id': paragraph_id,
'form': form,
'length': len(queryset),
'query': queryset,
@@ -82,13 +115,26 @@
'error': error,
})
-def submit(request, id):
- element = get_object_or_404(Element, id=id)
+
+
+
+def submit(request, paragraph_id):
+ try:
+ element = get_object_or_404(Element, paragraph_id=paragraph_id)
+ except Http404:
+ chapter_id='_'.join(paragraph_id.split('_')[0:-1])
+ chapter_name=chapter_id.replace('_','/')
+ element=Element(chapter_name=chapter_name,paragraph_id=paragraph_id)
+ element.save()
+ print element.chapter_name
form = None
newid = None
+
if request.method == 'POST':
form = CommentForm(request.POST)
+ print form.errors
if form.is_valid():
+ print form.cleaned_data
data = form.cleaned_data
if data.get('remember'):
request.session['name'] = data['name']
@@ -101,15 +147,16 @@
submitter_name=data['name'],
submitter_url=data['url'],
ip=request.META.get('REMOTE_ADDR'))
+ print c
c.save()
- newid = c.id
+
form = None
- return single(request, id, form, newid)
+ return single(request, paragraph_id, form,)
def test(request):
print request
string="<p>test comment</p>"
- return HttpResponse(dumps(string),mimetype="application/json")
+ return HttpResponse(string,mimetype="text/plain")