12345678910111213141516171819202122232425262728293031323334353637383940 |
- from django.utils.translation import ugettext as _
- from misago.forums.models import Forum
- from misago.threads.permissions import (allow_use_private_threads,
- exclude_invisible_private_threads)
- from misago.threads.views import generic
- class PrivateThreads(generic.Threads):
- def get_queryset(self):
- threads_qs = Forum.objects.private_threads().thread_set
- return exclude_invisible_private_threads(threads_qs, self.user)
- class PrivateThreadsFiltering(generic.ThreadsFiltering):
- def get_available_filters(self):
- filters = super(PrivateThreadsFiltering, self).get_available_filters()
- if self.user.acl['can_moderate_private_threads']:
- filters.append({
- 'type': 'reported',
- 'name': _("With reported posts"),
- 'is_label': False,
- })
- return filters
- class PrivateThreadsView(generic.ThreadsView):
- link_name = 'misago:private_threads'
- template = 'misago/privatethreads/list.html'
- Threads = PrivateThreads
- Filtering = PrivateThreadsFiltering
- def dispatch(self, request, *args, **kwargs):
- allow_use_private_threads(request.user)
- return super(PrivateThreadsView, self).dispatch(
- request, *args, **kwargs)
|