Commit 8c0361183a793ffd84d5f684bf85fa72d218f32c
Exists in
staging
and in
42 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 | 40 | if context[:article] |
| 41 | 41 | return context[:article] != owner.home_page |
| 42 | 42 | else |
| 43 | - return context[:request_path] != '/' + owner.identifier | |
| 43 | + return context[:request_path] != '/' + (owner.kind_of?(Profile) ? owner.identifier : '') | |
| 44 | 44 | end |
| 45 | 45 | end |
| 46 | 46 | end |
| ... | ... | @@ -153,4 +153,19 @@ class Block < ActiveRecord::Base |
| 153 | 153 | } |
| 154 | 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 | 171 | end | ... | ... |
app/models/main_block.rb
app/views/box_organizer/edit.rhtml
| ... | ... | @@ -9,17 +9,11 @@ |
| 9 | 9 | |
| 10 | 10 | <%= labelled_form_field _('Display this block:'), '' %> |
| 11 | 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 | 17 | </div> |
| 24 | 18 | |
| 25 | 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 | 300 | assert !@controller.instance_variable_get('@side_block_types').include?(CustomBlock8) |
| 301 | 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 | 325 | # END - tests for BoxOrganizerController features |
| 305 | 326 | ###################################################### | ... | ... |
test/unit/main_block_test.rb
| ... | ... | @@ -11,8 +11,8 @@ class MainBlockTest < ActiveSupport::TestCase |
| 11 | 11 | ok("MainBlock must not have a content") { MainBlock.new.content.blank? } |
| 12 | 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 | 16 | end |
| 17 | 17 | |
| 18 | 18 | end | ... | ... |