def get_redirect_url(self, **kwargs): post = get_object_or_404(Post.objects.all(), pk=self.kwargs['pk']) if not perms.may_view_post(self.request.user, post): 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_redirect_url(self, **kwargs): if not perms.may_view_post(self.request.user, self.post): raise PermissionDenied count = self.post.topic.posts.filter( created__lt=self.post.created).count() + 1 page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE)) return '%s?page=%d#post-%d' % (self.post.topic.get_absolute_url(), page, self.post.id)
def dispatch(self, request, *args, **kwargs): if request.user.is_authenticated(): self.user = request.user else: if defaults.PYBB_ENABLE_ANONYMOUS_POST: self.user, new = User.objects.get_or_create( **{username_field: defaults.PYBB_ANONYMOUS_USERNAME}) else: from django.contrib.auth.views import redirect_to_login return redirect_to_login(request.get_full_path()) self.forum = None self.topic = None if 'forum_id' in kwargs: self.forum = get_object_or_404(perms.filter_forums( request.user, Forum.objects.all()), pk=kwargs['forum_id']) if not perms.may_create_topic(self.user, self.forum): raise PermissionDenied elif 'topic_id' in kwargs: self.topic = get_object_or_404(perms.filter_topics( request.user, Topic.objects.all()), pk=kwargs['topic_id']) if not perms.may_create_post(self.user, self.topic): raise PermissionDenied self.quote = '' if 'quote_id' in request.GET: try: quote_id = int(request.GET.get('quote_id')) except TypeError: raise Http404 else: post = get_object_or_404(Post, pk=quote_id) if not perms.may_view_post(request.user, post): raise PermissionDenied profile = util.get_pybb_profile(post.user) self.quote = util._get_markup_quoter(defaults.PYBB_MARKUP)( post.body, profile.get_display_name()) if self.quote and request.is_ajax(): return HttpResponse(self.quote) return super(AddPostView, self).dispatch(request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): if request.user.is_authenticated(): self.user = request.user else: if defaults.PYBB_ENABLE_ANONYMOUS_POST: self.user, new = User.objects.get_or_create(**{username_field: defaults.PYBB_ANONYMOUS_USERNAME}) else: from django.contrib.auth.views import redirect_to_login return redirect_to_login(request.get_full_path()) self.forum = None self.topic = None if "forum_id" in kwargs: self.forum = get_object_or_404( perms.filter_forums(request.user, Forum.objects.all()), pk=kwargs["forum_id"] ) if not perms.may_create_topic(self.user, self.forum): raise PermissionDenied elif "topic_id" in kwargs: self.topic = get_object_or_404( perms.filter_topics(request.user, Topic.objects.all()), pk=kwargs["topic_id"] ) if not perms.may_create_post(self.user, self.topic): raise PermissionDenied self.quote = "" if "quote_id" in request.GET: try: quote_id = int(request.GET.get("quote_id")) except TypeError: raise Http404 else: post = get_object_or_404(Post, pk=quote_id) if not perms.may_view_post(request.user, post): raise PermissionDenied profile = util.get_pybb_profile(post.user) self.quote = util._get_markup_quoter(defaults.PYBB_MARKUP)(post.body, profile.get_display_name()) if self.quote and request.is_ajax(): return HttpResponse(self.quote) return super(AddPostView, self).dispatch(request, *args, **kwargs)
def get_redirect_url(self, **kwargs): if not perms.may_view_post(self.request.user, self.post): raise PermissionDenied count = self.post.topic.posts.filter(created__lt=self.post.created).count() + 1 page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE)) return "%s?page=%d#post-%d" % (self.post.topic.get_absolute_url(), page, self.post.id)