diff -r 5574cfc2b28d -r f5e18f8ed036 sphinx_django/sphinxcomment/views.py~ --- 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="

test comment

" - return HttpResponse(dumps(string),mimetype="application/json") + return HttpResponse(string,mimetype="text/plain")