Order Cycles can be filtered by Schedule

This commit is contained in:
Rob Harrington
2016-07-28 22:58:44 +10:00
parent 8c0bad3115
commit 4195bd6cd8
6 changed files with 33 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ angular.module("admin.orderCycles").controller "OrderCyclesCtrl", ($scope, $q, C
$scope.saveAll = -> OrderCycles.saveChanges($scope.order_cycles_form)
$scope.ordersCloseAtLimit = -31 # days
$scope.involvingFilter = 0
$scope.scheduleFilter = 0
compileData = ->
for schedule in $scope.schedules

View File

@@ -0,0 +1,6 @@
angular.module("admin.orderCycles").filter "schedule", ($filter) ->
return (orderCycles, scheduleID) ->
return orderCycles if scheduleID == 0
$filter('filter')(orderCycles, (orderCycle) ->
scheduleID in orderCycle.schedules.map (oc) -> oc.id
)

View File

@@ -7,7 +7,11 @@
%label{ :for => 'involving_filter' }=t('.involving')
%br
%input.ofn-select2.fullwidth{ :id => 'involving_filter', type: 'number', blank: "{id: 0, name: 'Any Enterprise'}", data: 'enterprises', ng: { model: 'involvingFilter' } }
.six.columns  
.filter_select.four.columns
%label{ :for => 'schedule_filter' }=t('admin.order_cycles.index.schedule')
%br
%input.ofn-select2.fullwidth{ :id => 'schedule_filter', type: 'number', blank: "{id: 0, name: 'Any Schedule'}", data: 'schedules', ng: { model: 'scheduleFilter' } }
.two.columns  
.filter_clear.two.columns.omega
%label{ :for => 'clear_all_filters' }
%br

View File

@@ -1,4 +1,4 @@
%tr{ class: "order-cycle-{{orderCycle.id}} {{orderCycle.status}}", ng: { repeat: 'orderCycle in orderCycles | involving:involvingFilter | filter:{name: query} track by orderCycle.id' } }
%tr{ class: "order-cycle-{{orderCycle.id}} {{orderCycle.status}}", ng: { repeat: 'orderCycle in orderCycles | schedule:scheduleFilter | involving:involvingFilter | filter:{name: query} track by orderCycle.id' } }
%td.name{ ng: { show: 'columns.name.visible' } }
%a{ ng: { href: '{{orderCycle.edit_path}}' } }
{{ orderCycle.name }}

View File

@@ -676,6 +676,7 @@ en:
debug_info: Debug information
index:
involving: Involving
schedule: Schedule
schedules: Schedules
adding_a_new_schedule: Adding A New Schedule
updating_a_schedule: Updating A Schedule

View File

@@ -23,6 +23,7 @@ feature %q{
orders_open_at: nil, orders_close_at: nil)
oc7 = create(:simple_order_cycle, name: 'oc7',
orders_open_at: 2.months.ago, orders_close_at: 5.weeks.ago)
schedule1 = create(:schedule, name: 'Schedule1', order_cycles: [oc1, oc3])
# When I go to the admin order cycles page
login_to_admin_section
@@ -64,7 +65,7 @@ feature %q{
click_button "Show 30 more days"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc7.id}"
# I can filter order cycles by name
# I can filter order cycle by involved enterprises
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc0.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
@@ -77,7 +78,7 @@ feature %q{
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
# I can filter order cycle by involved enterprises
# I can filter order cycles by name
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc0.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
@@ -89,6 +90,22 @@ feature %q{
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc0.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
# I can filter order cycle by schedule
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc0.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc3.id}"
select2_select schedule1.name, from: "schedule_filter"
page.should have_no_selector "#listing_order_cycles tr.order-cycle-#{oc0.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_no_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc3.id}"
select2_select 'Any Schedule', from: "schedule_filter"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc0.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc1.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc2.id}"
page.should have_selector "#listing_order_cycles tr.order-cycle-#{oc3.id}"
end
describe 'listing order cycles with other locales' do