Browse Source

feat: move ordering after filtering to avoid ORDER BY using expressions not in SELECT DISTINCT list

pull/1940/head
natdeanlewissoftwire 3 years ago
parent
commit
60c11ad895
  1. 4
      app/controllers/organisations_controller.rb
  2. 4
      app/controllers/schemes_controller.rb
  3. 14
      app/models/scheme.rb

4
app/controllers/organisations_controller.rb

@ -21,9 +21,9 @@ class OrganisationsController < ApplicationController
end
def schemes
all_schemes = Scheme.where(owning_organisation: [@organisation] + @organisation.parent_organisations).order_by_completion.order_by_service_name
all_schemes = Scheme.where(owning_organisation: [@organisation] + @organisation.parent_organisations)
@pagy, @schemes = pagy(filter_manager.filtered_schemes(all_schemes, search_term, session_filters))
@pagy, @schemes = pagy(filter_manager.filtered_schemes(all_schemes, search_term, session_filters).order_by_completion.order_by_service_name)
@searched = search_term.presence
@total_count = all_schemes.size
@filter_type = "schemes"

4
app/controllers/schemes_controller.rb

@ -13,9 +13,9 @@ class SchemesController < ApplicationController
def index
redirect_to schemes_organisation_path(current_user.organisation) unless current_user.support?
all_schemes = Scheme.order_by_completion.order_by_service_name
all_schemes = Scheme.all
@pagy, @schemes = pagy(filter_manager.filtered_schemes(all_schemes, search_term, session_filters))
@pagy, @schemes = pagy(filter_manager.filtered_schemes(all_schemes, search_term, session_filters).order_by_completion.order_by_service_name)
@searched = search_term.presence
@total_count = all_schemes.size
@filter_type = "schemes"

14
app/models/scheme.rb

@ -43,9 +43,9 @@ 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, :service_name, :confirmed))
.where.not(id: joins(:scheme_deactivation_periods).deactivated.pluck(:id, :service_name, :confirmed))
.where.not(id: joins(:scheme_deactivation_periods).deactivating_soon.pluck(:id, :service_name, :confirmed))
.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 {
@ -64,10 +64,10 @@ class Scheme < ApplicationRecord
}
scope :active_status, lambda {
where.not(id: joins(:scheme_deactivation_periods).reactivating_soon.pluck(:id, :service_name, :confirmed))
.where.not(id: joins(:scheme_deactivation_periods).deactivated.pluck(:id, :service_name, :confirmed))
.where.not(id: incomplete.pluck(:id, :service_name, :confirmed))
.where.not(id: joins(:scheme_deactivation_periods).deactivating_soon.pluck(:id, :service_name, :confirmed))
where.not(id: joins(:scheme_deactivation_periods).reactivating_soon.pluck(:id))
.where.not(id: joins(:scheme_deactivation_periods).deactivated.pluck(:id))
.where.not(id: incomplete.pluck(:id))
.where.not(id: joins(:scheme_deactivation_periods).deactivating_soon.pluck(:id))
}
validate :validate_confirmed

Loading…
Cancel
Save