filter demarches by siret service

This commit is contained in:
krichtof 2023-04-10 13:00:13 +02:00
parent 0d1aa5cf96
commit 78938b5a07
3 changed files with 36 additions and 1 deletions

View file

@ -416,11 +416,17 @@ module Administrateurs
private
def filter_procedures(filter)
if filter.service_siret.present?
service = Service.find_by(siret: filter.service_siret)
return Procedure.none if service.nil?
end
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(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('unaccent(libelle) ILIKE unaccent(?)', "%#{filter.libelle}%") if filter.libelle.present?
procedures_sql = procedures_result.to_sql

View file

@ -5,7 +5,7 @@ class ProceduresFilter
def initialize(admin, params)
@admin = admin
@params = params.permit(:page, :libelle, :email, :from_publication_date, tags: [], zone_ids: [], statuses: [])
@params = params.permit(:page, :libelle, :email, :from_publication_date, :service_siret, tags: [], zone_ids: [], statuses: [])
end
def admin_zones
@ -32,6 +32,10 @@ class ProceduresFilter
params[:tags].compact_blank.uniq if params[:tags].present?
end
def service_siret
params[:service_siret].presence
end
def from_publication_date
return if params[:from_publication_date].blank?