From 932a5559a979c0e0c8e11a77ddec938ebc127ade Mon Sep 17 00:00:00 2001 From: lit-poks Date: Sun, 29 Sep 2024 15:54:02 +0600 Subject: [PATCH 1/2] change state column in distribution to status --- app/controllers/distributions_controller.rb | 6 +-- app/models/distribution.rb | 10 ++--- .../export_distributions_csv_service.rb | 4 +- .../distributions/_distribution_row.html.erb | 2 +- app/views/distributions/index.html.erb | 2 +- app/views/distributions/show.html.erb | 4 +- .../20240929074158_rename_state_to_status.rb | 38 +++++++++++++++++++ db/schema.rb | 4 +- spec/factories/distributions.rb | 4 +- spec/models/distribution_spec.rb | 4 +- spec/models/organization_spec.rb | 6 +-- spec/requests/distributions_requests_spec.rb | 6 +-- .../export_distributions_csv_service_spec.rb | 6 +-- spec/system/distribution_system_spec.rb | 16 ++++---- 14 files changed, 75 insertions(+), 37 deletions(-) create mode 100644 db/migrate/20240929074158_rename_state_to_status.rb diff --git a/app/controllers/distributions_controller.rb b/app/controllers/distributions_controller.rb index a56003a716..51ae6b30fa 100644 --- a/app/controllers/distributions_controller.rb +++ b/app/controllers/distributions_controller.rb @@ -58,10 +58,10 @@ def index @total_items_paginated_distributions = total_items(@paginated_distributions, @selected_item) @selected_item_category = filter_params[:by_item_category_id] @selected_partner = filter_params[:by_partner] - @selected_status = filter_params[:by_state] + @selected_status = filter_params[:by_status] @selected_location = filter_params[:by_location] # FIXME: one of these needs to be removed but it's unclear which at this point - @statuses = Distribution.states.transform_keys(&:humanize) + @statuses = Distribution.statuses.transform_keys(&:humanize) respond_to do |format| format.html @@ -322,7 +322,7 @@ def daily_items(pick_ups) def filter_params return {} unless params.key?(:filters) - params.require(:filters).permit(:by_item_id, :by_item_category_id, :by_partner, :by_state, :by_location) + params.require(:filters).permit(:by_item_id, :by_item_category_id, :by_partner, :by_status, :by_location) end def perform_inventory_check diff --git a/app/models/distribution.rb b/app/models/distribution.rb index bc5a652e9f..484d9482d9 100644 --- a/app/models/distribution.rb +++ b/app/models/distribution.rb @@ -10,7 +10,7 @@ # issued_at :datetime # reminder_email_enabled :boolean default(FALSE), not null # shipping_cost :decimal(8, 2) -# state :integer default("scheduled"), not null +# status :integer default("scheduled"), not null # created_at :datetime not null # updated_at :datetime not null # organization_id :integer @@ -45,7 +45,7 @@ class Distribution < ApplicationRecord before_save :combine_distribution, :reset_shipping_cost - enum state: { scheduled: 5, complete: 10 } + enum status: { scheduled: 5, complete: 10 } enum delivery_method: { pick_up: 0, delivery: 1, shipped: 2 } scope :active, -> { joins(:line_items).joins(:items).where(items: { active: true }) } # add item_id scope to allow filtering distributions by item @@ -55,8 +55,8 @@ class Distribution < ApplicationRecord scope :by_partner, ->(partner_id) { where(partner_id: partner_id) } # location scope to allow filtering distributions by location scope :by_location, ->(storage_location_id) { where(storage_location_id: storage_location_id) } - # state scope to allow filtering by state - scope :by_state, ->(state) { where(state: state) } + # status scope to allow filtering by status + scope :by_status, ->(status) { where(status: status) } scope :recent, ->(count = 3) { order(issued_at: :desc).limit(count) } scope :future, -> { where("issued_at >= :tomorrow", tomorrow: Time.zone.tomorrow) } scope :during, ->(range) { where(distributions: { issued_at: range }) } @@ -157,7 +157,7 @@ def csv_export_attributes total_quantity, cents_to_dollar(line_items.total_value), delivery_method, - state, + status, agency_rep ] end diff --git a/app/services/exports/export_distributions_csv_service.rb b/app/services/exports/export_distributions_csv_service.rb index 64557e3369..311e499547 100644 --- a/app/services/exports/export_distributions_csv_service.rb +++ b/app/services/exports/export_distributions_csv_service.rb @@ -90,8 +90,8 @@ def base_table "Shipping Cost" => ->(distribution) { distribution_shipping_cost(distribution.shipping_cost) }, - "State" => ->(distribution) { - distribution.state + "Status" => ->(distribution) { + distribution.status }, "Agency Representative" => ->(distribution) { distribution.agency_rep diff --git a/app/views/distributions/_distribution_row.html.erb b/app/views/distributions/_distribution_row.html.erb index 6e1c99ee7b..3335b64a5d 100644 --- a/app/views/distributions/_distribution_row.html.erb +++ b/app/views/distributions/_distribution_row.html.erb @@ -19,7 +19,7 @@ <%= distribution_row.delivery_method.humanize %> <%= distribution_shipping_cost(distribution_row.shipping_cost) %> <%= distribution_row.comment %> - <%= distribution_row.state&.humanize %> + <%= distribution_row.status&.humanize %> <%= view_button_to distribution_path(distribution_row) %> diff --git a/app/views/distributions/index.html.erb b/app/views/distributions/index.html.erb index d0b7a55b96..e46f40a9e4 100644 --- a/app/views/distributions/index.html.erb +++ b/app/views/distributions/index.html.erb @@ -57,7 +57,7 @@ <% end %>
- <%= filter_select(label: "Filter by Status", scope: :by_state, collection: @statuses, key: :last, value: :first, selected: @selected_status) %> + <%= filter_select(label: "Filter by Status", scope: :by_status, collection: @statuses, key: :last, value: :first, selected: @selected_status) %>
<%= label_tag "Date Range", "Date Range" %> diff --git a/app/views/distributions/show.html.erb b/app/views/distributions/show.html.erb index b37af4a02e..f3f8cca6b3 100644 --- a/app/views/distributions/show.html.erb +++ b/app/views/distributions/show.html.erb @@ -40,7 +40,7 @@ Delivery method: Shipping cost: Comments: - State: + Status: @@ -51,7 +51,7 @@ <%= @distribution.delivery_method.humanize %> <%= distribution_shipping_cost(@distribution.shipping_cost) %> <%= @distribution.comment %> - <%= @distribution.state&.humanize %> + <%= @distribution.status&.humanize %>
diff --git a/db/migrate/20240929074158_rename_state_to_status.rb b/db/migrate/20240929074158_rename_state_to_status.rb new file mode 100644 index 0000000000..8b645ce71f --- /dev/null +++ b/db/migrate/20240929074158_rename_state_to_status.rb @@ -0,0 +1,38 @@ +class RenameStateToStatus < ActiveRecord::Migration[7.1] + disable_ddl_transaction! + + def up + add_column :distributions, :status, :integer + + + safety_assured do + # backfill data from state to status + execute <<-SQL + UPDATE distributions SET status = state; + SQL + + # remove state + remove_column :distributions, :state + + change_column_default :distributions, :status, 5 + change_column_null :distributions, :status, false + end + end + + def down + add_column :distributions, :state, :integer, null: false + + safety_assured do + # backfill data from status to state + execute <<-SQL + UPDATE distributions SET state = status; + SQL + + # remove status column + remove_column :distributions, :status + + change_column_default :distributions, :state, 5 + change_column_null :distributions, :state, false + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 91483f028f..9bfd8ddce3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_08_30_015517) do +ActiveRecord::Schema[7.1].define(version: 2024_09_29_074158) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -240,10 +240,10 @@ t.integer "organization_id" t.datetime "issued_at", precision: nil t.string "agency_rep" - t.integer "state", default: 5, null: false t.boolean "reminder_email_enabled", default: false, null: false t.integer "delivery_method", default: 0, null: false t.decimal "shipping_cost", precision: 8, scale: 2 + t.integer "status", default: 5, null: false t.index ["issued_at"], name: "index_distributions_on_issued_at" t.index ["organization_id"], name: "index_distributions_on_organization_id" t.index ["partner_id"], name: "index_distributions_on_partner_id" diff --git a/spec/factories/distributions.rb b/spec/factories/distributions.rb index 20fbac92e9..bd95187b82 100644 --- a/spec/factories/distributions.rb +++ b/spec/factories/distributions.rb @@ -9,7 +9,7 @@ # issued_at :datetime # reminder_email_enabled :boolean default(FALSE), not null # shipping_cost :decimal(8, 2) -# state :integer default("scheduled"), not null +# status :integer default("scheduled"), not null # created_at :datetime not null # updated_at :datetime not null # organization_id :integer @@ -24,7 +24,7 @@ organization { Organization.try(:first) || create(:organization) } issued_at { nil } delivery_method { :pick_up } - state { :scheduled } + status { :scheduled } trait :past do issued_at { 1.week.ago } diff --git a/spec/models/distribution_spec.rb b/spec/models/distribution_spec.rb index 5cdab500de..93591ba6f5 100644 --- a/spec/models/distribution_spec.rb +++ b/spec/models/distribution_spec.rb @@ -9,7 +9,7 @@ # issued_at :datetime # reminder_email_enabled :boolean default(FALSE), not null # shipping_cost :decimal(8, 2) -# state :integer default("scheduled"), not null +# status :integer default("scheduled"), not null # created_at :datetime not null # updated_at :datetime not null # organization_id :integer @@ -317,7 +317,7 @@ expect(distribution_details[2]).to eq distribution.storage_location.name expect(distribution_details[3]).to eq distribution.line_items.total expect(distribution_details[5]).to eq distribution.delivery_method - expect(distribution_details[6]).to eq distribution.state + expect(distribution_details[6]).to eq distribution.status expect(distribution_details[7]).to eq distribution.agency_rep end end diff --git a/spec/models/organization_spec.rb b/spec/models/organization_spec.rb index 89438098d9..856f3df9c3 100644 --- a/spec/models/organization_spec.rb +++ b/spec/models/organization_spec.rb @@ -136,9 +136,9 @@ end it "retrieves the distributions scheduled for this week that have not yet happened" do - wednesday_distribution_scheduled = create(:distribution, organization: organization, state: :scheduled, issued_at: Time.zone.local(2019, 7, 3)) - create(:distribution, organization: organization, state: :complete, issued_at: Time.zone.local(2019, 7, 3)) - sunday_distribution = create(:distribution, organization: organization, state: :scheduled, issued_at: Time.zone.local(2019, 7, 7)) + wednesday_distribution_scheduled = create(:distribution, organization: organization, status: :scheduled, issued_at: Time.zone.local(2019, 7, 3)) + create(:distribution, organization: organization, status: :complete, issued_at: Time.zone.local(2019, 7, 3)) + sunday_distribution = create(:distribution, organization: organization, status: :scheduled, issued_at: Time.zone.local(2019, 7, 7)) upcoming_distributions = organization.distributions.upcoming expect(upcoming_distributions).to match_array([wednesday_distribution_scheduled, sunday_distribution]) end diff --git a/spec/requests/distributions_requests_spec.rb b/spec/requests/distributions_requests_spec.rb index 34e06e4af5..508dc9b92d 100644 --- a/spec/requests/distributions_requests_spec.rb +++ b/spec/requests/distributions_requests_spec.rb @@ -309,11 +309,11 @@ subject { patch picked_up_distribution_path(id: distribution.id) } context 'when the distribution is successfully updated' do - let(:distribution) { create(:distribution, state: :scheduled, organization: organization) } + let(:distribution) { create(:distribution, status: :scheduled, organization: organization) } - it "updates the state to 'complete'" do + it "updates the status to 'complete'" do subject - expect(distribution.reload.state).to eq 'complete' + expect(distribution.reload.status).to eq 'complete' end it 'redirects the user back to the distributions page' do diff --git a/spec/services/exports/export_distributions_csv_service_spec.rb b/spec/services/exports/export_distributions_csv_service_spec.rb index 89c041d825..f93de5aa5e 100644 --- a/spec/services/exports/export_distributions_csv_service_spec.rb +++ b/spec/services/exports/export_distributions_csv_service_spec.rb @@ -68,7 +68,7 @@ "Total Value", "Delivery Method", "Shipping Cost", - "State", + "Status", "Agency Representative", "Comments" ] @@ -89,7 +89,7 @@ distribution.cents_to_dollar(distribution.line_items.total_value), distribution.delivery_method, "$#{distribution.shipping_cost.to_f}", - distribution.state, + distribution.status, distribution.agency_rep, distribution.comment ] @@ -127,7 +127,7 @@ distribution.cents_to_dollar(distribution.line_items.total_value), distribution.delivery_method, "$#{distribution.shipping_cost.to_f}", - distribution.state, + distribution.status, distribution.agency_rep, distribution.comment ] diff --git a/spec/system/distribution_system_spec.rb b/spec/system/distribution_system_spec.rb index 05ebb31492..5bcde5f219 100644 --- a/spec/system/distribution_system_spec.rb +++ b/spec/system/distribution_system_spec.rb @@ -414,8 +414,8 @@ context "When attempting to edit a distribution" do context "after the distribution issued_at has passed or it has been marked complete" do - let!(:past_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.yesterday, state: :scheduled) } - let!(:complete_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, state: :complete) } + let!(:past_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.yesterday, status: :scheduled) } + let!(:complete_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, status: :complete) } it "does not contain a Edit button" do visit distributions_path @@ -439,7 +439,7 @@ sign_in(organization_admin) end - let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today.prev_day, state: :complete) } + let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today.prev_day, status: :complete) } it "can click on Edit button and a warning appears " do visit distributions_path @@ -490,7 +490,7 @@ end context "When showing a individual distribution" do - let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, state: :complete, delivery_method: "pick_up") } + let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, status: :complete, delivery_method: "pick_up") } before { visit distribution_path(distribution.id) } @@ -797,15 +797,15 @@ expect(page).to have_css("table tbody tr", count: 1) end - it "filters by state" do - distribution1 = create(:distribution, state: "scheduled") - create(:distribution, state: "complete") + it "filters by status" do + distribution1 = create(:distribution, status: "scheduled") + create(:distribution, status: "complete") visit subject # check for all distributions expect(page).to have_css("table tbody tr", count: 2) # filter - select(distribution1.state.humanize, from: "filters[by_state]") + select(distribution1.status.humanize, from: "filters[by_status]") click_button("Filter") # check for filtered distributions expect(page).to have_css("table tbody tr", count: 1) From d07bbab5852d5eb3dec038bbf007ef6c0f5a758b Mon Sep 17 00:00:00 2001 From: lit-poks Date: Fri, 4 Oct 2024 15:05:07 +0600 Subject: [PATCH 2/2] revert changes to database columns Change State too Status in view status in index --- app/controllers/distributions_controller.rb | 6 +-- app/models/distribution.rb | 10 ++--- .../export_distributions_csv_service.rb | 2 +- .../distributions/_distribution_row.html.erb | 2 +- app/views/distributions/index.html.erb | 4 +- app/views/distributions/show.html.erb | 2 +- .../20240929074158_rename_state_to_status.rb | 38 ------------------- db/schema.rb | 4 +- spec/factories/distributions.rb | 4 +- spec/models/distribution_spec.rb | 4 +- spec/models/organization_spec.rb | 6 +-- spec/requests/distributions_requests_spec.rb | 6 +-- .../export_distributions_csv_service_spec.rb | 4 +- spec/system/distribution_system_spec.rb | 16 ++++---- 14 files changed, 35 insertions(+), 73 deletions(-) delete mode 100644 db/migrate/20240929074158_rename_state_to_status.rb diff --git a/app/controllers/distributions_controller.rb b/app/controllers/distributions_controller.rb index 51ae6b30fa..a56003a716 100644 --- a/app/controllers/distributions_controller.rb +++ b/app/controllers/distributions_controller.rb @@ -58,10 +58,10 @@ def index @total_items_paginated_distributions = total_items(@paginated_distributions, @selected_item) @selected_item_category = filter_params[:by_item_category_id] @selected_partner = filter_params[:by_partner] - @selected_status = filter_params[:by_status] + @selected_status = filter_params[:by_state] @selected_location = filter_params[:by_location] # FIXME: one of these needs to be removed but it's unclear which at this point - @statuses = Distribution.statuses.transform_keys(&:humanize) + @statuses = Distribution.states.transform_keys(&:humanize) respond_to do |format| format.html @@ -322,7 +322,7 @@ def daily_items(pick_ups) def filter_params return {} unless params.key?(:filters) - params.require(:filters).permit(:by_item_id, :by_item_category_id, :by_partner, :by_status, :by_location) + params.require(:filters).permit(:by_item_id, :by_item_category_id, :by_partner, :by_state, :by_location) end def perform_inventory_check diff --git a/app/models/distribution.rb b/app/models/distribution.rb index 484d9482d9..bc5a652e9f 100644 --- a/app/models/distribution.rb +++ b/app/models/distribution.rb @@ -10,7 +10,7 @@ # issued_at :datetime # reminder_email_enabled :boolean default(FALSE), not null # shipping_cost :decimal(8, 2) -# status :integer default("scheduled"), not null +# state :integer default("scheduled"), not null # created_at :datetime not null # updated_at :datetime not null # organization_id :integer @@ -45,7 +45,7 @@ class Distribution < ApplicationRecord before_save :combine_distribution, :reset_shipping_cost - enum status: { scheduled: 5, complete: 10 } + enum state: { scheduled: 5, complete: 10 } enum delivery_method: { pick_up: 0, delivery: 1, shipped: 2 } scope :active, -> { joins(:line_items).joins(:items).where(items: { active: true }) } # add item_id scope to allow filtering distributions by item @@ -55,8 +55,8 @@ class Distribution < ApplicationRecord scope :by_partner, ->(partner_id) { where(partner_id: partner_id) } # location scope to allow filtering distributions by location scope :by_location, ->(storage_location_id) { where(storage_location_id: storage_location_id) } - # status scope to allow filtering by status - scope :by_status, ->(status) { where(status: status) } + # state scope to allow filtering by state + scope :by_state, ->(state) { where(state: state) } scope :recent, ->(count = 3) { order(issued_at: :desc).limit(count) } scope :future, -> { where("issued_at >= :tomorrow", tomorrow: Time.zone.tomorrow) } scope :during, ->(range) { where(distributions: { issued_at: range }) } @@ -157,7 +157,7 @@ def csv_export_attributes total_quantity, cents_to_dollar(line_items.total_value), delivery_method, - status, + state, agency_rep ] end diff --git a/app/services/exports/export_distributions_csv_service.rb b/app/services/exports/export_distributions_csv_service.rb index 311e499547..70099d6c37 100644 --- a/app/services/exports/export_distributions_csv_service.rb +++ b/app/services/exports/export_distributions_csv_service.rb @@ -91,7 +91,7 @@ def base_table distribution_shipping_cost(distribution.shipping_cost) }, "Status" => ->(distribution) { - distribution.status + distribution.state }, "Agency Representative" => ->(distribution) { distribution.agency_rep diff --git a/app/views/distributions/_distribution_row.html.erb b/app/views/distributions/_distribution_row.html.erb index 3335b64a5d..6e1c99ee7b 100644 --- a/app/views/distributions/_distribution_row.html.erb +++ b/app/views/distributions/_distribution_row.html.erb @@ -19,7 +19,7 @@ <%= distribution_row.delivery_method.humanize %> <%= distribution_shipping_cost(distribution_row.shipping_cost) %> <%= distribution_row.comment %> - <%= distribution_row.status&.humanize %> + <%= distribution_row.state&.humanize %> <%= view_button_to distribution_path(distribution_row) %> diff --git a/app/views/distributions/index.html.erb b/app/views/distributions/index.html.erb index e46f40a9e4..42da475824 100644 --- a/app/views/distributions/index.html.erb +++ b/app/views/distributions/index.html.erb @@ -57,7 +57,7 @@ <% end %>
- <%= filter_select(label: "Filter by Status", scope: :by_status, collection: @statuses, key: :last, value: :first, selected: @selected_status) %> + <%= filter_select(label: "Filter by Status", scope: :by_state, collection: @statuses, key: :last, value: :first, selected: @selected_status) %>
<%= label_tag "Date Range", "Date Range" %> @@ -117,7 +117,7 @@ Delivery Method Shipping Cost Comments - State + Status Actions diff --git a/app/views/distributions/show.html.erb b/app/views/distributions/show.html.erb index f3f8cca6b3..7cf1405c96 100644 --- a/app/views/distributions/show.html.erb +++ b/app/views/distributions/show.html.erb @@ -51,7 +51,7 @@ <%= @distribution.delivery_method.humanize %> <%= distribution_shipping_cost(@distribution.shipping_cost) %> <%= @distribution.comment %> - <%= @distribution.status&.humanize %> + <%= @distribution.state&.humanize %>
diff --git a/db/migrate/20240929074158_rename_state_to_status.rb b/db/migrate/20240929074158_rename_state_to_status.rb deleted file mode 100644 index 8b645ce71f..0000000000 --- a/db/migrate/20240929074158_rename_state_to_status.rb +++ /dev/null @@ -1,38 +0,0 @@ -class RenameStateToStatus < ActiveRecord::Migration[7.1] - disable_ddl_transaction! - - def up - add_column :distributions, :status, :integer - - - safety_assured do - # backfill data from state to status - execute <<-SQL - UPDATE distributions SET status = state; - SQL - - # remove state - remove_column :distributions, :state - - change_column_default :distributions, :status, 5 - change_column_null :distributions, :status, false - end - end - - def down - add_column :distributions, :state, :integer, null: false - - safety_assured do - # backfill data from status to state - execute <<-SQL - UPDATE distributions SET state = status; - SQL - - # remove status column - remove_column :distributions, :status - - change_column_default :distributions, :state, 5 - change_column_null :distributions, :state, false - end - end -end diff --git a/db/schema.rb b/db/schema.rb index 9bfd8ddce3..91483f028f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_09_29_074158) do +ActiveRecord::Schema[7.1].define(version: 2024_08_30_015517) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -240,10 +240,10 @@ t.integer "organization_id" t.datetime "issued_at", precision: nil t.string "agency_rep" + t.integer "state", default: 5, null: false t.boolean "reminder_email_enabled", default: false, null: false t.integer "delivery_method", default: 0, null: false t.decimal "shipping_cost", precision: 8, scale: 2 - t.integer "status", default: 5, null: false t.index ["issued_at"], name: "index_distributions_on_issued_at" t.index ["organization_id"], name: "index_distributions_on_organization_id" t.index ["partner_id"], name: "index_distributions_on_partner_id" diff --git a/spec/factories/distributions.rb b/spec/factories/distributions.rb index bd95187b82..20fbac92e9 100644 --- a/spec/factories/distributions.rb +++ b/spec/factories/distributions.rb @@ -9,7 +9,7 @@ # issued_at :datetime # reminder_email_enabled :boolean default(FALSE), not null # shipping_cost :decimal(8, 2) -# status :integer default("scheduled"), not null +# state :integer default("scheduled"), not null # created_at :datetime not null # updated_at :datetime not null # organization_id :integer @@ -24,7 +24,7 @@ organization { Organization.try(:first) || create(:organization) } issued_at { nil } delivery_method { :pick_up } - status { :scheduled } + state { :scheduled } trait :past do issued_at { 1.week.ago } diff --git a/spec/models/distribution_spec.rb b/spec/models/distribution_spec.rb index 93591ba6f5..5cdab500de 100644 --- a/spec/models/distribution_spec.rb +++ b/spec/models/distribution_spec.rb @@ -9,7 +9,7 @@ # issued_at :datetime # reminder_email_enabled :boolean default(FALSE), not null # shipping_cost :decimal(8, 2) -# status :integer default("scheduled"), not null +# state :integer default("scheduled"), not null # created_at :datetime not null # updated_at :datetime not null # organization_id :integer @@ -317,7 +317,7 @@ expect(distribution_details[2]).to eq distribution.storage_location.name expect(distribution_details[3]).to eq distribution.line_items.total expect(distribution_details[5]).to eq distribution.delivery_method - expect(distribution_details[6]).to eq distribution.status + expect(distribution_details[6]).to eq distribution.state expect(distribution_details[7]).to eq distribution.agency_rep end end diff --git a/spec/models/organization_spec.rb b/spec/models/organization_spec.rb index 856f3df9c3..89438098d9 100644 --- a/spec/models/organization_spec.rb +++ b/spec/models/organization_spec.rb @@ -136,9 +136,9 @@ end it "retrieves the distributions scheduled for this week that have not yet happened" do - wednesday_distribution_scheduled = create(:distribution, organization: organization, status: :scheduled, issued_at: Time.zone.local(2019, 7, 3)) - create(:distribution, organization: organization, status: :complete, issued_at: Time.zone.local(2019, 7, 3)) - sunday_distribution = create(:distribution, organization: organization, status: :scheduled, issued_at: Time.zone.local(2019, 7, 7)) + wednesday_distribution_scheduled = create(:distribution, organization: organization, state: :scheduled, issued_at: Time.zone.local(2019, 7, 3)) + create(:distribution, organization: organization, state: :complete, issued_at: Time.zone.local(2019, 7, 3)) + sunday_distribution = create(:distribution, organization: organization, state: :scheduled, issued_at: Time.zone.local(2019, 7, 7)) upcoming_distributions = organization.distributions.upcoming expect(upcoming_distributions).to match_array([wednesday_distribution_scheduled, sunday_distribution]) end diff --git a/spec/requests/distributions_requests_spec.rb b/spec/requests/distributions_requests_spec.rb index 508dc9b92d..34e06e4af5 100644 --- a/spec/requests/distributions_requests_spec.rb +++ b/spec/requests/distributions_requests_spec.rb @@ -309,11 +309,11 @@ subject { patch picked_up_distribution_path(id: distribution.id) } context 'when the distribution is successfully updated' do - let(:distribution) { create(:distribution, status: :scheduled, organization: organization) } + let(:distribution) { create(:distribution, state: :scheduled, organization: organization) } - it "updates the status to 'complete'" do + it "updates the state to 'complete'" do subject - expect(distribution.reload.status).to eq 'complete' + expect(distribution.reload.state).to eq 'complete' end it 'redirects the user back to the distributions page' do diff --git a/spec/services/exports/export_distributions_csv_service_spec.rb b/spec/services/exports/export_distributions_csv_service_spec.rb index f93de5aa5e..35588b4312 100644 --- a/spec/services/exports/export_distributions_csv_service_spec.rb +++ b/spec/services/exports/export_distributions_csv_service_spec.rb @@ -89,7 +89,7 @@ distribution.cents_to_dollar(distribution.line_items.total_value), distribution.delivery_method, "$#{distribution.shipping_cost.to_f}", - distribution.status, + distribution.state, distribution.agency_rep, distribution.comment ] @@ -127,7 +127,7 @@ distribution.cents_to_dollar(distribution.line_items.total_value), distribution.delivery_method, "$#{distribution.shipping_cost.to_f}", - distribution.status, + distribution.state, distribution.agency_rep, distribution.comment ] diff --git a/spec/system/distribution_system_spec.rb b/spec/system/distribution_system_spec.rb index 0d325db5d9..0b310d76f5 100644 --- a/spec/system/distribution_system_spec.rb +++ b/spec/system/distribution_system_spec.rb @@ -442,8 +442,8 @@ context "When attempting to edit a distribution" do context "after the distribution issued_at has passed or it has been marked complete" do - let!(:past_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.yesterday, status: :scheduled) } - let!(:complete_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, status: :complete) } + let!(:past_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.yesterday, state: :scheduled) } + let!(:complete_distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, state: :complete) } it "does not contain a Edit button" do visit distributions_path @@ -467,7 +467,7 @@ sign_in(organization_admin) end - let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today.prev_day, status: :complete) } + let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today.prev_day, state: :complete) } it "can click on Edit button and a warning appears " do visit distributions_path @@ -518,7 +518,7 @@ end context "When showing a individual distribution" do - let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, status: :complete, delivery_method: "pick_up") } + let!(:distribution) { create(:distribution, :with_items, agency_rep: "A Person", organization: user.organization, issued_at: Time.zone.today, state: :complete, delivery_method: "pick_up") } before { visit distribution_path(distribution.id) } @@ -825,15 +825,15 @@ expect(page).to have_css("table tbody tr", count: 1) end - it "filters by status" do - distribution1 = create(:distribution, status: "scheduled") - create(:distribution, status: "complete") + it "filters by state" do + distribution1 = create(:distribution, state: "scheduled") + create(:distribution, state: "complete") visit subject # check for all distributions expect(page).to have_css("table tbody tr", count: 2) # filter - select(distribution1.status.humanize, from: "filters[by_status]") + select(distribution1.state.humanize, from: "filters[by_state]") click_button("Filter") # check for filtered distributions expect(page).to have_css("table tbody tr", count: 1)