Skip to content

Commit

Permalink
filter all demarches by departement
Browse files Browse the repository at this point in the history
  • Loading branch information
krichtof committed Oct 27, 2023
1 parent 97ff31f commit e6ee5d6
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 1 deletion.
3 changes: 3 additions & 0 deletions app/controllers/administrateurs/procedures_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -421,13 +421,16 @@ def filter_procedures(filter)
return Procedure.none if service.nil?
end

services = Service.where(departement: filter.service_departement) if filter.service_departement.present?

procedures_result = Procedure.select(:id).left_joins(:procedures_zones).distinct.publiees_ou_closes
procedures_result = procedures_result.where(procedures_zones: { zone_id: filter.zone_ids }) if filter.zone_ids.present?
procedures_result = procedures_result.where(hidden_at_as_template: nil)
procedures_result = procedures_result.where(aasm_state: filter.statuses) if filter.statuses.present?
procedures_result = procedures_result.where("tags @> ARRAY[?]::text[]", filter.tags) if filter.tags.present?
procedures_result = procedures_result.where('published_at >= ?', filter.from_publication_date) if filter.from_publication_date.present?
procedures_result = procedures_result.where(service: service) if filter.service_siret.present?
procedures_result = procedures_result.where(service: services) if services
procedures_result = procedures_result.where('unaccent(libelle) ILIKE unaccent(?)', "%#{filter.libelle}%") if filter.libelle.present?
procedures_sql = procedures_result.to_sql

Expand Down
6 changes: 5 additions & 1 deletion app/models/procedures_filter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class ProceduresFilter

def initialize(admin, params)
@admin = admin
@params = params.permit(:page, :libelle, :email, :from_publication_date, :service_siret, tags: [], zone_ids: [], statuses: [])
@params = params.permit(:page, :libelle, :email, :from_publication_date, :service_siret, :service_departement, tags: [], zone_ids: [], statuses: [])
end

def admin_zones
Expand Down Expand Up @@ -36,6 +36,10 @@ def service_siret
params[:service_siret].presence
end

def service_departement
params[:service_departement].presence
end

def from_publication_date
return if params[:from_publication_date].blank?

Expand Down
3 changes: 3 additions & 0 deletions app/views/administrateurs/procedures/all.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
- if @filter.service_siret
.selected-query.fr-mb-2w
= link_to @filter.service_siret, all_admin_procedures_path(@filter.without(:service_siret)), class: 'fr-tag fr-tag--dismiss fr-mb-1w'
- if @filter.service_departement
.selected-query.fr-mb-2w
= link_to @filter.service_departement, all_admin_procedures_path(@filter.without(:service_departement)), class: 'fr-tag fr-tag--dismiss fr-mb-1w'
- if @filter.selected_zones.present?
.selected-zones.fr-mb-2w
- @filter.selected_zones.each do |zone|
Expand Down
8 changes: 8 additions & 0 deletions app/views/layouts/all.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,14 @@
.fr-ml-1w.hidden{ 'data-expand-target': 'content' }
%div
= f.text_field :service_siret, placeholder: 'Indiquez le SIRET', class: 'fr-input'
%li.fr-py-2w.fr-pl-2w{ 'data-controller': "expand" }
.fr-mb-1w
%button{ 'data-action': 'expand#toggle' }
%span.fr-icon-add-line.fr-icon--sm.fr-mr-1w.fr-text-action-high--blue-france{ 'aria-hidden': 'true', 'data-expand-target': 'icon' }
Département
.fr-ml-1w.hidden{ 'data-expand-target': 'content' }
%div
= f.text_field :service_departement, placeholder: 'Indiquez le code départemental', class: 'fr-input'
%li.fr-py-2w{ 'data-controller': "expand" }
.fr-mb-1w.fr-pl-2w
%button{ 'data-action': 'click->expand#toggle' }
Expand Down
13 changes: 13 additions & 0 deletions spec/controllers/administrateurs/procedures_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,19 @@
end
end

context 'with service departement' do
let(:service) { create(:service, departement: '63') }
let(:service2) { create(:service, departement: '75') }
let!(:procedure) { create(:procedure, :published, service: service) }
let!(:procedure2) { create(:procedure, :published, service: service2) }

it 'returns procedures with correct departement' do
get :all, params: { service_departement: '63' }
expect(assigns(:procedures).any? { |p| p.id == procedure.id }).to be_truthy
expect(assigns(:procedures).any? { |p| p.id == procedure2.id }).to be_falsey
end
end

context 'with specific tag' do
let!(:tags_procedure) { create(:procedure, :published, tags: ['environnement', 'diplomatie']) }

Expand Down

0 comments on commit e6ee5d6

Please sign in to comment.