Commit c5c14f9a7f7bd439df37beedf36309ae263627dd
Committed by
Antonio Terceiro
1 parent
487f425f
Exists in
master
and in
29 other branches
ActionItem1220: admin can change nunber of news by folder
Showing
7 changed files
with
70 additions
and
5 deletions
Show diff stats
app/controllers/admin/admin_panel_controller.rb
@@ -41,8 +41,17 @@ class AdminPanelController < AdminController | @@ -41,8 +41,17 @@ class AdminPanelController < AdminController | ||
41 | env.portal_folders = folders | 41 | env.portal_folders = folders |
42 | if env.save | 42 | if env.save |
43 | flash[:notice] = _('Saved the portal folders') | 43 | flash[:notice] = _('Saved the portal folders') |
44 | - redirect_to :action => 'index' | 44 | + redirect_to :action => 'set_portal_news_amount' |
45 | end | 45 | end |
46 | end | 46 | end |
47 | end | 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 | end | 57 | end |
app/models/environment.rb
@@ -625,6 +625,14 @@ class Environment < ActiveRecord::Base | @@ -625,6 +625,14 @@ class Environment < ActiveRecord::Base | ||
625 | settings[:portal_folders] = folders ? folders.map(&:id) : nil | 625 | settings[:portal_folders] = folders ? folders.map(&:id) : nil |
626 | end | 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 | def help_message_to_add_enterprise | 636 | def help_message_to_add_enterprise |
629 | self.settings['help_message_to_add_enterprise'] || '' | 637 | self.settings['help_message_to_add_enterprise'] || '' |
630 | end | 638 | end |
@@ -0,0 +1,12 @@ | @@ -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,7 +38,7 @@ | ||
38 | <% content_tag(:div, :class => ["news-area", ['even', 'odd'][i%2]].join(' ')) do %> | 38 | <% content_tag(:div, :class => ["news-area", ['even', 'odd'][i%2]].join(' ')) do %> |
39 | <h3><%= link_to folder.title, folder.url %></h3> | 39 | <h3><%= link_to folder.title, folder.url %></h3> |
40 | <ul> | 40 | <ul> |
41 | - <% folder.news(4).each do |news| %> | 41 | + <% folder.news(environment.news_amount_by_folder).each do |news| %> |
42 | <li> <%= link_to(news.title, news.url) %></li> | 42 | <li> <%= link_to(news.title, news.url) %></li> |
43 | <% end%> | 43 | <% end%> |
44 | </ul> | 44 | </ul> |
public/stylesheets/common.css
@@ -537,11 +537,10 @@ div.pending-tasks { | @@ -537,11 +537,10 @@ div.pending-tasks { | ||
537 | 537 | ||
538 | .news-area { | 538 | .news-area { |
539 | border: 1px solid black; | 539 | border: 1px solid black; |
540 | - height: 170px; | 540 | + height: auto; |
541 | width: 49%; | 541 | width: 49%; |
542 | margin: 3px 0px; | 542 | margin: 3px 0px; |
543 | font-size: 11px; | 543 | font-size: 11px; |
544 | - overflow: hidden; | ||
545 | } | 544 | } |
546 | 545 | ||
547 | #content .news-area h3 { | 546 | #content .news-area h3 { |
@@ -552,7 +551,9 @@ div.pending-tasks { | @@ -552,7 +551,9 @@ div.pending-tasks { | ||
552 | } | 551 | } |
553 | 552 | ||
554 | .news-area ul { | 553 | .news-area ul { |
555 | - padding: 2px; | 554 | + padding: 5px; |
555 | + height: 125px; | ||
556 | + overflow: auto; | ||
556 | } | 557 | } |
557 | 558 | ||
558 | .news-area li { | 559 | .news-area li { |
test/functional/admin_panel_controller_test.rb
@@ -226,4 +226,21 @@ class AdminPanelControllerTest < Test::Unit::TestCase | @@ -226,4 +226,21 @@ class AdminPanelControllerTest < Test::Unit::TestCase | ||
226 | 226 | ||
227 | assert_equal [], env.portal_folders | 227 | assert_equal [], env.portal_folders |
228 | end | 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 | end | 246 | end |
test/unit/environment_test.rb
@@ -786,4 +786,22 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -786,4 +786,22 @@ class EnvironmentTest < Test::Unit::TestCase | ||
786 | assert_equal 'tip message', env.tip_message_enterprise_activation_question | 786 | assert_equal 'tip message', env.tip_message_enterprise_activation_question |
787 | end | 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 | end | 807 | end |