diff --git a/app/controllers/public/home_controller.rb b/app/controllers/public/home_controller.rb index 746eb14..615bb8d 100644 --- a/app/controllers/public/home_controller.rb +++ b/app/controllers/public/home_controller.rb @@ -2,13 +2,13 @@ class HomeController < PublicController def index @has_news = false - if environment.enabled?('use_portal_community') && environment.portal_community + if environment.portal_enabled @has_news = true @news_cache_key = environment.portal_news_cache_key(FastGettext.locale) if !read_fragment(@news_cache_key) portal_community = environment.portal_community - @highlighted_news = portal_community.news(2, true) - @portal_news = portal_community.news(7, true) - @highlighted_news + @highlighted_news = portal_community.news(environment.highlighted_news_amount, true) + @portal_news = portal_community.news(environment.portal_news_amount, true).offset(environment.highlighted_news_amount) @area_news = environment.portal_folders end end diff --git a/app/models/environment.rb b/app/models/environment.rb index 573e249..e49fb4e 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -3,7 +3,7 @@ # domains. class Environment < ActiveRecord::Base - attr_accessible :name, :is_default, :signup_welcome_text_subject, :signup_welcome_text_body, :terms_of_use, :message_for_disabled_enterprise, :news_amount_by_folder, :default_language, :languages, :description, :organization_approval_method, :enabled_plugins, :enabled_features, :redirection_after_login, :redirection_after_signup, :contact_email, :theme, :reports_lower_bound, :noreply_email, :signup_welcome_screen_body, :members_whitelist_enabled, :members_whitelist + attr_accessible :name, :is_default, :signup_welcome_text_subject, :signup_welcome_text_body, :terms_of_use, :message_for_disabled_enterprise, :news_amount_by_folder, :default_language, :languages, :description, :organization_approval_method, :enabled_plugins, :enabled_features, :redirection_after_login, :redirection_after_signup, :contact_email, :theme, :reports_lower_bound, :noreply_email, :signup_welcome_screen_body, :members_whitelist_enabled, :members_whitelist, :highlighted_news_amount, :portal_news_amount has_many :users @@ -268,6 +268,8 @@ class Environment < ActiveRecord::Base settings_items :description, :type => String, :default => '
Noosfero
' settings_items :local_docs, :type => Array, :default => [] settings_items :news_amount_by_folder, :type => Integer, :default => 4 + settings_items :highlighted_news_amount, :type => Integer, :default => 2 + settings_items :portal_news_amount, :type => Integer, :default => 5 settings_items :help_message_to_add_enterprise, :type => String, :default => '' settings_items :tip_message_enterprise_activation_question, :type => String, :default => '' diff --git a/app/views/admin_panel/set_portal_community.html.erb b/app/views/admin_panel/set_portal_community.html.erb index 03dd6f2..df1cc17 100644 --- a/app/views/admin_panel/set_portal_community.html.erb +++ b/app/views/admin_panel/set_portal_community.html.erb @@ -18,7 +18,7 @@ <%= button 'ok', _('Enable'), {:action => 'manage_portal_community', :activate => 1} %> <% end %> <%= button 'folder', _('Select Portal Folders'), {:action => 'set_portal_folders'} %> - <%= button 'edit', _('Define Amount by Folder'), {:action => 'set_portal_news_amount'} %> + <%= button 'edit', _('Define news amount on portal'), {:action => 'set_portal_news_amount'} %> <%= button 'delete', _('Remove'), { :action => 'unset_portal_community'} %> <% end %> <% end %> diff --git a/app/views/admin_panel/set_portal_news_amount.html.erb b/app/views/admin_panel/set_portal_news_amount.html.erb index a6c5957..9358fce 100644 --- a/app/views/admin_panel/set_portal_news_amount.html.erb +++ b/app/views/admin_panel/set_portal_news_amount.html.erb @@ -1,8 +1,10 @@ -

<%= _('News amount by folder') %>

+

<%= _('News amount on portal') %>

<%= labelled_form_for :environment do |f| %> - <%= labelled_form_field _('Number of news'), select(:environment, :news_amount_by_folder, (1..10).to_a) %> + <%= labelled_form_field _('Number of highlighted news'), select(:environment, :highlighted_news_amount, (0..10).to_a) %> + <%= labelled_form_field _('Number of portal news'), select(:environment, :portal_news_amount, (0..10).to_a) %> + <%= labelled_form_field _('Number of news by folder'), select(:environment, :news_amount_by_folder, (1..10).to_a) %> <% button_bar do %> <%= submit_button(:save, _('Save')) %> diff --git a/test/functional/admin_panel_controller_test.rb b/test/functional/admin_panel_controller_test.rb index 756c896..a451e48 100644 --- a/test/functional/admin_panel_controller_test.rb +++ b/test/functional/admin_panel_controller_test.rb @@ -334,10 +334,12 @@ class AdminPanelControllerTest < ActionController::TestCase end should 'save amount of news' do - post :set_portal_news_amount, :environment => { :news_amount_by_folder => '3' } + post :set_portal_news_amount, :environment => { :news_amount_by_folder => '3', :highlighted_news_amount => '2', :portal_news_amount => '5' } assert_redirected_to :action => 'index' assert_equal 3, Environment.default.news_amount_by_folder + assert_equal 2, Environment.default.highlighted_news_amount + assert_equal 5, Environment.default.portal_news_amount end should 'display plugins links' do diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index d8df1c6..aec65d8 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -1056,6 +1056,30 @@ class EnvironmentTest < ActiveSupport::TestCase assert_equal 4, e.news_amount_by_folder end + should 'have amount of highlighted news' do + e = Environment.default + + assert_respond_to e, :highlighted_news_amount + + assert_equal 2, e.highlighted_news_amount + e.highlighted_news_amount = 4 + e.save! + + assert_equal 4, Environment.default.highlighted_news_amount + end + + should 'have amount of portal news' do + e = Environment.default + + assert_respond_to e, :portal_news_amount + + assert_equal 5, e.portal_news_amount + e.portal_news_amount = 2 + e.save! + + assert_equal 2, Environment.default.portal_news_amount + end + should 'list tags with their counts' do person = fast_create(Person) person.articles.create!(:name => 'article 1', :tag_list => 'first-tag') -- libgit2 0.21.2