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