From 228155b78254d487d5def1b9951c33c44c57b998 Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 26 Jul 2023 12:08:03 +0100 Subject: [PATCH] Update incomplete scope --- app/models/scheme.rb | 6 +++++- spec/models/scheme_spec.rb | 3 ++- spec/requests/schemes_controller_spec.rb | 6 ++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 2da6bdd84..ff24abdad 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -17,7 +17,7 @@ class Scheme < ApplicationRecord .or(filter_by_id(param)).distinct } - scope :order_by_completion, -> { order("confirmed ASC NULLS FIRST") } + scope :order_by_completion, -> { order("schemes.confirmed ASC NULLS FIRST") } scope :order_by_service_name, -> { order(service_name: :asc) } scope :filter_by_status, lambda { |statuses, _user = nil| filtered_records = all @@ -42,6 +42,10 @@ class Scheme < ApplicationRecord scope :incomplete, lambda { where.not(confirmed: true) + .or(where.not(id: Location.select(:scheme_id).where(confirmed: true).distinct)) + .where.not(id: joins(:scheme_deactivation_periods).reactivating_soon.pluck(:id)) + .where.not(id: joins(:scheme_deactivation_periods).deactivated.pluck(:id)) + .where.not(id: joins(:scheme_deactivation_periods).deactivating_soon.pluck(:id)) } scope :deactivated, lambda { diff --git a/spec/models/scheme_spec.rb b/spec/models/scheme_spec.rb index 2fb3ee0d0..0bdcb940a 100644 --- a/spec/models/scheme_spec.rb +++ b/spec/models/scheme_spec.rb @@ -92,7 +92,7 @@ RSpec.describe Scheme, type: :model do context "when filtering by status" do let!(:incomplete_scheme) { FactoryBot.create(:scheme, :incomplete) } - let!(:active_scheme) { FactoryBot.create(:scheme) } + let(:active_scheme) { FactoryBot.create(:scheme) } let(:deactivating_soon_scheme) { FactoryBot.create(:scheme) } let(:deactivated_scheme) { FactoryBot.create(:scheme) } let(:reactivating_soon_scheme) { FactoryBot.create(:scheme) } @@ -108,6 +108,7 @@ RSpec.describe Scheme, type: :model do deactivated_scheme.save! FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 6, 7), reactivation_date: Time.zone.local(2022, 6, 8), scheme: reactivating_soon_scheme) reactivating_soon_scheme.save! + FactoryBot.create(:location, scheme: active_scheme, confirmed: true) end after do diff --git a/spec/requests/schemes_controller_spec.rb b/spec/requests/schemes_controller_spec.rb index eddf68427..b145d7288 100644 --- a/spec/requests/schemes_controller_spec.rb +++ b/spec/requests/schemes_controller_spec.rb @@ -79,10 +79,11 @@ RSpec.describe SchemesController, type: :request do context "when filtering" do context "with status filter" do let!(:incomplete_scheme) { create(:scheme, :incomplete, owning_organisation: user.organisation) } - let!(:active_scheme) { create(:scheme, owning_organisation: user.organisation) } + let(:active_scheme) { create(:scheme, owning_organisation: user.organisation) } let!(:deactivated_scheme) { create(:scheme, owning_organisation: user.organisation) } before do + create(:location, scheme: active_scheme) create(:scheme_deactivation_period, scheme: deactivated_scheme, deactivation_date: Time.zone.local(2022, 4, 1)) end @@ -283,10 +284,11 @@ RSpec.describe SchemesController, type: :request do context "when filtering" do context "with status filter" do let!(:incomplete_scheme) { create(:scheme, :incomplete) } - let!(:active_scheme) { create(:scheme) } + let(:active_scheme) { create(:scheme) } let!(:deactivated_scheme) { create(:scheme) } before do + create(:location, scheme: active_scheme) create(:scheme_deactivation_period, scheme: deactivated_scheme, deactivation_date: Time.zone.local(2022, 4, 1)) end