Commit c5c14f9a7f7bd439df37beedf36309ae263627dd

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 487f425f

ActionItem1220: admin can change nunber of news by folder

app/controllers/admin/admin_panel_controller.rb
... ... @@ -41,8 +41,17 @@ class AdminPanelController < AdminController
41 41 env.portal_folders = folders
42 42 if env.save
43 43 flash[:notice] = _('Saved the portal folders')
44   - redirect_to :action => 'index'
  44 + redirect_to :action => 'set_portal_news_amount'
45 45 end
46 46 end
47 47 end
  48 +
  49 + def set_portal_news_amount
  50 + if request.post?
  51 + if @environment.update_attributes(params[:environment])
  52 + flash[:notice] = _('Saved the number of news on folders')
  53 + redirect_to :action => 'index'
  54 + end
  55 + end
  56 + end
48 57 end
... ...
app/models/environment.rb
... ... @@ -625,6 +625,14 @@ class Environment < ActiveRecord::Base
625 625 settings[:portal_folders] = folders ? folders.map(&:id) : nil
626 626 end
627 627  
  628 + def news_amount_by_folder
  629 + (settings[:news_amount_by_folder] || 4)
  630 + end
  631 +
  632 + def news_amount_by_folder=(amount)
  633 + settings[:news_amount_by_folder] = amount.to_i
  634 + end
  635 +
628 636 def help_message_to_add_enterprise
629 637 self.settings['help_message_to_add_enterprise'] || ''
630 638 end
... ...
app/views/admin_panel/set_portal_news_amount.rhtml 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +<h1><%= _('News amount by folder') %></h1>
  2 +
  3 +<% labelled_form_for :environment, @environment do |f| %>
  4 +
  5 + <%= labelled_form_field _('Number of news'), select(:environment, :news_amount_by_folder, (1..10).to_a) %>
  6 +
  7 + <% button_bar do %>
  8 + <%= submit_button(:save, _('Save')) %>
  9 + <%= button(:cancel, _('Cancel'), :action => 'index') %>
  10 + <% end %>
  11 +
  12 +<% end %>
... ...
app/views/home/index.rhtml
... ... @@ -38,7 +38,7 @@
38 38 <% content_tag(:div, :class => ["news-area", ['even', 'odd'][i%2]].join(' ')) do %>
39 39 <h3><%= link_to folder.title, folder.url %></h3>
40 40 <ul>
41   - <% folder.news(4).each do |news| %>
  41 + <% folder.news(environment.news_amount_by_folder).each do |news| %>
42 42 <li> <%= link_to(news.title, news.url) %></li>
43 43 <% end%>
44 44 </ul>
... ...
public/stylesheets/common.css
... ... @@ -537,11 +537,10 @@ div.pending-tasks {
537 537  
538 538 .news-area {
539 539 border: 1px solid black;
540   - height: 170px;
  540 + height: auto;
541 541 width: 49%;
542 542 margin: 3px 0px;
543 543 font-size: 11px;
544   - overflow: hidden;
545 544 }
546 545  
547 546 #content .news-area h3 {
... ... @@ -552,7 +551,9 @@ div.pending-tasks {
552 551 }
553 552  
554 553 .news-area ul {
555   - padding: 2px;
  554 + padding: 5px;
  555 + height: 125px;
  556 + overflow: auto;
556 557 }
557 558  
558 559 .news-area li {
... ...
test/functional/admin_panel_controller_test.rb
... ... @@ -226,4 +226,21 @@ class AdminPanelControllerTest &lt; Test::Unit::TestCase
226 226  
227 227 assert_equal [], env.portal_folders
228 228 end
  229 +
  230 + should 'have amount of news on portal' do
  231 + env = Environment.default
  232 + env.news_amount_by_folder = 5
  233 + env.save
  234 +
  235 + get :set_portal_news_amount
  236 + assert_tag :tag => 'select', :descendant => {:tag => 'option', :attributes => {:value => 5, :selected => 'selected'}}
  237 + end
  238 +
  239 + should 'save amount of news' do
  240 + post :set_portal_news_amount, :environment => { :news_amount_by_folder => '3' }
  241 + assert_redirected_to :action => 'index'
  242 +
  243 + assert_equal 3, Environment.default.news_amount_by_folder
  244 + end
  245 +
229 246 end
... ...
test/unit/environment_test.rb
... ... @@ -786,4 +786,22 @@ class EnvironmentTest &lt; Test::Unit::TestCase
786 786 assert_equal 'tip message', env.tip_message_enterprise_activation_question
787 787 end
788 788  
  789 + should 'have amount of news on portal folders' do
  790 + e = Environment.default
  791 +
  792 + assert_respond_to e, :news_amount_by_folder
  793 +
  794 + e.news_amount_by_folder = 2
  795 + e.save!; e.reload
  796 +
  797 + assert_equal 2, e.news_amount_by_folder
  798 + end
  799 +
  800 + should 'have default amount of news on portal folders' do
  801 + e = Environment.default
  802 +
  803 + assert_respond_to e, :news_amount_by_folder
  804 +
  805 + assert_equal 4, e.news_amount_by_folder
  806 + end
789 807 end
... ...