Commit 956cd5b1de57f0b03da6b25de66cf62a2d67122f
Committed by
Antonio Terceiro
1 parent
941acfdc
Exists in
master
and in
29 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) | ... | ... |