Commit 956cd5b1de57f0b03da6b25de66cf62a2d67122f

Authored by Daniela Soares Feitosa
Committed by Antonio Terceiro
1 parent 941acfdc

ActionItem1218: allowing admin change portal folder

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)
... ...