Commit 18be95f3409d7ac0240ea2d833a2ac9b9a64da9f

Authored by AntonioTerceiro
1 parent 5d4345c4

r216@sede: terceiro | 2007-07-28 10:55:21 -0300

ActionItem7: integrating comatose_admin in the application. Awesome! :)
 


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@220 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/views/content_viewer/view_page.rhtml
  1 +<h1><%= @page.title %></h2>
  2 +
1 <%= @page.to_html %> 3 <%= @page.to_html %>
config/environment.rb
@@ -54,3 +54,13 @@ end @@ -54,3 +54,13 @@ end
54 54
55 require 'gettext/rails' 55 require 'gettext/rails'
56 Tag.hierarchical = true 56 Tag.hierarchical = true
  57 +
  58 +Comatose.configure do |config|
  59 + config.admin_get_root_page do
  60 + Comatose::Page.find_by_path(request.parameters[:profile])
  61 + end
  62 + config.admin_authorization do |config|
  63 + Profile.exists?(:identifier => request.parameters[:profile])
  64 + # FIXME: also check permissions
  65 + end
  66 +end
config/routes.rb
@@ -13,22 +13,25 @@ ActionController::Routing::Routes.draw do |map| @@ -13,22 +13,25 @@ ActionController::Routing::Routes.draw do |map|
13 # -- just remember to delete public/index.html. 13 # -- just remember to delete public/index.html.
14 map.connect '', :controller => "home" 14 map.connect '', :controller => "home"
15 15
  16 + # documentation browser
  17 + map.connect 'doc', :controller => 'doc'
  18 +
16 # user account controller 19 # user account controller
17 map.connect 'account/:action', :controller => 'account' 20 map.connect 'account/:action', :controller => 'account'
18 - map.connect 'doc', :controller => 'doc' 21 +
  22 + # TODO: profile customization for profiles
  23 + # map.connect 'customize/:profile/:controller/:action/:id'
  24 +
  25 + # content administration
  26 + map.comatose_admin 'cms/:profile'
19 27
20 # administrative tasks for a virtual community 28 # administrative tasks for a virtual community
21 map.connect 'admin/:controller/:action/:id' 29 map.connect 'admin/:controller/:action/:id'
22 30
23 - # profile customization for profiles  
24 - map.connect 'customize/:profile/:controller/:action/:id'  
25 -  
26 - # content viewwing: 31 + # content viewing:
27 map.connect ':profile/*page', :controller => 'content_viewer', :action => 'view_page' 32 map.connect ':profile/*page', :controller => 'content_viewer', :action => 'view_page'
28 33
29 - # Install the default route as the lowest priority.  
30 - map.connect ':controller/:action/:id'  
31 -  
32 - # TODO: comatose here 34 + # no default route
  35 + # map.connect ':controller/:action/:id'
33 36
34 end 37 end
test/integration/routing_test.rb
@@ -2,19 +2,36 @@ require &quot;#{File.dirname(__FILE__)}/../test_helper&quot; @@ -2,19 +2,36 @@ require &quot;#{File.dirname(__FILE__)}/../test_helper&quot;
2 2
3 class RoutingTest < ActionController::IntegrationTest 3 class RoutingTest < ActionController::IntegrationTest
4 4
5 - def test_features_controller  
6 - assert_routing('/admin/features', :controller => 'features', :action => 'index') 5 + def test_homepage
  6 + assert_routing('/', :controller => 'home', :action => 'index')
  7 + end
  8 +
  9 + def test_doc_controller
  10 + #FIXME: assert_routing cannot find controllers in plugins'
  11 + flunk 'FIXME: assert_routing cannot find controllers in plugins'
  12 + assert_routing('/doc', :controller => 'doc', :action => 'index')
7 end 13 end
8 14
9 def test_account_controller 15 def test_account_controller
10 assert_routing('/account', :controller => 'account', :action => 'index') 16 assert_routing('/account', :controller => 'account', :action => 'index')
11 end 17 end
12 18
13 - def test_content_viewer_controller_for_profile_root  
14 - assert_routing('/ze', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => []) 19 + def test_comatose_admin
  20 + #FIXME: assert_routing cannot find controllers in plugins'
  21 + flunk 'FIXME: assert_routing cannot find controllers in plugins'
  22 + assert_routing('/cms/ze', :controller => 'comatose_admin')
  23 + end
  24 +
  25 + def test_features_controller
  26 + assert_routing('/admin/features', :controller => 'features', :action => 'index')
15 end 27 end
16 28
17 - def test_content_viewer_controller_for_page_inside_profile 29 + def test_content_viewer
  30 +
  31 + # profile root:
  32 + assert_routing('/ze', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => [])
  33 +
  34 + # some non-root page
18 assert_routing('/ze/work/2007', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => ['work', "2007"]) 35 assert_routing('/ze/work/2007', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => ['work', "2007"])
19 end 36 end
20 37