|
@@ -4,13 +4,13 @@ from misago.acl import add_acl
|
|
from misago.core.shortcuts import paginate, pagination_dict
|
|
from misago.core.shortcuts import paginate, pagination_dict
|
|
from misago.readtracker import threadstracker
|
|
from misago.readtracker import threadstracker
|
|
from misago.threads.permissions import exclude_invisible_threads
|
|
from misago.threads.permissions import exclude_invisible_threads
|
|
-from misago.threads.threadtypes import trees_map
|
|
|
|
|
|
+from misago.threads.serializers import PostFeedSerializer
|
|
from misago.threads.subscriptions import make_subscription_aware
|
|
from misago.threads.subscriptions import make_subscription_aware
|
|
|
|
+from misago.threads.threadtypes import trees_map
|
|
from misago.threads.utils import add_categories_to_items, add_likes_to_posts
|
|
from misago.threads.utils import add_categories_to_items, add_likes_to_posts
|
|
from misago.threads.viewmodels import ThreadsRootCategory
|
|
from misago.threads.viewmodels import ThreadsRootCategory
|
|
-from misago.users.online.utils import make_users_status_aware
|
|
|
|
|
|
|
|
-from ..serializers.userfeed import UserFeedSerializer
|
|
|
|
|
|
+from ..online.utils import make_users_status_aware
|
|
|
|
|
|
|
|
|
|
class UserThreads(object):
|
|
class UserThreads(object):
|
|
@@ -20,13 +20,14 @@ class UserThreads(object):
|
|
|
|
|
|
threads_queryset = self.get_threads_queryset(
|
|
threads_queryset = self.get_threads_queryset(
|
|
request, threads_categories, profile)
|
|
request, threads_categories, profile)
|
|
|
|
+
|
|
posts_queryset = self.get_posts_queryset(
|
|
posts_queryset = self.get_posts_queryset(
|
|
request.user, profile, threads_queryset
|
|
request.user, profile, threads_queryset
|
|
- ).filter(
|
|
|
|
- is_event=False,
|
|
|
|
- is_hidden=False,
|
|
|
|
- is_unapproved=False
|
|
|
|
- ).order_by('-pk')
|
|
|
|
|
|
+ ).filter(
|
|
|
|
+ is_event=False,
|
|
|
|
+ is_hidden=False,
|
|
|
|
+ is_unapproved=False
|
|
|
|
+ ).order_by('-id')
|
|
|
|
|
|
list_page = paginate(
|
|
list_page = paginate(
|
|
posts_queryset, page, settings.MISAGO_POSTS_PER_PAGE, settings.MISAGO_POSTS_TAIL)
|
|
posts_queryset, page, settings.MISAGO_POSTS_PER_PAGE, settings.MISAGO_POSTS_TAIL)
|
|
@@ -43,8 +44,7 @@ class UserThreads(object):
|
|
if post.poster:
|
|
if post.poster:
|
|
posters.append(post.poster)
|
|
posters.append(post.poster)
|
|
|
|
|
|
- add_categories_to_items(
|
|
|
|
- root_category.unwrap(), threads_categories, posts + threads)
|
|
|
|
|
|
+ add_categories_to_items(root_category.unwrap(), threads_categories, posts + threads)
|
|
|
|
|
|
add_acl(request.user, threads)
|
|
add_acl(request.user, threads)
|
|
add_acl(request.user, posts)
|
|
add_acl(request.user, posts)
|
|
@@ -63,17 +63,16 @@ class UserThreads(object):
|
|
self.paginator = paginator
|
|
self.paginator = paginator
|
|
|
|
|
|
def get_threads_queryset(self, request, threads_categories, profile):
|
|
def get_threads_queryset(self, request, threads_categories, profile):
|
|
- return exclude_invisible_threads(
|
|
|
|
- request.user, threads_categories, profile.thread_set)
|
|
|
|
|
|
+ return exclude_invisible_threads(request.user, threads_categories, profile.thread_set)
|
|
|
|
|
|
def get_posts_queryset(self, user, profile, threads_queryset):
|
|
def get_posts_queryset(self, user, profile, threads_queryset):
|
|
- return profile.post_set.select_related('thread').filter(
|
|
|
|
|
|
+ return profile.post_set.select_related('thread', 'poster').filter(
|
|
id__in=threads_queryset.values('first_post_id')
|
|
id__in=threads_queryset.values('first_post_id')
|
|
)
|
|
)
|
|
|
|
|
|
def get_frontend_context(self):
|
|
def get_frontend_context(self):
|
|
context = {
|
|
context = {
|
|
- 'results': UserFeedSerializer(self.posts, many=True, context={'user': self._user}).data
|
|
|
|
|
|
+ 'results': PostFeedSerializer(self.posts, many=True, context={'user': self._user}).data
|
|
}
|
|
}
|
|
|
|
|
|
context.update(self.paginator)
|
|
context.update(self.paginator)
|