Merge pull request #9076 from colinux/fix-instructeurs-filter-avis
ETQ instructeur je peux filtrer les dossiers par avis
This commit is contained in:
commit
cf13b942e7
5 changed files with 19 additions and 5 deletions
|
@ -314,6 +314,7 @@ module Instructeurs
|
||||||
Procedure
|
Procedure
|
||||||
.with_attached_logo
|
.with_attached_logo
|
||||||
.find(procedure_id)
|
.find(procedure_id)
|
||||||
|
.tap { Sentry.set_tags(procedure: _1.id) }
|
||||||
end
|
end
|
||||||
|
|
||||||
def ensure_ownership!
|
def ensure_ownership!
|
||||||
|
|
|
@ -61,7 +61,7 @@ class ProcedurePresentation < ApplicationRecord
|
||||||
field_hash('user', 'email', type: :text),
|
field_hash('user', 'email', type: :text),
|
||||||
field_hash('followers_instructeurs', 'email', type: :text),
|
field_hash('followers_instructeurs', 'email', type: :text),
|
||||||
field_hash('groupe_instructeur', 'id', type: :enum),
|
field_hash('groupe_instructeur', 'id', type: :enum),
|
||||||
field_hash('avis', 'id', type: :text)
|
field_hash('avis', 'answer', type: :text)
|
||||||
)
|
)
|
||||||
|
|
||||||
if procedure.for_individual
|
if procedure.for_individual
|
||||||
|
@ -211,7 +211,7 @@ class ProcedurePresentation < ApplicationRecord
|
||||||
.includes(:followers_instructeurs)
|
.includes(:followers_instructeurs)
|
||||||
.joins('INNER JOIN users instructeurs_users ON instructeurs_users.id = instructeurs.user_id')
|
.joins('INNER JOIN users instructeurs_users ON instructeurs_users.id = instructeurs.user_id')
|
||||||
.filter_ilike('instructeurs_users', :email, values)
|
.filter_ilike('instructeurs_users', :email, values)
|
||||||
when 'user', 'individual'
|
when 'user', 'individual', 'avis'
|
||||||
dossiers
|
dossiers
|
||||||
.includes(table)
|
.includes(table)
|
||||||
.filter_ilike(table, column, values)
|
.filter_ilike(table, column, values)
|
||||||
|
|
|
@ -29,7 +29,7 @@ en:
|
||||||
nom: Last name
|
nom: Last name
|
||||||
gender: Title
|
gender: Title
|
||||||
avis:
|
avis:
|
||||||
id: Opinion
|
answer: Opinion
|
||||||
etablissement:
|
etablissement:
|
||||||
entreprise_siren: SIREN
|
entreprise_siren: SIREN
|
||||||
entreprise_forme_juridique: Forme juridique
|
entreprise_forme_juridique: Forme juridique
|
||||||
|
|
|
@ -29,7 +29,7 @@ fr:
|
||||||
nom: Nom
|
nom: Nom
|
||||||
gender: Civilité
|
gender: Civilité
|
||||||
avis:
|
avis:
|
||||||
id: Avis
|
answer: Avis
|
||||||
etablissement:
|
etablissement:
|
||||||
entreprise_siren: SIREN
|
entreprise_siren: SIREN
|
||||||
entreprise_forme_juridique: Forme juridique
|
entreprise_forme_juridique: Forme juridique
|
||||||
|
|
|
@ -73,7 +73,7 @@ describe ProcedurePresentation do
|
||||||
{ "label" => 'Demandeur', "table" => 'user', "column" => 'email', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
{ "label" => 'Demandeur', "table" => 'user', "column" => 'email', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
||||||
{ "label" => 'Email instructeur', "table" => 'followers_instructeurs', "column" => 'email', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
{ "label" => 'Email instructeur', "table" => 'followers_instructeurs', "column" => 'email', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
||||||
{ "label" => 'Groupe instructeur', "table" => 'groupe_instructeur', "column" => 'id', 'classname' => '', 'virtual' => false, 'type' => :enum, "scope" => '' },
|
{ "label" => 'Groupe instructeur', "table" => 'groupe_instructeur', "column" => 'id', 'classname' => '', 'virtual' => false, 'type' => :enum, "scope" => '' },
|
||||||
{ "label" => 'Avis', "table" => 'avis', "column" => 'id', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
{ "label" => 'Avis', "table" => 'avis', "column" => 'answer', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
||||||
{ "label" => 'SIREN', "table" => 'etablissement', "column" => 'entreprise_siren', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
{ "label" => 'SIREN', "table" => 'etablissement', "column" => 'entreprise_siren', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
||||||
{ "label" => 'Forme juridique', "table" => 'etablissement', "column" => 'entreprise_forme_juridique', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
{ "label" => 'Forme juridique', "table" => 'etablissement', "column" => 'entreprise_forme_juridique', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
||||||
{ "label" => 'Nom commercial', "table" => 'etablissement', "column" => 'entreprise_nom_commercial', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
{ "label" => 'Nom commercial', "table" => 'etablissement', "column" => 'entreprise_nom_commercial', 'classname' => '', 'virtual' => false, 'type' => :text, "scope" => '' },
|
||||||
|
@ -706,6 +706,19 @@ describe ProcedurePresentation do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'for avis table' do
|
||||||
|
let(:procedure) { create(:procedure, :for_individual) }
|
||||||
|
let!(:kept_dossier) { create(:dossier, procedure:) }
|
||||||
|
let!(:discarded_dossier) { create(:dossier, procedure:) }
|
||||||
|
let!(:avis) { create(:avis, :with_answer, dossier: kept_dossier) }
|
||||||
|
|
||||||
|
context 'for answer column' do
|
||||||
|
let(:filter) { [{ 'table' => 'avis', 'column' => 'answer', 'value' => 'Pertinente' }] }
|
||||||
|
|
||||||
|
it { is_expected.to contain_exactly(kept_dossier.id) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'for followers_instructeurs table' do
|
context 'for followers_instructeurs table' do
|
||||||
let(:filter) { [{ 'table' => 'followers_instructeurs', 'column' => 'email', 'value' => 'keepmail' }] }
|
let(:filter) { [{ 'table' => 'followers_instructeurs', 'column' => 'email', 'value' => 'keepmail' }] }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue