Commit 956cd5b1de57f0b03da6b25de66cf62a2d67122f
Committed by
Antonio Terceiro
1 parent
941acfdc
Exists in
master
and in
23 other branches
ActionItem1218: allowing admin change portal folder
Showing
2 changed files
with
30 additions
and
2 deletions
Show diff stats
app/controllers/admin/admin_panel_controller.rb
| ... | ... | @@ -22,8 +22,11 @@ class AdminPanelController < AdminController |
| 22 | 22 | if request.post? |
| 23 | 23 | portal_community = env.communities.find_by_identifier(params[:portal_community_identifier]) |
| 24 | 24 | if portal_community |
| 25 | - env.portal_community = portal_community | |
| 26 | - env.save | |
| 25 | + if (env.portal_community != portal_community) | |
| 26 | + env.portal_community = portal_community | |
| 27 | + env.portal_folders = [] | |
| 28 | + env.save | |
| 29 | + end | |
| 27 | 30 | redirect_to :action => 'set_portal_folders' |
| 28 | 31 | else |
| 29 | 32 | flash[:notice] = __('Community not found. You must insert the identifier of a community from this environment') | ... | ... |
test/functional/admin_panel_controller_test.rb
| ... | ... | @@ -121,6 +121,31 @@ class AdminPanelControllerTest < Test::Unit::TestCase |
| 121 | 121 | assert_equal c, e.portal_community |
| 122 | 122 | end |
| 123 | 123 | |
| 124 | + should 'change portal_community and list new portal folders as options' do | |
| 125 | + env = Environment.default | |
| 126 | + old = Community.create!(:name => 'old_portal') | |
| 127 | + env.portal_community = old | |
| 128 | + local = Folder.create!(:profile => old, :name => 'local news') | |
| 129 | + tech = Folder.create!(:profile => old, :name => 'tech news') | |
| 130 | + env.portal_folders = [local, tech] | |
| 131 | + env.save! | |
| 132 | + | |
| 133 | + new = Community.create!(:name => 'new_portal') | |
| 134 | + politics = Folder.create!(:profile => new, :name => 'politics news') | |
| 135 | + | |
| 136 | + post :set_portal_community, :portal_community_identifier => new.identifier | |
| 137 | + | |
| 138 | + follow_redirect! | |
| 139 | + assert_tag :tag => 'div', :attributes => {:id => 'available-folders'}, :descendant => {:tag => 'option', :attributes => {:value => politics.id}, :content => politics.name} | |
| 140 | + end | |
| 141 | + | |
| 142 | + [local, tech].each do |folder| | |
| 143 | + assert_no_tag :tag => 'div', :attributes => {:id => 'available-folders'}, :descendant => {:tag => 'option', :attributes => {:value => folder.id}, :content => folder.name} | |
| 144 | + end | |
| 145 | + | |
| 146 | + end | |
| 147 | + | |
| 148 | + | |
| 124 | 149 | should 'redirect to set portal folders' do |
| 125 | 150 | e = Environment.default |
| 126 | 151 | @controller.stubs(:environment).returns(e) | ... | ... |