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,8 +17,11 @@ class ContentViewerController < PublicController
17 @page = profile.articles.find_by_path(path) 17 @page = profile.articles.find_by_path(path)
18 18
19 # do not show unpublished articles 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 if @page.nil? 25 if @page.nil?
23 render_not_found(@path) 26 render_not_found(@path)
24 return 27 return
app/views/cms/edit.rhtml
@@ -21,6 +21,14 @@ @@ -21,6 +21,14 @@
21 <%= f.text_field('tag_list', :size => 64) %> 21 <%= f.text_field('tag_list', :size => 64) %>
22 <%= content_tag( 'small', _('Separate tags with commas') ) %> 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 <% button_bar do %> 32 <% button_bar do %>
25 <%= submit_button :save, _('Save') %> 33 <%= submit_button :save, _('Save') %>
26 <% if @parent_id || @article.parent %> 34 <% if @parent_id || @article.parent %>
test/functional/cms_controller_test.rb
@@ -416,4 +416,17 @@ class CmsControllerTest &lt; Test::Unit::TestCase @@ -416,4 +416,17 @@ class CmsControllerTest &lt; Test::Unit::TestCase
416 assert_tag :tag => 'a', :attributes => { :rel => 'deactivate'} # lightbox close button 416 assert_tag :tag => 'a', :attributes => { :rel => 'deactivate'} # lightbox close button
417 end 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 end 432 end
test/functional/content_viewer_controller_test.rb
@@ -247,6 +247,12 @@ class ContentViewerControllerTest &lt; Test::Unit::TestCase @@ -247,6 +247,12 @@ class ContentViewerControllerTest &lt; Test::Unit::TestCase
247 assert_response 200 247 assert_response 200
248 end 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 should 'show unpublished articles as unexisting' do 256 should 'show unpublished articles as unexisting' do
251 profile.articles.create!(:name => 'test', :published => false) 257 profile.articles.create!(:name => 'test', :published => false)
252 get :view_page, :profile => profile.identifier, :page => [ 'test' ] 258 get :view_page, :profile => profile.identifier, :page => [ 'test' ]