def get_redirect_url(self, **kwargs): post = get_object_or_404(Post, pk=self.kwargs['pk']) if not pybb_topic_moderated_by(post.topic, self.request.user): raise PermissionDenied post.on_moderation = False post.save() return post.get_absolute_url()
def get_object(self, queryset=None): post = get_object_or_404(Post.objects.select_related('topic', 'topic__forum'), pk=self.kwargs['pk']) self.topic = post.topic self.forum = post.topic.forum if not pybb_topic_moderated_by(self.topic, self.request.user): raise PermissionDenied return post
def get_queryset(self): self.topic = get_object_or_404(Topic.objects.select_related('forum'), pk=self.kwargs['pk']) if self.topic.on_moderation and\ not pybb_topic_moderated_by(self.topic, self.request.user) and\ not self.request.user == self.topic.user: raise PermissionDenied if (self.topic.forum.hidden or self.topic.forum.category.hidden) and (not self.request.user.is_staff): raise Http404() self.topic.views += 1 self.topic.save() qs = self.topic.posts.all().select_related('user') if not pybb_topic_moderated_by(self.topic, self.request.user): if self.request.user.is_authenticated(): qs = qs.filter(Q(user=self.request.user)|Q(on_moderation=False)) else: qs = qs.filter(on_moderation=False) return qs
def get_redirect_url(self, **kwargs): post = get_object_or_404(Post, pk=self.kwargs['pk']) if defaults.PYBB_PREMODERATION and\ post.on_moderation and\ (not pybb_topic_moderated_by(post.topic, self.request.user)) and\ (not post.user==self.request.user): raise PermissionDenied count = post.topic.posts.filter(created__lt=post.created).count() + 1 page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE)) return '%s?page=%d#post-%d' % (reverse('pybb:topic', args=[post.topic.id]), page, post.id)
def get_topic(self): topic = get_object_or_404(Topic, pk=self.kwargs['pk']) if not pybb_topic_moderated_by(topic, self.request.user): raise PermissionDenied return topic