<%= @app_name %>::<%= @admin_name %>.controllers :<%= @orm.name_plural %> do

get :index do
  @title = "<%= @orm.name_plural.capitalize %>"
  @<%= @orm.name_plural %> = <%= @orm.all %>
  render '<%= @orm.name_plural %>/index'
end

get :new do
  @title = pat(:new_title, :model => '<%= @orm.name_singular %>')
  @<%= @orm.name_singular %> = <%= @orm.build %>
  render '<%= @orm.name_plural %>/new'
end

post :create do
  @<%= @orm.name_singular %> = <%= @orm.build("params[:#{@orm.name_param}]") %>
  if <%= @orm.save %>
    @title = pat(:create_title, :model => "<%= @orm.name_singular %> #{@<%= @orm.name_singular %>.id}")
    flash[:success] = pat(:create_success, :model => '<%= @orm.klass_name %>')
    params[:save_and_continue] ? redirect(url(:<%= @orm.name_plural %>, :index)) : redirect(url(:<%= @orm.name_plural %>, :edit, :id => @<%= @orm.name_singular %>.id))
  else
    @title = pat(:create_title, :model => '<%= @orm.name_singular %>')
    flash.now[:error] = pat(:create_error, :model => '<%= @orm.name_singular %>')
    render '<%= @orm.name_plural %>/new'
  end
end

get :edit, :with => :id do
  @title = pat(:edit_title, :model => "<%= @orm.name_singular %> #{params[:id]}")
  @<%= @orm.name_singular %> = <%= @orm.find("params[:id]") %>
  if @<%= @orm.name_singular %>
    render '<%= @orm.name_plural %>/edit'
  else
    flash[:warning] = pat(:create_error, :model => '<%= @orm.name_singular %>', :id => "#{params[:id]}")
    halt 404
  end
end

put :update, :with => :id do
  @title = pat(:update_title, :model => "<%= @orm.name_singular %> #{params[:id]}")
  @<%= @orm.name_singular %> = <%= @orm.find("params[:id]") %>
  if @<%= @orm.name_singular %>
    if <%= @orm.update_attributes("params[:#{@orm.name_param}]") %>
      flash[:success] = pat(:update_success, :model => '<%= @orm.name_singular.capitalize %>', :id =>  "#{params[:id]}")
      params[:save_and_continue] ?
        redirect(url(:<%= @orm.name_plural %>, :index)) :
        redirect(url(:<%= @orm.name_plural %>, :edit, :id => @<%= @orm.name_singular %>.id))
    else
      flash.now[:error] = pat(:update_error, :model => '<%= @orm.name_singular %>')
      render '<%= @orm.name_plural %>/edit'
    end
  else
    flash[:warning] = pat(:update_warning, :model => '<%= @orm.name_singular %>', :id => "#{params[:id]}")
    halt 404
  end
end

delete :destroy, :with => :id do
  @title = "<%= @orm.name_plural.capitalize %>"
  <%= @orm.name_singular %> = <%= @orm.find("params[:id]") %>
  if <%= @orm.name_singular %>
    if <%= @orm.destroy %>
      flash[:success] = pat(:delete_success, :model => '<%= @orm.name_singular.capitalize %>', :id => "#{params[:id]}")
    else
      flash[:error] = pat(:delete_error, :model => '<%= @orm.name_singular %>')
    end
    redirect url(:<%= @orm.name_plural %>, :index)
  else
    flash[:warning] = pat(:delete_warning, :model => '<%= @orm.name_singular %>', :id => "#{params[:id]}")
    halt 404
  end
end

delete :destroy_many do
  @title = "<%= @orm.name_plural.capitalize %>"
  unless params[:<%= @orm.name_singular %>_ids]
    flash[:error] = pat(:destroy_many_error, :model => '<%= @orm.name_singular %>')
    redirect(url(:<%= @orm.name_plural %>, :index))
  end
  ids = params[:<%= @orm.name_param %>_ids].split(',').map(&:strip)
  <%= @orm.name_plural %> = <%= @orm.find_by_ids("ids") %>
  <% if @orm.name_singular == @admin_model %>
  if <%= @orm.name_plural %>.include? current_account
    flash[:error] = pat(:delete_error, :model => '<%= @orm.name_singular %>')
  elsif <%= @orm.multiple_destroy(@orm.name_plural) %>
  <% else %>
  if <%= @orm.multiple_destroy(@orm.name_plural) %>
  <% end %>
    flash[:success] = pat(:destroy_many_success, :model => '<%= @orm.name_plural.capitalize %>', :ids => "#{ids.join(', ')}")
  end
  redirect url(:<%= @orm.name_plural %>, :index)
end

end