disable versioning of posts when creating aliases/implications

This commit is contained in:
r888888888
2013-05-03 16:43:44 -07:00
parent dae4f32f50
commit c0dac889b2
5 changed files with 5 additions and 25 deletions

View File

@@ -3,7 +3,7 @@ class Post < ActiveRecord::Base
class DisapprovalError < Exception ; end class DisapprovalError < Exception ; end
class SearchError < Exception ; end class SearchError < Exception ; end
attr_accessor :old_tag_string, :old_parent_id, :has_constraints attr_accessor :old_tag_string, :old_parent_id, :has_constraints, :disable_versioning
after_destroy :delete_files after_destroy :delete_files
after_destroy :delete_remote_files after_destroy :delete_remote_files
after_save :create_version after_save :create_version
@@ -868,6 +868,8 @@ class Post < ActiveRecord::Base
module VersionMethods module VersionMethods
def create_version def create_version
return if disable_versioning
if created_at == updated_at if created_at == updated_at
CurrentUser.increment!(:post_update_count) CurrentUser.increment!(:post_update_count)
versions.create( versions.create(

View File

@@ -130,6 +130,7 @@ class TagAlias < ActiveRecord::Base
escaped_antecedent_name = Regexp.escape(antecedent_name) escaped_antecedent_name = Regexp.escape(antecedent_name)
fixed_tags = post.tag_string.sub(/(?:\A| )#{escaped_antecedent_name}(?:\Z| )/, " #{consequent_name} ").strip fixed_tags = post.tag_string.sub(/(?:\A| )#{escaped_antecedent_name}(?:\Z| )/, " #{consequent_name} ").strip
CurrentUser.scoped(creator, creator_ip_addr) do CurrentUser.scoped(creator, creator_ip_addr) do
post.disable_versioning = true
post.update_attributes( post.update_attributes(
:tag_string => fixed_tags :tag_string => fixed_tags
) )

View File

@@ -125,6 +125,7 @@ class TagImplication < ActiveRecord::Base
escaped_antecedent_name = Regexp.escape(antecedent_name) escaped_antecedent_name = Regexp.escape(antecedent_name)
fixed_tags = post.tag_string.sub(/(?:\A| )#{escaped_antecedent_name}(?:\Z| )/, " #{antecedent_name} #{descendant_names} ").strip fixed_tags = post.tag_string.sub(/(?:\A| )#{escaped_antecedent_name}(?:\Z| )/, " #{antecedent_name} #{descendant_names} ").strip
CurrentUser.scoped(creator, creator_ip_addr) do CurrentUser.scoped(creator, creator_ip_addr) do
post.disable_versioning = true
post.update_attributes( post.update_attributes(
:tag_string => fixed_tags :tag_string => fixed_tags
) )

View File

@@ -62,18 +62,6 @@ class TagAliasTest < ActiveSupport::TestCase
end end
end end
should "record the alias's creator in the tag history" do
uploader = FactoryGirl.create(:user)
post = nil
CurrentUser.scoped(uploader, "127.0.0.1") do
post = FactoryGirl.create(:post, :tag_string => "aaa bbb ccc")
end
tag_alias = FactoryGirl.create(:tag_alias, :antecedent_name => "aaa", :consequent_name => "xxx")
post.reload
assert_not_equal(tag_alias.creator_id, post.uploader_id)
assert_equal(tag_alias.creator_id, post.versions.last.updater_id)
end
should "push the antecedent's category to the consequent" do should "push the antecedent's category to the consequent" do
tag1 = FactoryGirl.create(:tag, :name => "aaa", :category => 1) tag1 = FactoryGirl.create(:tag, :name => "aaa", :category => 1)
tag2 = FactoryGirl.create(:tag, :name => "bbb") tag2 = FactoryGirl.create(:tag, :name => "bbb")

View File

@@ -107,17 +107,5 @@ class TagImplicationTest < ActiveSupport::TestCase
p1.reload p1.reload
assert_equal("aaa bbb ccc xxx yyy", p1.tag_string) assert_equal("aaa bbb ccc xxx yyy", p1.tag_string)
end end
should "record the implication's creator in the tag history" do
user = FactoryGirl.create(:user)
p1 = nil
CurrentUser.scoped(user, "127.0.0.1") do
p1 = FactoryGirl.create(:post, :tag_string => "aaa bbb ccc")
end
ti1 = FactoryGirl.create(:tag_implication, :antecedent_name => "aaa", :consequent_name => "xxx")
p1.reload
assert_not_equal(ti1.creator_id, p1.uploader_id)
assert_equal(ti1.creator_id, p1.versions.last.updater_id)
end
end end
end end