diff --git a/app/controllers/recurring_item_ranges_controller.rb b/app/controllers/recurring_item_ranges_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..ca95114444a3045adb828818853494f27a1c79e7 --- /dev/null +++ b/app/controllers/recurring_item_ranges_controller.rb @@ -0,0 +1,51 @@ +class RecurringItemRangesController < ApplicationController + def index + list + render :action => 'list' + end + + # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html) + verify :method => :post, :only => [ :destroy, :create, :update ], + :redirect_to => { :action => :list } + + def list + @recurring_item_range_pages, @recurring_item_ranges = paginate :recurring_item_ranges, :per_page => 10 + end + + def show + @recurring_item_range = RecurringItemRange.find(params[:id]) + end + + def new + @recurring_item_range = RecurringItemRange.new + end + + def create + @recurring_item_range = RecurringItemRange.new(params[:recurring_item_range]) + if @recurring_item_range.save + flash[:notice] = 'RecurringItemRange was successfully created.' + redirect_to :action => 'list' + else + render :action => 'new' + end + end + + def edit + @recurring_item_range = RecurringItemRange.find(params[:id]) + end + + def update + @recurring_item_range = RecurringItemRange.find(params[:id]) + if @recurring_item_range.update_attributes(params[:recurring_item_range]) + flash[:notice] = 'RecurringItemRange was successfully updated.' + redirect_to :action => 'show', :id => @recurring_item_range + else + render :action => 'edit' + end + end + + def destroy + RecurringItemRange.find(params[:id]).destroy + redirect_to :action => 'list' + end +end diff --git a/app/helpers/recurring_item_ranges_helper.rb b/app/helpers/recurring_item_ranges_helper.rb new file mode 100644 index 0000000000000000000000000000000000000000..ca99ad92fb1c766b73f2ce7f2c9844296eb27a43 --- /dev/null +++ b/app/helpers/recurring_item_ranges_helper.rb @@ -0,0 +1,2 @@ +module RecurringItemRangesHelper +end diff --git a/app/views/layouts/recurring_item_ranges.rhtml b/app/views/layouts/recurring_item_ranges.rhtml new file mode 100644 index 0000000000000000000000000000000000000000..29a7d635a2a8b84e316baa34d9cc100c208e6e52 --- /dev/null +++ b/app/views/layouts/recurring_item_ranges.rhtml @@ -0,0 +1,13 @@ +<html> +<head> + <title>RecurringItemRanges: <%= controller.action_name %></title> + <%= stylesheet_link_tag 'scaffold' %> +</head> +<body> + +<p style="color: green"><%= flash[:notice] %></p> + +<%= @content_for_layout %> + +</body> +</html> diff --git a/app/views/recurring_item_ranges/_form.rhtml b/app/views/recurring_item_ranges/_form.rhtml new file mode 100644 index 0000000000000000000000000000000000000000..3216fc43e92c8b46c693be32e9425478c74bbc25 --- /dev/null +++ b/app/views/recurring_item_ranges/_form.rhtml @@ -0,0 +1,13 @@ +<%= error_messages_for 'recurring_item_range' %> + +<!--[form:recurring_item_range]--> +<p><label for="recurring_item_range_amount">Amount</label><br/> +<%= text_field 'recurring_item_range', 'amount' %></p> + +<p><label for="recurring_item_range_startdate">Startdate</label><br/> +<%= date_select 'recurring_item_range', 'startdate' %></p> + +<p><label for="recurring_item_range_enddate">Enddate</label><br/> +<%= date_select 'recurring_item_range', 'enddate' %></p> +<!--[eoform:recurring_item_range]--> + diff --git a/app/views/recurring_item_ranges/edit.rhtml b/app/views/recurring_item_ranges/edit.rhtml new file mode 100644 index 0000000000000000000000000000000000000000..190f8ede9c02031584f558b904504e4c21934a19 --- /dev/null +++ b/app/views/recurring_item_ranges/edit.rhtml @@ -0,0 +1,9 @@ +<h1>Editing recurring_item_range</h1> + +<%= start_form_tag :action => 'update', :id => @recurring_item_range %> + <%= render :partial => 'form' %> + <%= submit_tag 'Edit' %> +<%= end_form_tag %> + +<%= link_to 'Show', :action => 'show', :id => @recurring_item_range %> | +<%= link_to 'Back', :action => 'list' %> diff --git a/app/views/recurring_item_ranges/list.rhtml b/app/views/recurring_item_ranges/list.rhtml new file mode 100644 index 0000000000000000000000000000000000000000..d04e43eee8d802927dee61404fbca3f91fc4e2c3 --- /dev/null +++ b/app/views/recurring_item_ranges/list.rhtml @@ -0,0 +1,27 @@ +<h1>Listing recurring_item_ranges</h1> + +<table> + <tr> + <% for column in RecurringItemRange.content_columns %> + <th><%= column.human_name %></th> + <% end %> + </tr> + +<% for recurring_item_range in @recurring_item_ranges %> + <tr> + <% for column in RecurringItemRange.content_columns %> + <td><%=h recurring_item_range.send(column.name) %></td> + <% end %> + <td><%= link_to 'Show', :action => 'show', :id => recurring_item_range %></td> + <td><%= link_to 'Edit', :action => 'edit', :id => recurring_item_range %></td> + <td><%= link_to 'Destroy', { :action => 'destroy', :id => recurring_item_range }, :confirm => 'Are you sure?', :post => true %></td> + </tr> +<% end %> +</table> + +<%= link_to 'Previous page', { :page => @recurring_item_range_pages.current.previous } if @recurring_item_range_pages.current.previous %> +<%= link_to 'Next page', { :page => @recurring_item_range_pages.current.next } if @recurring_item_range_pages.current.next %> + +<br /> + +<%= link_to 'New recurring_item_range', :action => 'new' %> diff --git a/app/views/recurring_item_ranges/new.rhtml b/app/views/recurring_item_ranges/new.rhtml new file mode 100644 index 0000000000000000000000000000000000000000..ed65b311732034d849dc0a1e286e64ce269a67d6 --- /dev/null +++ b/app/views/recurring_item_ranges/new.rhtml @@ -0,0 +1,8 @@ +<h1>New recurring_item_range</h1> + +<%= start_form_tag :action => 'create' %> + <%= render :partial => 'form' %> + <%= submit_tag "Create" %> +<%= end_form_tag %> + +<%= link_to 'Back', :action => 'list' %> diff --git a/app/views/recurring_item_ranges/show.rhtml b/app/views/recurring_item_ranges/show.rhtml new file mode 100644 index 0000000000000000000000000000000000000000..da34abffb54ec6950bf40350f5b071cc92f8cd05 --- /dev/null +++ b/app/views/recurring_item_ranges/show.rhtml @@ -0,0 +1,8 @@ +<% for column in RecurringItemRange.content_columns %> +<p> + <b><%= column.human_name %>:</b> <%=h @recurring_item_range.send(column.name) %> +</p> +<% end %> + +<%= link_to 'Edit', :action => 'edit', :id => @recurring_item_range %> | +<%= link_to 'Back', :action => 'list' %> diff --git a/test/functional/recurring_item_ranges_controller_test.rb b/test/functional/recurring_item_ranges_controller_test.rb new file mode 100644 index 0000000000000000000000000000000000000000..c058002749814401f8f8c1864e2cba1c2e30fe9a --- /dev/null +++ b/test/functional/recurring_item_ranges_controller_test.rb @@ -0,0 +1,88 @@ +require File.dirname(__FILE__) + '/../test_helper' +require 'recurring_item_ranges_controller' + +# Re-raise errors caught by the controller. +class RecurringItemRangesController; def rescue_action(e) raise e end; end + +class RecurringItemRangesControllerTest < Test::Unit::TestCase + fixtures :recurring_item_ranges + + def setup + @controller = RecurringItemRangesController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + end + + def test_index + get :index + assert_response :success + assert_template 'list' + end + + def test_list + get :list + + assert_response :success + assert_template 'list' + + assert_not_nil assigns(:recurring_item_ranges) + end + + def test_show + get :show, :id => 1 + + assert_response :success + assert_template 'show' + + assert_not_nil assigns(:recurring_item_range) + assert assigns(:recurring_item_range).valid? + end + + def test_new + get :new + + assert_response :success + assert_template 'new' + + assert_not_nil assigns(:recurring_item_range) + end + + def test_create + num_recurring_item_ranges = RecurringItemRange.count + + post :create, :recurring_item_range => {} + + assert_response :redirect + assert_redirected_to :action => 'list' + + assert_equal num_recurring_item_ranges + 1, RecurringItemRange.count + end + + def test_edit + get :edit, :id => 1 + + assert_response :success + assert_template 'edit' + + assert_not_nil assigns(:recurring_item_range) + assert assigns(:recurring_item_range).valid? + end + + def test_update + post :update, :id => 1 + assert_response :redirect + assert_redirected_to :action => 'show', :id => 1 + end + + def test_destroy + assert_not_nil RecurringItemRange.find(1) + + post :destroy, :id => 1 + assert_response :redirect + assert_redirected_to :action => 'list' + + assert_raise(ActiveRecord::RecordNotFound) { + RecurringItemRange.find(1) + } + end +end