some crud for pages, now it's time to figure out form rendering
Oleg
committed Aug 27, 2010
commit 77b1dbdf10d6b50d6f89af9538a98f6b48000b9e
Showing 8
changed files with
80 additions
and 4 deletions
app/controllers/cms_admin/layouts_controller.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsAdmin::LayoutsController < CmsAdmin::BaseController |
| before_filter :load_cms_layout, :only => [:edit, :update, :destroy] | |
| def index | |
| - | @cms_layouts = CmsLayout.all |
| + | @cms_layouts = CmsLayout |
| end | |
| def new | |
app/controllers/cms_admin/pages_controller.rb
+15
-1
| @@ | @@ -1,5 +1,19 @@ |
| class CmsAdmin::PagesController < CmsAdmin::BaseController | |
| - | # TODO |
| + | before_filter :build_cms_page, :only => [:new] |
| + | def index |
| + | @cms_pages = CmsPage |
| + | end |
| + | |
| + | def new |
| + | render |
| + | end |
| + | |
| + | protected |
| + | |
| + | def build_cms_page |
| + | @cms_page = CmsPage.new(params[:cms_page]) |
| + | end |
| + | |
| end | |
app/models/cms_page.rb
+7
-0
| @@ | @@ -4,6 +4,13 @@ class CmsPage < ActiveRecord::Base |
| belongs_to :cms_layout | |
| has_many :cms_blocks, :dependent => :destroy | |
| + | # -- Validations ---------------------------------------------------------- |
| + | validates :label, |
| + | :presence => true |
| + | validates :slug, |
| + | :presence => true, |
| + | :format => /^\w[a-z0-9_-]*$/i |
| + | |
| # -- Instance Methods ----------------------------------------------------- | |
| def render_content | |
| content = cms_layout.content.dup | |
app/views/cms_admin/layouts/index.html.erb
+1
-1
| @@ | @@ -1,3 +1,3 @@ |
| <h1>Layouts</h1> | |
| - | <%= debug @cms_layouts %> |
| \ No newline at end of file | |
| + | <%= debug @cms_layouts.all %> |
| \ No newline at end of file | |
app/views/cms_admin/pages/_form.html.erb
+2
-0
| @@ | @@ -0,0 +1,2 @@ |
| + | <%= form.text_field :label %> |
| + | <%= form.text_field :slug %> |
| \ No newline at end of file | |
app/views/cms_admin/pages/index.html.erb
+3
-0
| @@ | @@ -0,0 +1,3 @@ |
| + | <h1>Pages</h1> |
| + | |
| + | <%= debug @cms_pages.all %> |
| \ No newline at end of file | |
app/views/cms_admin/pages/new.html.erb
+6
-0
| @@ | @@ -0,0 +1,6 @@ |
| + | <h1> New Page </h1> |
| + | |
| + | <%= form_for @cms_page, :url => {:action => :create} do |form| %> |
| + | <%= render :partial => form %> |
| + | <%= form.submit 'Create Page' %> |
| + | <% end %> |
| \ No newline at end of file | |
test/functional/cms_admin/pages_controller_test.rb
+45
-1
| @@ | @@ -2,7 +2,51 @@ require File.dirname(__FILE__) + '/../../test_helper' |
| class CmsAdmin::PagesControllerTest < ActionController::TestCase | |
| - | def test_something |
| + | def test_get_index |
| + | get :index |
| + | assert_response :success |
| + | assert assigns(:cms_pages) |
| + | assert_template :index |
| + | end |
| + | |
| + | def test_get_new |
| + | get :new |
| + | assert_response :success |
| + | assert assigns(:cms_page) |
| + | assert_template :new |
| + | assert_select 'form[action=/cms_admin/pages]' |
| + | end |
| + | |
| + | def test_get_edit |
| + | flunk |
| + | end |
| + | |
| + | def test_get_edit_failure |
| + | flunk |
| + | end |
| + | |
| + | def test_creation |
| + | assert_difference 'CmsPage.count' do |
| + | post :create, :cms_page => { |
| + | :label => 'New Page' |
| + | } |
| + | end |
| + | flunk |
| + | end |
| + | |
| + | def test_creation_failure |
| + | flunk |
| + | end |
| + | |
| + | def test_update |
| + | flunk |
| + | end |
| + | |
| + | def test_update_failure |
| + | flunk |
| + | end |
| + | |
| + | def test_destroy |
| flunk | |
| end | |