fixes #442
This commit is contained in:
@@ -42,7 +42,7 @@ class ForumPostsController < ApplicationController
|
|||||||
@forum_post = ForumPost.find(params[:id])
|
@forum_post = ForumPost.find(params[:id])
|
||||||
check_privilege(@forum_post)
|
check_privilege(@forum_post)
|
||||||
@forum_post.update_attributes(params[:forum_post])
|
@forum_post.update_attributes(params[:forum_post])
|
||||||
respond_with(@forum_post, :location => forum_post_path(@forum_post))
|
respond_with(@forum_post, :location => forum_topic_path(@forum_post.topic, :page => @forum_post.forum_topic_page))
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
|
|||||||
@@ -114,6 +114,10 @@ class ForumPost < ActiveRecord::Base
|
|||||||
"[quote]\n#{creator_name} said:\n\n#{stripped_body}\n[/quote]\n\n"
|
"[quote]\n#{creator_name} said:\n\n#{stripped_body}\n[/quote]\n\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def forum_topic_page
|
||||||
|
((ForumPost.where("topic_id = ? and created_at < ?", topic_id, created_at).count + 1) / Danbooru.config.posts_per_page.to_f).ceil
|
||||||
|
end
|
||||||
|
|
||||||
def build_response
|
def build_response
|
||||||
dup.tap do |x|
|
dup.tap do |x|
|
||||||
x.body = x.quoted_response
|
x.body = x.quoted_response
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class ForumTopic < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def last_page
|
def last_page
|
||||||
(posts.count / Danbooru.config.posts_per_page.to_f).ceil
|
((posts.count + 1) / Danbooru.config.posts_per_page.to_f).ceil
|
||||||
end
|
end
|
||||||
|
|
||||||
def presenter(forum_posts)
|
def presenter(forum_posts)
|
||||||
|
|||||||
@@ -14,6 +14,23 @@ class ForumPostTest < ActiveSupport::TestCase
|
|||||||
CurrentUser.ip_addr = nil
|
CurrentUser.ip_addr = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "that belongs to a topic with several pages of posts" do
|
||||||
|
setup do
|
||||||
|
Danbooru.config.stubs(:posts_per_page).returns(3)
|
||||||
|
@posts = []
|
||||||
|
10.times do
|
||||||
|
@posts << FactoryGirl.create(:forum_post, :topic_id => @topic.id, :body => rand(100_000))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
should "know which page it's on" do
|
||||||
|
assert_equal(2, @posts[3].forum_topic_page)
|
||||||
|
assert_equal(2, @posts[4].forum_topic_page)
|
||||||
|
assert_equal(2, @posts[5].forum_topic_page)
|
||||||
|
assert_equal(3, @posts[6].forum_topic_page)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "belonging to a locked topic" do
|
context "belonging to a locked topic" do
|
||||||
setup do
|
setup do
|
||||||
@post = FactoryGirl.create(:forum_post, :topic_id => @topic.id, :body => "zzz")
|
@post = FactoryGirl.create(:forum_post, :topic_id => @topic.id, :body => "zzz")
|
||||||
|
|||||||
Reference in New Issue
Block a user