Commit bda47639d057b51c75a6b0f10eb8ad5b0890c528
1 parent
5b115b7a
Exists in
web_steps_improvements
and in
8 other branches
fixes type for admin panel organizations list
Signed-off-by: Alexandre Barbosa <alexandreab@live.com> Signed-off-by: ArthurJahn <stutrzbecher@gmail.com> Signed-off-by: Marcos Ronaldo <marcos.rpj2@gmail.com>
Showing
3 changed files
with
36 additions
and
2 deletions
Show diff stats
app/controllers/admin/organizations_controller.rb
@@ -7,7 +7,11 @@ class OrganizationsController < AdminController | @@ -7,7 +7,11 @@ class OrganizationsController < AdminController | ||
7 | @title = _('Organization profiles') | 7 | @title = _('Organization profiles') |
8 | @type = params[:type] || "any" | 8 | @type = params[:type] || "any" |
9 | @types_filter = [[_('All'), 'any'], [_('Community'), 'Community'], [_('Enterprise'), 'Enterprise']] | 9 | @types_filter = [[_('All'), 'any'], [_('Community'), 'Community'], [_('Enterprise'), 'Enterprise']] |
10 | - @types_filter = @types_filter | @plugins.dispatch(:organization_types_filter_options) | 10 | + @plugins.dispatch_without_flatten(:organization_types_filter_options).each do |plugin_response| |
11 | + @types_filter = @types_filter | plugin_response | ||
12 | + end | ||
13 | + @types_hash = {} | ||
14 | + @types_filter.each{|list| @types_hash[list.last] = list.first} | ||
11 | 15 | ||
12 | scope = @plugins.dispatch_first(:filter_manage_organization_scope, @type) | 16 | scope = @plugins.dispatch_first(:filter_manage_organization_scope, @type) |
13 | if scope.blank? | 17 | if scope.blank? |
app/views/organizations/_results.html.erb
test/functional/organizations_controller_test.rb
@@ -79,6 +79,36 @@ class OrganizationsControllerTest < ActionController::TestCase | @@ -79,6 +79,36 @@ class OrganizationsControllerTest < ActionController::TestCase | ||
79 | assert_match(/Community Test/, @response.body) | 79 | assert_match(/Community Test/, @response.body) |
80 | end | 80 | end |
81 | 81 | ||
82 | + should 'show custom organization type filter through hotspot' do | ||
83 | + fast_create(Community, :environment_id => Environment.default, :name=>"Community Test") | ||
84 | + | ||
85 | + class GreatPlugin < Noosfero::Plugin | ||
86 | + def organization_types_filter_options | ||
87 | + [['TotallyDifferentName','GreatPlugin::GreatOrganization']] | ||
88 | + end | ||
89 | + end | ||
90 | + | ||
91 | + class GreatPlugin::GreatOrganization < Organization | ||
92 | + end | ||
93 | + | ||
94 | + Noosfero::Plugin.stubs(:all).returns(['OrganizationsControllerTest::GreatPlugin']) | ||
95 | + environment.enable_plugin(GreatPlugin) | ||
96 | + | ||
97 | + GreatPlugin::GreatOrganization.create!(:name => 'Great', :identifier=>'great') | ||
98 | + | ||
99 | + get :index, :type => 'any' | ||
100 | + | ||
101 | + assert_tag :option, :attributes => {:value=> 'GreatPlugin::GreatOrganization'}, :content => 'TotallyDifferentName' | ||
102 | + | ||
103 | + assert_match(/Great/, @response.body) | ||
104 | + assert_match(/Community Test/, @response.body) | ||
105 | + | ||
106 | + get :index, :type => 'GreatPlugin::GreatOrganization' | ||
107 | + | ||
108 | + assert_match(/Great/, @response.body) | ||
109 | + assert_no_match(/Community Test/, @response.body) | ||
110 | + end | ||
111 | + | ||
82 | should 'activate organization profile' do | 112 | should 'activate organization profile' do |
83 | organization = fast_create(Organization, :visible => false, :environment_id => environment.id) | 113 | organization = fast_create(Organization, :visible => false, :environment_id => environment.id) |
84 | refute organization.visible? | 114 | refute organization.visible? |