diff --git a/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee b/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee index a5ddc19115..6ad7f0bfb9 100644 --- a/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee +++ b/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee @@ -2,6 +2,8 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, $compile, $attr $scope.$compile = $compile $scope.shops = shops $scope.orderCycles = orderCycles + for oc in $scope.orderCycles + oc.name_and_status = "#{oc.name} (#{oc.status})" $scope.distributor_id = $attrs.ofnDistributorId $scope.order_cycle_id = $attrs.ofnOrderCycleId diff --git a/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface b/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface index 08670edc55..3fa7d3ea83 100644 --- a/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface +++ b/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface @@ -26,4 +26,4 @@ .field{"ng-show" => "distributor_id"} %label{for: "order_order_cycle_id"} Order Cycle %select.select2.fullwidth{id: "order_order_cycle_id", name: "order[order_cycle_id]", 'ng-model' => 'order_cycle_id'} - %option{"ng-repeat" => "oc in orderCycles | filter:validOrderCycle", "ng-value" => "oc.id", "ng-selected" => "order_cycle_id == oc.id", "ng-bind" => "oc.name"} + %option{"ng-repeat" => "oc in orderCycles | filter:validOrderCycle", "ng-value" => "oc.id", "ng-selected" => "order_cycle_id == oc.id", "ng-bind" => "oc.name_and_status"} diff --git a/app/serializers/api/admin/basic_order_cycle_serializer.rb b/app/serializers/api/admin/basic_order_cycle_serializer.rb index 5984a64ecb..3b3e29f83d 100644 --- a/app/serializers/api/admin/basic_order_cycle_serializer.rb +++ b/app/serializers/api/admin/basic_order_cycle_serializer.rb @@ -1,9 +1,15 @@ class Api::Admin::BasicOrderCycleSerializer < ActiveModel::Serializer - attributes :id, :name, :first_order, :last_order + include OrderCyclesHelper + + attributes :id, :name, :status, :first_order, :last_order has_many :suppliers, serializer: Api::Admin::IdNameSerializer has_many :distributors, serializer: Api::Admin::IdNameSerializer + def status + order_cycle_status_class object + end + def first_order object.orders_open_at.andand.strftime("%F") end diff --git a/spec/features/admin/orders_spec.rb b/spec/features/admin/orders_spec.rb index d8dfa469a1..cf1bf1c7ba 100644 --- a/spec/features/admin/orders_spec.rb +++ b/spec/features/admin/orders_spec.rb @@ -36,7 +36,7 @@ feature %q{ # When we select a distributor, it should limit order cycle selection to those for that distributor page.should_not have_select2 'order_order_cycle_id' select @distributor.name, from: 'order_distributor_id' - page.should have_select2 'order_order_cycle_id', options: ['', 'One'] + page.should have_select2 'order_order_cycle_id', options: ['', 'One (open)'] select2_select @order_cycle.name, from: 'order_order_cycle_id' page.should have_content 'ADD PRODUCT' @@ -172,8 +172,8 @@ feature %q{ expect(page).to have_select 'order_distributor_id', with_options: [distributor1.name] expect(page).to_not have_select 'order_distributor_id', with_options: [distributor2.name] - expect(page).to have_select2 'order_order_cycle_id', with_options: [order_cycle1.name] - expect(page).to_not have_select2 'order_order_cycle_id', with_options: [order_cycle2.name] + expect(page).to have_select2 'order_order_cycle_id', with_options: ["#{order_cycle1.name} (open)"] + expect(page).to_not have_select2 'order_order_cycle_id', with_options: ["#{order_cycle2.name} (open)"] click_button 'Update' diff --git a/spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee b/spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee index 718120e5e1..4ceeea277b 100644 --- a/spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee +++ b/spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee @@ -4,8 +4,8 @@ describe "ordersCtrl", -> attrs = {} shops = [] orderCycles = [ - {id: 10, distributors: [{id: 1, name: 'One'}]} - {id: 20, distributors: [{id: 2, name: 'Two'}]} + {id: 10, name: 'Ten', status: 'open', distributors: [{id: 1, name: 'One'}]} + {id: 20, name: 'Twenty', status: 'closed', distributors: [{id: 2, name: 'Two', status: 'closed'}]} ] beforeEach -> @@ -15,6 +15,9 @@ describe "ordersCtrl", -> inject ($controller) -> ctrl = $controller 'ordersCtrl', {$scope: scope, $attrs: attrs, shops: shops, orderCycles: orderCycles} + it "initialises name_and_status", -> + expect(scope.orderCycles[0].name_and_status).toEqual "Ten (open)" + expect(scope.orderCycles[1].name_and_status).toEqual "Twenty (closed)" describe "finding valid order cycles for a distributor", -> order_cycle = {id: 10, distributors: [{id: 1, name: 'One'}]}