diff --git a/app/models/enabled_module.rb b/app/models/enabled_module.rb index 1cc84aa..b8a9727 100644 --- a/app/models/enabled_module.rb +++ b/app/models/enabled_module.rb @@ -29,6 +29,11 @@ class EnabledModule < ActiveRecord::Base # after_create callback used to do things when a module is enabled def module_enabled case name + when 'boards' + # Create general discussion board + if project && project.boards.none? + Board.create(:project => project, :name => l(:label_general), :description => l(:label_general_discussion)) + end when 'wiki' # Create a wiki with a default start page if project && project.wiki.nil? diff --git a/config/locales/de.yml b/config/locales/de.yml index a4600fd..5a309c3 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -544,6 +544,7 @@ de: label_gantt: Gantt-Diagramm label_gantt_progress_line: Fortschrittslinie label_general: Allgemein + label_general_discussion: Diskussion über allgemeine Themen label_generate_key: Generieren label_git_report_last_commit: Bericht des letzten Commits für Dateien und Verzeichnisse label_greater_or_equal: ">=" diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 47f6e4f..900fac8 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -757,6 +757,7 @@ en-GB: label_age: Age label_change_properties: Change properties label_general: General + label_general_discussion: Discussion about general topics label_more: More label_scm: SCM label_plugins: Plugins diff --git a/config/locales/en.yml b/config/locales/en.yml index fdc2d9b..ba12282 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -826,6 +826,7 @@ en: label_age: Age label_change_properties: Change properties label_general: General + label_general_discussion: Discussion about general topics label_more: More label_scm: SCM label_plugins: Plugins diff --git a/config/locales/fr.yml b/config/locales/fr.yml index ff225e7..69acea0 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -846,6 +846,7 @@ fr: label_age: Âge label_change_properties: Changer les propriétés label_general: Général + label_general_discussion: Discussion générale label_more: Plus label_scm: SCM label_plugins: Plugins diff --git a/test/unit/enabled_module_test.rb b/test/unit/enabled_module_test.rb index b4c7ace..2246db4 100644 --- a/test/unit/enabled_module_test.rb +++ b/test/unit/enabled_module_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class EnabledModuleTest < ActiveSupport::TestCase - fixtures :projects, :wikis + fixtures :projects, :wikis, :boards def test_enabling_wiki_should_create_a_wiki CustomField.delete_all @@ -40,4 +40,28 @@ class EnabledModuleTest < ActiveSupport::TestCase end assert_not_nil project.wiki end + + def test_creating_a_project_with_board_modules_should_create_a_new_board + project = Project.create!(:name => 'Project with boards', :identifier => 'boardsproject', :enabled_module_names => ['boards']) + assert_equal 1, project.boards.count + assert_equal 'General', project.boards.first.name + end + + def test_enabling_boards_should_create_a_new_board + project = Project.create!(:name => 'Project with boards', :identifier => 'boardsproject', :enabled_module_names => []) + assert_equal 0, project.boards.count + assert_difference 'project.boards.count', +1 do + project.enabled_module_names = ['boards'] + end + assert_equal 'General', project.boards.first.name + end + + def test_reenabling_boards_should_not_create_another_board + project = Project.find(1) + assert project.boards.count > 0 + project.enabled_module_names = [] + assert_no_difference 'project.boards.count' do + project.enabled_module_names = ['boards'] + end + end end