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 | 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 | ... | ... |
... | ... | @@ -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 < 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 < 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 | ... | ... |