prettify display of orders

This commit is contained in:
Skud
2013-05-15 15:52:10 +10:00
parent 2955ca1559
commit 3e1202cd62
6 changed files with 41 additions and 29 deletions

View File

@@ -1,9 +1,10 @@
class OrderItemsController < ApplicationController
load_and_authorize_resource
# GET /order_items
# GET /order_items.json
def index
@order_items = OrderItem.all
@order_items = OrderItem.joins(:order).where(:orders => {:member_id => current_member.id})
respond_to do |format|
format.html # index.html.erb
@@ -42,6 +43,7 @@ class OrderItemsController < ApplicationController
# POST /order_items.json
def create
@order_item = OrderItem.new(params[:order_item])
@order_item.order = current_member.current_order || Order.create(:member_id => current_member.id)
respond_to do |format|
if @order_item.save

View File

@@ -1,9 +1,10 @@
class OrdersController < ApplicationController
load_and_authorize_resource
# GET /orders
# GET /orders.json
def index
@orders = Order.all
@orders = Order.find_all_by_member_id(current_member.id)
respond_to do |format|
format.html # index.html.erb

View File

@@ -1,19 +1,16 @@
%h1 Listing orders
- content_for :title, "Order History"
%table
%table.table-striped
%tr
%th Member
%th Order number
%th Order began
%th Order completed
%th Number of items
%th
%th
%th
- @orders.each do |order|
%tr
%td= order.member_id
%td= link_to 'Show', order
%td= link_to 'Edit', edit_order_path(order)
%td= link_to 'Destroy', order, :method => :delete, :data => { :confirm => 'Are you sure?' }
%br
= link_to 'New Order', new_order_path
%td= order.id
%td= order.created_at.to_s
%td= order.completed_at.to_s
%td= order.order_items.count
%td= link_to 'Show', order, :class => 'btn btn-small'

View File

@@ -10,7 +10,10 @@ describe OrderItemsController do
describe "GET index" do
it "assigns all order_items as @order_items" do
order_item = OrderItem.create! valid_attributes
member = FactoryGirl.create(:member)
sign_in member
order = FactoryGirl.create(:order, :member_id => member.id)
order_item = FactoryGirl.create(:order_item, :order_id => order.id)
get :index, {}
assigns(:order_items).should eq([order_item])
end
@@ -57,6 +60,13 @@ describe OrderItemsController do
post :create, {:order_item => valid_attributes}
response.should redirect_to(OrderItem.last)
end
it 'creates an order for you' do
expect {
post :create, {:order_item => valid_attributes}
}.to change(Order, :count).by(1)
OrderItem.last.order.should be_an_instance_of Order
end
end
describe "with invalid params" do

View File

@@ -5,7 +5,7 @@ describe OrdersController do
login_member(:admin_member)
def valid_attributes
{ "member_id" => "MyString" }
{ "member_id" => 1 }
end
def valid_session
@@ -14,7 +14,9 @@ describe OrdersController do
describe "GET index" do
it "assigns all orders as @orders" do
order = Order.create! valid_attributes
member = FactoryGirl.create(:member)
sign_in member
order = Order.create!(:member_id => member.id)
get :index, {}
assigns(:orders).should eq([order])
end
@@ -22,7 +24,9 @@ describe OrdersController do
describe "GET show" do
it "assigns the requested order as @order" do
order = Order.create! valid_attributes
member = FactoryGirl.create(:member)
sign_in member
order = Order.create!(:member_id => member.id)
get :show, {:id => order.to_param}
assigns(:order).should eq(order)
end

View File

@@ -2,19 +2,17 @@ require 'spec_helper'
describe "orders/index" do
before(:each) do
assign(:orders, [
stub_model(Order,
:member_id => "Member"
),
stub_model(Order,
:member_id => "Member"
)
])
@member = FactoryGirl.create(:member)
sign_in @member
@order1 = FactoryGirl.create(:order)
@order2 = FactoryGirl.create(:completed_order)
assign(:orders, [ @order1, @order2 ])
end
it "renders a list of orders" do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select "tr>td", :text => "Member".to_s, :count => 2
assert_select "tr>td", :text => @order1.id
assert_select "tr>td", :text => @order2.id
end
end