mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-23 23:58:31 -05:00
If you rename a category, also rename the category definition topic.
This commit is contained in:
parent
75f6b43e62
commit
ffa84d9bb4
2 changed files with 16 additions and 0 deletions
|
@ -32,6 +32,7 @@ class Category < ActiveRecord::Base
|
||||||
after_create :create_category_definition
|
after_create :create_category_definition
|
||||||
after_create :publish_categories_list
|
after_create :publish_categories_list
|
||||||
after_destroy :publish_categories_list
|
after_destroy :publish_categories_list
|
||||||
|
after_update :rename_category_definition, if: :name_changed?
|
||||||
|
|
||||||
has_one :category_search_data
|
has_one :category_search_data
|
||||||
belongs_to :parent_category, class_name: 'Category'
|
belongs_to :parent_category, class_name: 'Category'
|
||||||
|
@ -331,6 +332,15 @@ SQL
|
||||||
url << "/#{parent_category.slug}" if parent_category_id
|
url << "/#{parent_category.slug}" if parent_category_id
|
||||||
url << "/#{slug}"
|
url << "/#{slug}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# If the name changes, try and update the category definition topic too if it's
|
||||||
|
# an exact match
|
||||||
|
def rename_category_definition
|
||||||
|
old_name = changed_attributes["name"]
|
||||||
|
if topic.title == I18n.t("category.topic_prefix", category: old_name)
|
||||||
|
topic.update_column(:title, I18n.t("category.topic_prefix", category: name))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# == Schema Information
|
# == Schema Information
|
||||||
|
|
|
@ -220,6 +220,12 @@ describe Category do
|
||||||
@category.topics_year.should == 0
|
@category.topics_year.should == 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "renames the definition when renamed" do
|
||||||
|
@category.update_attributes(name: 'Troutfishing')
|
||||||
|
@topic.reload
|
||||||
|
@topic.title.should =~ /Troutfishing/
|
||||||
|
end
|
||||||
|
|
||||||
it "should not set its description topic to auto-close" do
|
it "should not set its description topic to auto-close" do
|
||||||
category = Fabricate(:category, name: 'Closing Topics', auto_close_hours: 1)
|
category = Fabricate(:category, name: 'Closing Topics', auto_close_hours: 1)
|
||||||
category.topic.auto_close_at.should be_nil
|
category.topic.auto_close_at.should be_nil
|
||||||
|
|
Loading…
Reference in a new issue