Add supplier filter to BOM

This commit is contained in:
Rob H
2014-01-18 11:13:32 +08:00
parent 6c1d149397
commit 680b5c8a42
3 changed files with 38 additions and 2 deletions

View File

@@ -53,4 +53,10 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
if angular.equals(supplier, line_item.supplier)
line_item.supplier = supplier
break
]
]
orderManagementModule.filter "selectFilter", ->
return (lineItems,selectedSupplier) ->
filtered = []
filtered.push line_item for line_item in lineItems when selectedSupplier == undefined || line_item.supplier == selectedSupplier
filtered

View File

@@ -6,6 +6,8 @@
%div{ 'ng-app' => 'ofn.bulk_order_management', 'ng-controller' => 'AdminOrderMgmtCtrl', 'ng-init' => "initialise('#{@spree_api_key}');" }
%div{ 'ng-show' => '!spree_api_key_ok' }
{{ api_error_msg }}
%div.selectors{ :class => "four columns alpha" }
%select.select2{ :class => "three columns alpha", :name => 'supplier_filter', 'ng-model' => 'supplierFilter', 'ng-options' => 'supplier.name for supplier in suppliers'}
%table.index#listing_orders.bulk
%thead
@@ -17,7 +19,7 @@
%th.variant Product (Unit): Var
%th.quantity Quantity
%th.max Max
%tr.line_item{ 'ng-repeat' => 'line_item in lineItems', 'ng-class-even' => "'even'", 'ng-class-odd' => "'odd'" }
%tr.line_item{ 'ng-repeat' => 'line_item in lineItems | selectFilter:supplierFilter', 'ng-class-even' => "'even'", 'ng-class-odd' => "'odd'" }
%td.id {{ line_item.id }}
%td.email {{ line_item.order.email }}
%td.date {{ line_item.order.completed_at }}

View File

@@ -81,5 +81,33 @@ feature %q{
page.should have_selector "td.max", text: li2.max_quantity.to_s, :visible => true
end
end
context "using page page controls" do
context "using drop down seletors" do
let!(:s1) { FactoryGirl.create(:supplier_enterprise) }
let!(:s2) { FactoryGirl.create(:supplier_enterprise) }
let!(:d1) { FactoryGirl.create(:distributor_enterprise) }
let!(:d2) { FactoryGirl.create(:distributor_enterprise) }
let!(:p1) { FactoryGirl.create(:product, supplier: s1 ) }
let!(:p2) { FactoryGirl.create(:product, supplier: s2 ) }
let!(:o1) { FactoryGirl.create(:order, state: 'complete', completed_at: Time.now ) }
let!(:o2) { FactoryGirl.create(:order, state: 'complete', completed_at: Time.now ) }
let!(:li1) { FactoryGirl.create(:line_item, order: o1, product: p1 ) }
let!(:li2) { FactoryGirl.create(:line_item, order: o2, product: p2 ) }
before :each do
visit '/admin/orders/bulk_management'
end
it "displays a select box for producers, which filters line items by the selected supplier" do
page.should have_select "supplier_filter", with_options: [s1.name,s2.name]
page.should have_selector "td.id", text: li1.id.to_s, visible: true
page.should have_selector "td.id", text: li2.id.to_s, visible: true
select s1.name, from: "supplier_filter"
page.should have_selector "td.id", text: li1.id.to_s, visible: true
page.should_not have_selector "td.id", text: li2.id.to_s, visible: true
end
end
end
end
end