noosfero | 2 new commits pushed to repository

Antonio Terceiro gitlab at gitlab.com
Fri Feb 13 14:45:37 BRST 2015


Antonio Terceiro pushed to refs/heads/master at <a href="https://gitlab.com/noosfero/noosfero">Noosfero / noosfero</a>

Commits:
<a href="https://gitlab.com/noosfero/noosfero/commit/e645e6a1ee226c6f0eb1afe583ae4237f64606b0">e645e6a1</a> by Daniela Feitosa
Allow admins to define the number of news on portal

- - - - -
<a href="https://gitlab.com/noosfero/noosfero/commit/efed6b836732e1ab14069c9e4f1b170c1b014e61">efed6b83</a> by Antonio Terceiro
Merge branch 'portal_news_config' into 'master'

Allow admins to define the number of news on portal

See merge request !470

- - - - -


Changes:

=====================================
app/controllers/public/home_controller.rb
=====================================
--- 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

=====================================
app/models/environment.rb
=====================================
--- 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 => '<div style="text-align: center"><a href="http://noosfero.org/"><img src="/images/noosfero-network.png" alt="Noosfero"/></a></div>'
   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 => ''
 

=====================================
app/views/admin_panel/set_portal_community.html.erb
=====================================
--- 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 %>

=====================================
app/views/admin_panel/set_portal_news_amount.html.erb
=====================================
--- 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 @@
-<h1><%= _('News amount by folder') %></h1>
+<h1><%= _('News amount on portal') %></h1>
 
 <%= 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')) %>

=====================================
test/functional/admin_panel_controller_test.rb
=====================================
--- 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

=====================================
test/unit/environment_test.rb
=====================================
--- 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')

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150213/7ad6af77/attachment-0001.html>


More information about the Noosfero-dev mailing list