diff --git a/app/models/post.rb b/app/models/post.rb index 39a700cc9..85c43e173 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -433,7 +433,7 @@ class Post < ActiveRecord::Base def filter_metatags(tags) @pre_metatags, tags = tags.partition {|x| x =~ /\A(?:rating|parent):/i} - @post_metatags, tags = tags.partition {|x| x =~ /\A(?:-pool|pool|newpool|fav):/i} + @post_metatags, tags = tags.partition {|x| x =~ /\A(?:-pool|pool|newpool|fav|child):/i} apply_pre_metatags return tags end @@ -468,6 +468,11 @@ class Post < ActiveRecord::Base when /^fav:(.+)$/i add_favorite!(CurrentUser.user) + + when /^child:(.+)$/i + child = Post.find($1) + child.parent_id = id + child.save end end end diff --git a/test/unit/post_test.rb b/test/unit/post_test.rb index 82632e836..af774490b 100644 --- a/test/unit/post_test.rb +++ b/test/unit/post_test.rb @@ -576,6 +576,20 @@ class PostTest < ActiveSupport::TestCase assert_equal("fav:#{@user.id}", @post.fav_string) end end + + context "for a child" do + setup do + @child = FactoryGirl.create(:post) + end + + should "update the parent relationships for both posts" do + @post.update_attributes(:tag_string => "aaa child:#{@child.id}") + @post.reload + @child.reload + assert_equal(@post.id, @child.parent_id) + assert(@post.has_children?) + end + end end context "tagged with a negated tag" do