Commit 8c0361183a793ffd84d5f684bf85fa72d218f32c
Exists in
master
and in
28 other branches
Merge remote-tracking branch 'participa/AI2914-main_block_options' into next
Showing
5 changed files
with
50 additions
and
16 deletions
Show diff stats
app/models/block.rb
| @@ -40,7 +40,7 @@ class Block < ActiveRecord::Base | @@ -40,7 +40,7 @@ class Block < ActiveRecord::Base | ||
| 40 | if context[:article] | 40 | if context[:article] |
| 41 | return context[:article] != owner.home_page | 41 | return context[:article] != owner.home_page |
| 42 | else | 42 | else |
| 43 | - return context[:request_path] != '/' + owner.identifier | 43 | + return context[:request_path] != '/' + (owner.kind_of?(Profile) ? owner.identifier : '') |
| 44 | end | 44 | end |
| 45 | end | 45 | end |
| 46 | end | 46 | end |
| @@ -153,4 +153,19 @@ class Block < ActiveRecord::Base | @@ -153,4 +153,19 @@ class Block < ActiveRecord::Base | ||
| 153 | } | 153 | } |
| 154 | end | 154 | end |
| 155 | 155 | ||
| 156 | + DISPLAY_OPTIONS = { | ||
| 157 | + 'always' => __('In all pages'), | ||
| 158 | + 'home_page_only' => __('Only in the homepage'), | ||
| 159 | + 'except_home_page' => __('In all pages, except in the homepage'), | ||
| 160 | + 'never' => __('Don\'t display'), | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + def display_options | ||
| 164 | + DISPLAY_OPTIONS.keys | ||
| 165 | + end | ||
| 166 | + | ||
| 167 | + def display_option_label(option) | ||
| 168 | + DISPLAY_OPTIONS[option] | ||
| 169 | + end | ||
| 170 | + | ||
| 156 | end | 171 | end |
app/models/main_block.rb
| @@ -17,11 +17,15 @@ class MainBlock < Block | @@ -17,11 +17,15 @@ class MainBlock < Block | ||
| 17 | end | 17 | end |
| 18 | 18 | ||
| 19 | def editable? | 19 | def editable? |
| 20 | - false | 20 | + true |
| 21 | end | 21 | end |
| 22 | 22 | ||
| 23 | def cacheable? | 23 | def cacheable? |
| 24 | - false | 24 | + false |
| 25 | + end | ||
| 26 | + | ||
| 27 | + def display_options | ||
| 28 | + ['always', 'except_home_page'] | ||
| 25 | end | 29 | end |
| 26 | 30 | ||
| 27 | end | 31 | end |
app/views/box_organizer/edit.rhtml
| @@ -9,17 +9,11 @@ | @@ -9,17 +9,11 @@ | ||
| 9 | 9 | ||
| 10 | <%= labelled_form_field _('Display this block:'), '' %> | 10 | <%= labelled_form_field _('Display this block:'), '' %> |
| 11 | <div style='margin-left: 10px'> | 11 | <div style='margin-left: 10px'> |
| 12 | - <%= radio_button(:block, :display, 'always') %> | ||
| 13 | - <%= label_tag('block_display_always', _('In all pages')) %> | ||
| 14 | - <br/> | ||
| 15 | - <%= radio_button(:block, :display, 'home_page_only') %> | ||
| 16 | - <%= label_tag('block_display_home_page_only', _('Only in the homepage')) %> | ||
| 17 | - <br/> | ||
| 18 | - <%= radio_button(:block, :display, 'except_home_page') %> | ||
| 19 | - <%= label_tag('block_display_except_home_page', _('In all pages, except in the homepage')) %> | ||
| 20 | - <br/> | ||
| 21 | - <%= radio_button(:block, :display, 'never') %> | ||
| 22 | - <%= label_tag('block_display_never', _("Don't display")) %> | 12 | + <% @block.display_options.each do |option| %> |
| 13 | + <%= radio_button(:block, :display, option) %> | ||
| 14 | + <%= label_tag("block_display_#{option}", _(@block.display_option_label(option))) %> | ||
| 15 | + <br/> | ||
| 16 | + <% end %> | ||
| 23 | </div> | 17 | </div> |
| 24 | 18 | ||
| 25 | <%= labelled_form_field(_('Show for:'), select(:block, :language, [ [ _('all languages'), 'all']] + environment.locales.map {|key, value| [value, key]} )) %> | 19 | <%= labelled_form_field(_('Show for:'), select(:block, :language, [ [ _('all languages'), 'all']] + environment.locales.map {|key, value| [value, key]} )) %> |
test/functional/profile_design_controller_test.rb
| @@ -300,6 +300,27 @@ class ProfileDesignControllerTest < ActionController::TestCase | @@ -300,6 +300,27 @@ class ProfileDesignControllerTest < ActionController::TestCase | ||
| 300 | assert !@controller.instance_variable_get('@side_block_types').include?(CustomBlock8) | 300 | assert !@controller.instance_variable_get('@side_block_types').include?(CustomBlock8) |
| 301 | end | 301 | end |
| 302 | 302 | ||
| 303 | + should 'not edit main block with never option' do | ||
| 304 | + get :edit, :profile => 'designtestuser', :id => @b4.id | ||
| 305 | + assert_no_tag :input, :attributes => { :type => 'radio', :value => 'never'} | ||
| 306 | + end | ||
| 307 | + | ||
| 308 | + should 'not edit main block with home_page_only option' do | ||
| 309 | + get :edit, :profile => 'designtestuser', :id => @b4.id | ||
| 310 | + assert_no_tag :input, :attributes => { :type => 'radio', :value => 'home_page_only'} | ||
| 311 | + end | ||
| 312 | + | ||
| 313 | + should 'edit main block with always option' do | ||
| 314 | + get :edit, :profile => 'designtestuser', :id => @b4.id | ||
| 315 | + assert_tag :input, :attributes => { :type => 'radio', :value => 'always'} | ||
| 316 | + end | ||
| 317 | + | ||
| 318 | + should 'edit main block with except_home_page option' do | ||
| 319 | + get :edit, :profile => 'designtestuser', :id => @b4.id | ||
| 320 | + assert_tag :input, :attributes => { :type => 'radio', :value => 'except_home_page'} | ||
| 321 | + end | ||
| 322 | + | ||
| 323 | + | ||
| 303 | ###################################################### | 324 | ###################################################### |
| 304 | # END - tests for BoxOrganizerController features | 325 | # END - tests for BoxOrganizerController features |
| 305 | ###################################################### | 326 | ###################################################### |
test/unit/main_block_test.rb
| @@ -11,8 +11,8 @@ class MainBlockTest < ActiveSupport::TestCase | @@ -11,8 +11,8 @@ class MainBlockTest < ActiveSupport::TestCase | ||
| 11 | ok("MainBlock must not have a content") { MainBlock.new.content.blank? } | 11 | ok("MainBlock must not have a content") { MainBlock.new.content.blank? } |
| 12 | end | 12 | end |
| 13 | 13 | ||
| 14 | - should 'not be editable' do | ||
| 15 | - assert !MainBlock.new.editable? | 14 | + should 'be editable' do |
| 15 | + assert MainBlock.new.editable? | ||
| 16 | end | 16 | end |
| 17 | 17 | ||
| 18 | end | 18 | end |