Commit e9bde88201089e958097b22931fc7b07079af2f8
1 parent
6e70fa37
Exists in
master
and in
23 other branches
ActionItem711: enable/disable categories in environment
* remove categories from profile editor * remove categories from article editor * not display categories menu
Showing
7 changed files
with
52 additions
and
3 deletions
Show diff stats
app/helpers/application_helper.rb
| @@ -460,6 +460,7 @@ module ApplicationHelper | @@ -460,6 +460,7 @@ module ApplicationHelper | ||
| 460 | 460 | ||
| 461 | attr_reader :environment | 461 | attr_reader :environment |
| 462 | def select_categories(object_name, title=nil, title_size=4) | 462 | def select_categories(object_name, title=nil, title_size=4) |
| 463 | + return nil if environment.enabled?(:disable_categories) | ||
| 463 | if title.nil? | 464 | if title.nil? |
| 464 | title = _('Categories') | 465 | title = _('Categories') |
| 465 | end | 466 | end |
app/models/environment.rb
| @@ -29,6 +29,7 @@ class Environment < ActiveRecord::Base | @@ -29,6 +29,7 @@ class Environment < ActiveRecord::Base | ||
| 29 | 'disable_asset_products' => _('Disable search for products'), | 29 | 'disable_asset_products' => _('Disable search for products'), |
| 30 | 'disable_asset_events' => _('Disable search for events'), | 30 | 'disable_asset_events' => _('Disable search for events'), |
| 31 | 'disable_products_for_enterprises' => _('Disable products for enterprises'), | 31 | 'disable_products_for_enterprises' => _('Disable products for enterprises'), |
| 32 | + 'disable_categories' => _('Disable categories'), | ||
| 32 | } | 33 | } |
| 33 | end | 34 | end |
| 34 | 35 |
app/views/layouts/application.rhtml
| @@ -104,8 +104,10 @@ | @@ -104,8 +104,10 @@ | ||
| 104 | { :controller=>"home" }, | 104 | { :controller=>"home" }, |
| 105 | :id=>"menu_link_to_envhome", | 105 | :id=>"menu_link_to_envhome", |
| 106 | :title=>@environment.name %> | 106 | :title=>@environment.name %> |
| 107 | - <% cache(:controller => 'public', :action => 'categories_menu') do %> | ||
| 108 | - <%= render :file => 'shared/categories_menu' %> | 107 | + <% unless environment.enabled?(:disable_categories) %> |
| 108 | + <% cache(:controller => 'public', :action => 'categories_menu') do %> | ||
| 109 | + <%= render :file => 'shared/categories_menu' %> | ||
| 110 | + <% end %> | ||
| 109 | <% end %> | 111 | <% end %> |
| 110 | <%= render :file => 'shared/assets_menu' %> | 112 | <%= render :file => 'shared/assets_menu' %> |
| 111 | </div><!-- id='navigation_bar' --> | 113 | </div><!-- id='navigation_bar' --> |
test/functional/application_controller_test.rb
| @@ -305,4 +305,12 @@ class ApplicationControllerTest < Test::Unit::TestCase | @@ -305,4 +305,12 @@ class ApplicationControllerTest < Test::Unit::TestCase | ||
| 305 | assert_response :success | 305 | assert_response :success |
| 306 | end | 306 | end |
| 307 | 307 | ||
| 308 | + should 'not display categories menu if categories feature disabled' do | ||
| 309 | + Environment.any_instance.stubs(:enabled?).with(anything).returns(true) | ||
| 310 | + c1 = Environment.default.categories.create!(:name => 'Category 1', :display_color => 1, :parent => nil, :display_in_menu => true ) | ||
| 311 | + c2 = Environment.default.categories.create!(:name => 'Category 2', :display_color => nil, :parent => c1, :display_in_menu => true ) | ||
| 312 | + get :index | ||
| 313 | + assert_no_tag :tag => 'a', :content => /Category 2/ | ||
| 314 | + end | ||
| 315 | + | ||
| 308 | end | 316 | end |
test/functional/cms_controller_test.rb
| @@ -616,4 +616,18 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -616,4 +616,18 @@ class CmsControllerTest < Test::Unit::TestCase | ||
| 616 | assert_redirected_to :protocol => 'https://' | 616 | assert_redirected_to :protocol => 'https://' |
| 617 | end | 617 | end |
| 618 | 618 | ||
| 619 | + should 'display categories if environment disable_categories disabled' do | ||
| 620 | + Environment.any_instance.stubs(:enabled?).with(anything).returns(false) | ||
| 621 | + a = profile.articles.create!(:name => 'test') | ||
| 622 | + get :edit, :profile => profile.identifier, :id => a.id | ||
| 623 | + assert_tag :tag => 'div', :descendant => { :tag => 'h4', :content => 'Categorize your article' } | ||
| 624 | + end | ||
| 625 | + | ||
| 626 | + should 'not display categories if environment disable_categories enabled' do | ||
| 627 | + Environment.any_instance.stubs(:enabled?).with(anything).returns(true) | ||
| 628 | + a = profile.articles.create!(:name => 'test') | ||
| 629 | + get :edit, :profile => profile.identifier, :id => a.id | ||
| 630 | + assert_no_tag :tag => 'div', :descendant => { :tag => 'h4', :content => 'Categorize your article' } | ||
| 631 | + end | ||
| 632 | + | ||
| 619 | end | 633 | end |
test/functional/profile_editor_controller_test.rb
| @@ -236,7 +236,7 @@ class ProfileEditorControllerTest < Test::Unit::TestCase | @@ -236,7 +236,7 @@ class ProfileEditorControllerTest < Test::Unit::TestCase | ||
| 236 | should 'show edit profile button' do | 236 | should 'show edit profile button' do |
| 237 | person = create_user('testuser').person | 237 | person = create_user('testuser').person |
| 238 | get :index, :profile => 'testuser' | 238 | get :index, :profile => 'testuser' |
| 239 | - assert_tag :tag => 'a', :content => 'Edit Profile' | 239 | + assert_tag :tag => 'div', :attributes => { :class => 'file-manager-button' }, :child => { :tag => 'a', :attributes => { :href => '/myprofile/testuser/profile_editor/edit' } } |
| 240 | end | 240 | end |
| 241 | 241 | ||
| 242 | should 'show image field on edit profile' do | 242 | should 'show image field on edit profile' do |
| @@ -495,4 +495,18 @@ class ProfileEditorControllerTest < Test::Unit::TestCase | @@ -495,4 +495,18 @@ class ProfileEditorControllerTest < Test::Unit::TestCase | ||
| 495 | assert_no_tag :tag => 'span', :content => 'Manage Products and Services' | 495 | assert_no_tag :tag => 'span', :content => 'Manage Products and Services' |
| 496 | end | 496 | end |
| 497 | 497 | ||
| 498 | + should 'display categories if environment disable_categories disabled' do | ||
| 499 | + Environment.any_instance.stubs(:enabled?).with(anything).returns(false) | ||
| 500 | + person = User.create(:login => 'test_profile', :email => 'test@noosfero.org', :password => 'test', :password_confirmation => 'test').person | ||
| 501 | + get :edit, :profile => person.identifier | ||
| 502 | + assert_tag :tag => 'div', :descendant => { :tag => 'h2', :content => 'Select the categories of your interest' } | ||
| 503 | + end | ||
| 504 | + | ||
| 505 | + should 'not display categories if environment disable_categories enabled' do | ||
| 506 | + Environment.any_instance.stubs(:enabled?).with(anything).returns(true) | ||
| 507 | + person = User.create(:login => 'test_profile', :email => 'test@noosfero.org', :password => 'test', :password_confirmation => 'test').person | ||
| 508 | + get :edit, :profile => person.identifier | ||
| 509 | + assert_no_tag :tag => 'div', :descendant => { :tag => 'h2', :content => 'Select the categories of your interest' } | ||
| 510 | + end | ||
| 511 | + | ||
| 498 | end | 512 | end |
test/unit/application_helper_test.rb
| @@ -231,6 +231,15 @@ class ApplicationHelperTest < Test::Unit::TestCase | @@ -231,6 +231,15 @@ class ApplicationHelperTest < Test::Unit::TestCase | ||
| 231 | assert_equal "LALALA", login_url | 231 | assert_equal "LALALA", login_url |
| 232 | end | 232 | end |
| 233 | 233 | ||
| 234 | + should 'return nil if disable_categories is enabled' do | ||
| 235 | + env = Environment.create!(:name => 'env test') | ||
| 236 | + stubs(:environment).returns(env) | ||
| 237 | + assert_not_nil env | ||
| 238 | + env.enable(:disable_categories) | ||
| 239 | + assert env.enabled?(:disable_categories) | ||
| 240 | + assert_nil select_categories(mock) | ||
| 241 | + end | ||
| 242 | + | ||
| 234 | protected | 243 | protected |
| 235 | 244 | ||
| 236 | def content_tag(tag, content, options = {}) | 245 | def content_tag(tag, content, options = {}) |