# HG changeset patch # User durandn # Date 1469091911 -7200 # Node ID 55214839b54153352248b6b6bafc14ab3f0dd62b # Parent 3404adb4002163c76c246d4bc06ead67fbd86eba Comments threading, pagination and date format diff -r 3404adb40021 -r 55214839b541 src/iconolab/models.py --- a/src/iconolab/models.py Thu Jul 21 11:03:14 2016 +0200 +++ b/src/iconolab/models.py Thu Jul 21 11:05:11 2016 +0200 @@ -310,7 +310,11 @@ class IconolabComment(XtdComment): revision = models.ForeignKey('AnnotationRevision', related_name='creation_comment', null=True, blank=True) metacategories = models.ManyToManyField('MetaCategory', through='MetaCategoryInfo', through_fields=('comment', 'metacategory')) - + + objects = XtdComment.objects + + class Meta: + ordering = ["thread_id", "id"] class MetaCategory(models.Model): collection = models.ForeignKey(Collection) diff -r 3404adb40021 -r 55214839b541 src/iconolab/settings/__init__.py --- a/src/iconolab/settings/__init__.py Thu Jul 21 11:03:14 2016 +0200 +++ b/src/iconolab/settings/__init__.py Thu Jul 21 11:05:11 2016 +0200 @@ -63,7 +63,7 @@ COMMENTS_APP = "django_comments_xtd" COMMENTS_XTD_MODEL = "iconolab.models.IconolabComment" COMMENTS_XTD_FORM_CLASS = 'iconolab.forms.comments.IconolabCommentForm' -COMMENTS_XTD_MAX_THREAD_LEVEL = 0 +COMMENTS_XTD_MAX_THREAD_LEVEL = 100 SITE_ID = 1 diff -r 3404adb40021 -r 55214839b541 src/iconolab/settings/dev.py.tmpl --- a/src/iconolab/settings/dev.py.tmpl Thu Jul 21 11:03:14 2016 +0200 +++ b/src/iconolab/settings/dev.py.tmpl Thu Jul 21 11:05:11 2016 +0200 @@ -61,7 +61,7 @@ COMMENTS_APP = "django_comments_xtd" COMMENTS_XTD_MODEL = "iconolab.models.IconolabComment" -COMMENTS_XTD_MAX_THREAD_LEVEL = 0 +COMMENTS_XTD_MAX_THREAD_LEVEL = 100 SITE_ID = 1 diff -r 3404adb40021 -r 55214839b541 src/iconolab/templates/iconolab/detail_revision.html --- a/src/iconolab/templates/iconolab/detail_revision.html Thu Jul 21 11:03:14 2016 +0200 +++ b/src/iconolab/templates/iconolab/detail_revision.html Thu Jul 21 11:05:11 2016 +0200 @@ -39,7 +39,7 @@ {% if revision.state == 0 and user == annotation.author %} diff -r 3404adb40021 -r 55214839b541 src/iconolab/views.py --- a/src/iconolab/views.py Thu Jul 21 11:03:14 2016 +0200 +++ b/src/iconolab/views.py Thu Jul 21 11:05:11 2016 +0200 @@ -6,6 +6,7 @@ from django.views.generic.base import ContextMixin from django.views.decorators.csrf import csrf_protect from django.views.decorators.http import require_POST +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.urlresolvers import reverse from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.contrib.contenttypes.models import ContentType @@ -200,6 +201,19 @@ context['image'] = image context['annotation'] = annotation context['tags_data'] = annotation.current_revision.get_tags_json() + + page = request.GET.get("page", 1) + per_page = request.GET.get("perpage", 10) + full_comments_list = IconolabComment.objects.for_app_models("iconolab.annotation").filter(object_pk = annotation.pk).order_by("thread_id", "-order") + paginator = Paginator(full_comments_list, per_page) + try: + comments_list = paginator.page(page) + except PageNotAnInteger: + comments_list = paginator.page(1) + except EmptyPage: + comments_list = paginator.page(paginator.num_pages) + context["comments"] = comments_list + return render(request, 'iconolab/detail_annotation.html', context)