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,13 +4,17 @@ 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 + +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: @@ -24,7 +28,6 @@ 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,81 @@ remember = forms.BooleanField(initial=True, required=False) def comments_by_chapter(chapter): - objs = [] - for c in Comment.objects.filter(element__chapter_name=chapter).order_by('date'): - objs.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: + 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) + + + + 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,chapter_name): - comment_count = comments_by_chapter(chapter_name) + print chapter_name + chapter_name=chapter_name.split('.')[0] + comment_objs = comments_by_chapter(chapter_name) resp={} - resp['count']=len(comment_count) + 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): + if paragraph_id[-1]=='/': + 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 +118,28 @@ '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: + #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[-1::-1].replace('_','/',1)[-1::-1] + 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 +152,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")