Rafał Pitoń 10 лет назад
Родитель
Сommit
6402874653

+ 9 - 0
misago/templates/misago/thread/events.html

@@ -0,0 +1,9 @@
+{% load i18n %}
+<ul class="list-unstyled post-events">
+  {% for event in post.events %}
+  <li class="event">
+    <span class="fa fa-{{ event.icon }} fa-fw fa-lg"></span>
+    {{ event.message|safe }}
+  </li>
+  {% endfor %}
+</ul>

+ 3 - 0
misago/templates/misago/thread/post.html

@@ -52,4 +52,7 @@
       </div>
     </div>
   </div>
+  {% if post.events %}
+  {% include "misago/thread/events.html" %}
+  {% endif %}
 </div>

+ 2 - 2
misago/threads/events.py

@@ -67,8 +67,8 @@ def real_add_events_to_posts(user, thread, posts, delimeter=None):
         events_queryset = events_queryset.filter(occured_on__lt=delimeter)
     events_queryset = events_queryset.order_by('id')
 
-    acl = user.acl['forums'].get(thread.forum_id, {'can_hide_events': False})
-    if not acl['can_hide_events']:
+    acl = user.acl['forums'].get(thread.forum_id, {})
+    if not acl.get('can_hide_events'):
         events_queryset = events_queryset.filter(is_hidden=False)
 
     events = [e for e in events_queryset]

+ 1 - 1
misago/threads/paginator.py

@@ -39,6 +39,6 @@ def paginate(object_list, page, per_page, orphans=0):
     try:
         return Paginator(
             object_list, per_page, orphans=orphans,
-            allow_empty_first_page=allow_empty_first_page).page(page)
+            allow_empty_first_page=False).page(page)
     except EmptyPage:
         raise Http404()

+ 8 - 1
misago/threads/views/generic/thread.py

@@ -2,11 +2,12 @@ from django.db.models import Q
 from django.shortcuts import redirect
 
 from misago.acl import add_acl
-from misago.core.shortcuts import paginate
 from misago.forums.lists import get_forum_path
 from misago.readtracker import threadstracker
 from misago.users.online.utils import get_user_state
 
+from misago.threads.events import add_events_to_posts
+from misago.threads.paginator import paginate
 from misago.threads.views.generic.base import ViewBase
 
 
@@ -31,6 +32,12 @@ class ThreadView(ViewBase):
                 post.poster.online_state = poster_state
             posts.append(post)
 
+        if page.next_page_first_item:
+            add_events_to_posts(
+                user, thread, posts, page.next_page_first_item.posted_on)
+        else:
+            add_events_to_posts(user, thread, posts)
+
         return page, posts
 
     def get_posts_queryset(self, user, forum, thread):