diff --git a/forum/models.py b/forum/models.py index abe9206..07cf60a 100644 --- a/forum/models.py +++ b/forum/models.py @@ -67,4 +67,13 @@ class PostAnswer(models.Model): app_label ='forum' def __str__(self): - return ''.join([self.user.name, " / ", str(self.answer_date)]) \ No newline at end of file + return ''.join([self.user.name, " / ", str(self.answer_date)]) + + def is_modified(self): + create = self.answer_date.strftime("%Y-%m-%d %H:%M:%S") + edit = self.modification_date.strftime("%Y-%m-%d %H:%M:%S") + + if create != edit: + return True + + return False \ No newline at end of file diff --git a/forum/static/js/forum.js b/forum/static/js/forum.js index ee794a6..c21ba63 100644 --- a/forum/static/js/forum.js +++ b/forum/static/js/forum.js @@ -246,6 +246,10 @@ function load_more_posts(pageNum, numberPages, url) { $("#loading_posts").hide(); $("#posts_list").append(data); + }, + error: function(data) { + console.log(data); + console.log('Error'); } }); }, 1000) @@ -356,3 +360,35 @@ function delete_answer(url, answer, message) { }); } +/* +* +* Function to load more answers of a post +* +*/ +function load_more_answers(post_id, pageNum, numberPages, url) { + // Remove button from the template + $("#post_"+post_id).find(".load_more_answers").remove(); + + // Check if page is equal to the number of pages + if (pageNum == numberPages) { + return false + } + + pageNum += 1; + + // Show loader + $("#post_"+post_id).find(".loading_answers").show(); + + // Configure the url we're about to hit + setTimeout(function (){ + $.ajax({ + url: url, + data: {'page_answer': pageNum}, + success: function(data) { + $("#post_"+post_id).find(".loading_answers").hide(); + + $("#post_"+post_id).find(".answer_list").append(data); + } + }); + }, 1000) +}; \ No newline at end of file diff --git a/forum/templates/post/post_list.html b/forum/templates/post/post_list.html index 0934969..020c576 100644 --- a/forum/templates/post/post_list.html +++ b/forum/templates/post/post_list.html @@ -39,6 +39,11 @@
{{ answer.answer_date|timesince }} {% trans 'ago' %} - {% if answer.answer_date != answer.modifiction_date %} + {% if answer.is_modified %} - {% trans 'Edited' %} {% endif %}
@@ -35,4 +35,10 @@{{ answer.answer_date|timesince }} {% trans 'ago' %} - {% if answer.answer_date != answer.modifiction_date %} + {% if answer.is_modified %} - {% trans 'Edited' %} {% endif %}
diff --git a/forum/templatetags/list_post.py b/forum/templatetags/list_post.py index 06fe36d..4442100 100644 --- a/forum/templatetags/list_post.py +++ b/forum/templatetags/list_post.py @@ -1,6 +1,7 @@ from django import template from django.core.paginator import Paginator, EmptyPage +from django.http import Http404 from forum.models import Post @@ -18,7 +19,7 @@ def list_posts(request, forum): posts = Post.objects.filter(forum = forum).order_by('post_date') - paginator = Paginator(posts, 1) + paginator = Paginator(posts, 2) try: page_number = int(request.GET.get('page', 1)) diff --git a/forum/templatetags/list_post_answer.py b/forum/templatetags/list_post_answer.py index e50b1a0..24527de 100644 --- a/forum/templatetags/list_post_answer.py +++ b/forum/templatetags/list_post_answer.py @@ -1,5 +1,8 @@ from django import template +from django.core.paginator import Paginator, EmptyPage +from django.http import Http404 + from forum.models import PostAnswer register = template.Library() @@ -14,6 +17,24 @@ def list_post_answer(request, post): 'request': request, } - context['answers'] = PostAnswer.objects.filter(post = post) + answers = PostAnswer.objects.filter(post = post) + + paginator = Paginator(answers, 2) + + try: + page_number = int(request.GET.get('page_answer', 1)) + except ValueError: + raise Http404 + + try: + page_obj = paginator.page(page_number) + except EmptyPage: + raise Http404 + + context['paginator'] = paginator + context['page_obj'] = page_obj + + context['answers'] = page_obj.object_list + context['post'] = post return context \ No newline at end of file diff --git a/forum/urls.py b/forum/urls.py index b3fa00f..e9c0fc0 100644 --- a/forum/urls.py +++ b/forum/urls.py @@ -17,6 +17,7 @@ urlpatterns = [ url(r'^delete_post/(?P