perf(admin): remove 2 useless zones queries on each admin page due to navigation
This commit is contained in:
parent
e1102ed993
commit
a4db911585
3 changed files with 21 additions and 1 deletions
|
@ -5,6 +5,9 @@ class ProceduresFilter
|
||||||
|
|
||||||
def initialize(admin, params)
|
def initialize(admin, params)
|
||||||
@admin = admin
|
@admin = admin
|
||||||
|
|
||||||
|
params[:zone_ids] = admin.zones.pluck(:id) if params[:zone_ids] == 'admin_default'
|
||||||
|
|
||||||
@params = params.permit(:page, :libelle, :email, :from_publication_date, :service_siret, :service_departement, tags: [], zone_ids: [], statuses: [])
|
@params = params.permit(:page, :libelle, :email, :from_publication_date, :service_siret, :service_departement, tags: [], zone_ids: [], statuses: [])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
%ul.fr-nav__list
|
%ul.fr-nav__list
|
||||||
%li.fr-nav__item= link_to 'Mes démarches', admin_procedures_path, class:'fr-nav__link', 'aria-current': current_page?(controller: 'administrateurs/procedures', action: :index) ? 'page' : nil
|
%li.fr-nav__item= link_to 'Mes démarches', admin_procedures_path, class:'fr-nav__link', 'aria-current': current_page?(controller: 'administrateurs/procedures', action: :index) ? 'page' : nil
|
||||||
- if Rails.application.config.ds_zonage_enabled
|
- if Rails.application.config.ds_zonage_enabled
|
||||||
%li.fr-nav__item= link_to 'Toutes les démarches', all_admin_procedures_path(zone_ids: current_administrateur.zones), class:'fr-nav__link', 'aria-current': current_page?(all_admin_procedures_path) ? 'page' : nil
|
%li.fr-nav__item= link_to 'Toutes les démarches', all_admin_procedures_path(zone_ids: :admin_default), class:'fr-nav__link', 'aria-current': current_page?(all_admin_procedures_path) ? 'page' : nil
|
||||||
- if current_administrateur.groupe_gestionnaire_id
|
- if current_administrateur.groupe_gestionnaire_id
|
||||||
%li.fr-nav__item= link_to 'Mon groupe gestionnaire', admin_groupe_gestionnaire_path, class:'fr-nav__link', 'aria-current': current_page?(admin_groupe_gestionnaire_path) ? 'page' : nil
|
%li.fr-nav__item= link_to 'Mon groupe gestionnaire', admin_groupe_gestionnaire_path, class:'fr-nav__link', 'aria-current': current_page?(admin_groupe_gestionnaire_path) ? 'page' : nil
|
||||||
|
|
||||||
|
|
|
@ -116,6 +116,23 @@ describe Administrateurs::ProceduresController, type: :controller do
|
||||||
expect(assigns(:procedures).any? { |p| p.id == draft_procedure.id }).to be_falsey
|
expect(assigns(:procedures).any? { |p| p.id == draft_procedure.id }).to be_falsey
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'for default admin zones' do
|
||||||
|
let(:zone1) { create(:zone) }
|
||||||
|
let(:zone2) { create(:zone) }
|
||||||
|
let!(:procedure1) { create(:procedure, :published, zones: [zone1]) }
|
||||||
|
let!(:procedure2) { create(:procedure, :published, zones: [zone1, zone2]) }
|
||||||
|
let!(:admin_procedure) { create(:procedure, :published, zones: [zone2], administrateur: admin) }
|
||||||
|
|
||||||
|
subject { get :all, params: { zone_ids: :admin_default } }
|
||||||
|
|
||||||
|
it 'display only procedures for specified zones' do
|
||||||
|
subject
|
||||||
|
expect(assigns(:procedures).any? { |p| p.id == procedure2.id }).to be_truthy
|
||||||
|
expect(assigns(:procedures).any? { |p| p.id == admin_procedure.id }).to be_truthy
|
||||||
|
expect(assigns(:procedures).any? { |p| p.id == procedure1.id }).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "for specific zones" do
|
context "for specific zones" do
|
||||||
let(:zone1) { create(:zone) }
|
let(:zone1) { create(:zone) }
|
||||||
let(:zone2) { create(:zone) }
|
let(:zone2) { create(:zone) }
|
||||||
|
|
Loading…
Add table
Reference in a new issue