Commit 3f3fdf2f8735ac097f3b6460f4e6df67be688dfc

Authored by AntonioTerceiro
1 parent 45f72756

ActionItem389: not showing unpublished articles



git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1870 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/public/content_viewer_controller.rb
... ... @@ -17,8 +17,11 @@ class ContentViewerController < PublicController
17 17 @page = profile.articles.find_by_path(path)
18 18  
19 19 # do not show unpublished articles
20   - @page = nil unless @page.published
  20 + if @page && !@page.published
  21 + @page = nil
  22 + end
21 23  
  24 + # page not found, give error
22 25 if @page.nil?
23 26 render_not_found(@path)
24 27 return
... ...
app/views/cms/edit.rhtml
... ... @@ -21,6 +21,14 @@
21 21 <%= f.text_field('tag_list', :size => 64) %>
22 22 <%= content_tag( 'small', _('Separate tags with commas') ) %>
23 23  
  24 + <div id='edit-article-options'>
  25 + <h4><%= _('Options') %></h4>
  26 + <div>
  27 + <%= check_box :article, :published %>
  28 + <label for='article_published'><%= _('Published')%></label>
  29 + </div>
  30 + </div>
  31 +
24 32 <% button_bar do %>
25 33 <%= submit_button :save, _('Save') %>
26 34 <% if @parent_id || @article.parent %>
... ...
test/functional/cms_controller_test.rb
... ... @@ -416,4 +416,17 @@ class CmsControllerTest &lt; Test::Unit::TestCase
416 416 assert_tag :tag => 'a', :attributes => { :rel => 'deactivate'} # lightbox close button
417 417 end
418 418  
  419 + should 'display published option' do
  420 + get :edit, :profile => profile.identifier, :id => profile.home_page.id
  421 + assert_tag :tag => 'input', :attributes => { :type => 'checkbox', :name => 'article[published]', :checked => 'checked' }
  422 + end
  423 +
  424 + should "display properly a non-published articles' status" do
  425 + article = profile.articles.create!(:name => 'test', :published => false)
  426 +
  427 + get :edit, :profile => profile.identifier, :id => article.id
  428 + assert_tag :tag => 'input', :attributes => { :type => 'checkbox', :name => 'article[published]' }
  429 + assert_no_tag :tag => 'input', :attributes => { :type => 'checkbox', :name => 'article[published]', :checked => 'checked' }
  430 + end
  431 +
419 432 end
... ...
test/functional/content_viewer_controller_test.rb
... ... @@ -247,6 +247,12 @@ class ContentViewerControllerTest &lt; Test::Unit::TestCase
247 247 assert_response 200
248 248 end
249 249  
  250 + should 'give 404 status on unexisting article' do
  251 + profile.articles.delete_all
  252 + get :view_page, :profile => profile.identifier, :page => [ 'VERY-UNPROBABLE-PAGE' ]
  253 + assert_response 404
  254 + end
  255 +
250 256 should 'show unpublished articles as unexisting' do
251 257 profile.articles.create!(:name => 'test', :published => false)
252 258 get :view_page, :profile => profile.identifier, :page => [ 'test' ]
... ...