Browse Source

Update incomplete scope

pull/1796/head
Kat 3 years ago
parent
commit
228155b782
  1. 6
      app/models/scheme.rb
  2. 3
      spec/models/scheme_spec.rb
  3. 6
      spec/requests/schemes_controller_spec.rb

6
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 {

3
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

6
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

Loading…
Cancel
Save