Merge commit '9e737992c4f7f32b4bc48b1a2aa7235f881417cc'
This commit is contained in:
commit
18d2c71135
13 changed files with 56 additions and 99 deletions
Binary file not shown.
Before Width: | Height: | Size: 25 KiB |
|
@ -238,18 +238,6 @@ div.pagination {
|
||||||
left: 23% !important;
|
left: 23% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#fconnect-profile {
|
|
||||||
margin-top: 5px;
|
|
||||||
display: inline-block;
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #3471A9 !important;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 16px !important;
|
|
||||||
margin-right: 0px !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.no-padding {
|
.no-padding {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -240,8 +240,6 @@ module NewGestionnaire
|
||||||
end
|
end
|
||||||
end.each do |group_key, fields|
|
end.each do |group_key, fields|
|
||||||
case group_key
|
case group_key
|
||||||
when 'france_connect_information'
|
|
||||||
@dossiers = @dossiers.includes({ user: :france_connect_information })
|
|
||||||
when 'type_de_champ_group'
|
when 'type_de_champ_group'
|
||||||
if fields.any? { |field| field['table'] == 'type_de_champ' }
|
if fields.any? { |field| field['table'] == 'type_de_champ' }
|
||||||
@dossiers = @dossiers.includes(:champs).references(:champs)
|
@dossiers = @dossiers.includes(:champs).references(:champs)
|
||||||
|
|
|
@ -73,17 +73,6 @@ class Users::DossiersController < UsersController
|
||||||
@siret = current_user.siret
|
@siret = current_user.siret
|
||||||
end
|
end
|
||||||
|
|
||||||
if @facade.procedure.for_individual? && current_user.loged_in_with_france_connect?
|
|
||||||
individual = @facade.dossier.individual
|
|
||||||
|
|
||||||
individual.update_column :gender, @facade.dossier.france_connect_information.gender
|
|
||||||
individual.update_column :nom, @facade.dossier.france_connect_information.family_name
|
|
||||||
individual.update_column :prenom, @facade.dossier.france_connect_information.given_name
|
|
||||||
|
|
||||||
individual.birthdate = @facade.dossier.france_connect_information.birthdate
|
|
||||||
individual.save
|
|
||||||
end
|
|
||||||
|
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
flash.alert = t('errors.messages.dossier_not_found')
|
flash.alert = t('errors.messages.dossier_not_found')
|
||||||
redirect_to url_for dossiers_path
|
redirect_to url_for dossiers_path
|
||||||
|
|
|
@ -83,8 +83,6 @@ class Dossier < ApplicationRecord
|
||||||
def update_search_terms
|
def update_search_terms
|
||||||
self.search_terms = [
|
self.search_terms = [
|
||||||
user&.email,
|
user&.email,
|
||||||
france_connect_information&.given_name,
|
|
||||||
france_connect_information&.family_name,
|
|
||||||
*champs.flat_map(&:search_terms),
|
*champs.flat_map(&:search_terms),
|
||||||
*etablissement&.search_terms,
|
*etablissement&.search_terms,
|
||||||
individual&.nom,
|
individual&.nom,
|
||||||
|
|
|
@ -19,7 +19,6 @@ class User < ApplicationRecord
|
||||||
has_many :feedbacks, dependent: :destroy
|
has_many :feedbacks, dependent: :destroy
|
||||||
has_one :france_connect_information, dependent: :destroy
|
has_one :france_connect_information, dependent: :destroy
|
||||||
|
|
||||||
delegate :given_name, :family_name, :email_france_connect, :gender, :birthdate, :birthplace, :france_connect_particulier_id, to: :france_connect_information
|
|
||||||
accepts_nested_attributes_for :france_connect_information
|
accepts_nested_attributes_for :france_connect_information
|
||||||
|
|
||||||
before_validation -> { sanitize_email(:email) }
|
before_validation -> { sanitize_email(:email) }
|
||||||
|
|
|
@ -9,12 +9,6 @@ class DossierFieldService
|
||||||
field_hash('Demandeur', 'user', 'email')
|
field_hash('Demandeur', 'user', 'email')
|
||||||
]
|
]
|
||||||
|
|
||||||
fields.push(
|
|
||||||
field_hash('Civilité (FC)', 'france_connect_information', 'gender'),
|
|
||||||
field_hash('Prénom (FC)', 'france_connect_information', 'given_name'),
|
|
||||||
field_hash('Nom (FC)', 'france_connect_information', 'family_name')
|
|
||||||
)
|
|
||||||
|
|
||||||
if !procedure.for_individual || (procedure.for_individual && procedure.individual_with_siret)
|
if !procedure.for_individual || (procedure.for_individual && procedure.individual_with_siret)
|
||||||
fields.push(
|
fields.push(
|
||||||
field_hash('SIREN', 'etablissement', 'entreprise_siren'),
|
field_hash('SIREN', 'etablissement', 'entreprise_siren'),
|
||||||
|
@ -53,8 +47,6 @@ class DossierFieldService
|
||||||
dossier.send(column)
|
dossier.send(column)
|
||||||
when 'user'
|
when 'user'
|
||||||
dossier.user.send(column)
|
dossier.user.send(column)
|
||||||
when 'france_connect_information'
|
|
||||||
dossier.user.france_connect_information&.send(column)
|
|
||||||
when 'etablissement'
|
when 'etablissement'
|
||||||
dossier.etablissement&.send(column)
|
dossier.etablissement&.send(column)
|
||||||
when 'type_de_champ'
|
when 'type_de_champ'
|
||||||
|
@ -82,11 +74,6 @@ class DossierFieldService
|
||||||
when 'self'
|
when 'self'
|
||||||
dossiers.where("? ILIKE ?", filter['column'], "%#{filter['value']}%")
|
dossiers.where("? ILIKE ?", filter['column'], "%#{filter['value']}%")
|
||||||
|
|
||||||
when 'france_connect_information'
|
|
||||||
dossiers
|
|
||||||
.includes(user: :france_connect_information)
|
|
||||||
.where("? ILIKE ?", "france_connect_informations.#{filter['column']}", "%#{filter['value']}%")
|
|
||||||
|
|
||||||
when 'type_de_champ', 'type_de_champ_private'
|
when 'type_de_champ', 'type_de_champ_private'
|
||||||
relation = table == 'type_de_champ' ? :champs : :champs_private
|
relation = table == 'type_de_champ' ? :champs : :champs_private
|
||||||
dossiers
|
dossiers
|
||||||
|
@ -133,11 +120,6 @@ class DossierFieldService
|
||||||
return dossiers
|
return dossiers
|
||||||
.order("#{column} #{order}")
|
.order("#{column} #{order}")
|
||||||
.pluck(:id)
|
.pluck(:id)
|
||||||
when 'france_connect_information'
|
|
||||||
return dossiers
|
|
||||||
.includes(user: :france_connect_information)
|
|
||||||
.order("#{column} #{order}")
|
|
||||||
.pluck(:id)
|
|
||||||
when 'type_de_champ', 'type_de_champ_private'
|
when 'type_de_champ', 'type_de_champ_private'
|
||||||
return dossiers
|
return dossiers
|
||||||
.includes(table == 'type_de_champ' ? :champs : :champs_private)
|
.includes(table == 'type_de_champ' ? :champs : :champs_private)
|
||||||
|
|
|
@ -1,12 +1,3 @@
|
||||||
- if current_user.loged_in_with_france_connect?
|
= link_to "/users/sign_out", method: :delete do
|
||||||
#fconnect-profile{ "data-fc-logout-url" => '/users/sign_out" data-method="delete' }
|
%span.fa.fa-sign-out
|
||||||
%a.text-info{ href: "#" }
|
Se déconnecter
|
||||||
= "#{current_user.given_name} #{current_user.family_name}"
|
|
||||||
= link_to "/users/sign_out", method: :delete do
|
|
||||||
%span.fa.fa-sign-out
|
|
||||||
Se déconnecter
|
|
||||||
|
|
||||||
- else
|
|
||||||
= link_to "/users/sign_out", method: :delete do
|
|
||||||
%span.fa.fa-sign-out
|
|
||||||
Se déconnecter
|
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
namespace :'2018_10_03_remove_fc_from_procedure_presentation' do
|
||||||
|
task run: :environment do
|
||||||
|
Class.new do
|
||||||
|
def run
|
||||||
|
fix_displayed_fields
|
||||||
|
fix_sort
|
||||||
|
fix_filters
|
||||||
|
end
|
||||||
|
|
||||||
|
def fix_displayed_fields
|
||||||
|
ProcedurePresentation.where(%q`displayed_fields @> '[{"table": "france_connect_information"}]'`).each do |procedure_presentation|
|
||||||
|
procedure_presentation.displayed_fields = procedure_presentation.displayed_fields.reject do |df|
|
||||||
|
df['table'] == 'france_connect_information'
|
||||||
|
end
|
||||||
|
|
||||||
|
procedure_presentation.save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def fix_sort
|
||||||
|
ProcedurePresentation.where(%q`sort @> '{"table": "france_connect_information"}'`).each do |procedure_presentation|
|
||||||
|
procedure_presentation.sort = {
|
||||||
|
"order" => "desc",
|
||||||
|
"table" => "notifications",
|
||||||
|
"column" => "notifications"
|
||||||
|
}
|
||||||
|
|
||||||
|
procedure_presentation.save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def fix_filters
|
||||||
|
ProcedurePresentation.find_by_sql(
|
||||||
|
<<~SQL
|
||||||
|
SELECT procedure_presentations.*
|
||||||
|
FROM procedure_presentations, LATERAL jsonb_each(filters)
|
||||||
|
WHERE value @> '[{"table": "france_connect_information"}]'
|
||||||
|
GROUP BY id;
|
||||||
|
SQL
|
||||||
|
).each do |procedure_presentation|
|
||||||
|
procedure_presentation.filters.keys.each do |key|
|
||||||
|
procedure_presentation.filters[key] = procedure_presentation.filters[key].reject do |filter|
|
||||||
|
filter['table'] == 'france_connect_information'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
procedure_presentation.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end.new.run
|
||||||
|
end
|
||||||
|
end
|
|
@ -75,7 +75,7 @@ describe Dossier do
|
||||||
dossier.update_search_terms
|
dossier.update_search_terms
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(dossier.search_terms).to eq("#{user.email} #{france_connect_information.given_name} #{france_connect_information.family_name} champ public #{etablissement.entreprise_siren} #{etablissement.entreprise_numero_tva_intracommunautaire} #{etablissement.entreprise_forme_juridique} #{etablissement.entreprise_forme_juridique_code} #{etablissement.entreprise_nom_commercial} #{etablissement.entreprise_raison_sociale} #{etablissement.entreprise_siret_siege_social} #{etablissement.entreprise_nom} #{etablissement.entreprise_prenom} #{etablissement.association_rna} #{etablissement.association_titre} #{etablissement.association_objet} #{etablissement.siret} #{etablissement.naf} #{etablissement.libelle_naf} #{etablissement.adresse} #{etablissement.code_postal} #{etablissement.localite} #{etablissement.code_insee_localite}") }
|
it { expect(dossier.search_terms).to eq("#{user.email} champ public #{etablissement.entreprise_siren} #{etablissement.entreprise_numero_tva_intracommunautaire} #{etablissement.entreprise_forme_juridique} #{etablissement.entreprise_forme_juridique_code} #{etablissement.entreprise_nom_commercial} #{etablissement.entreprise_raison_sociale} #{etablissement.entreprise_siret_siege_social} #{etablissement.entreprise_nom} #{etablissement.entreprise_prenom} #{etablissement.association_rna} #{etablissement.association_titre} #{etablissement.association_objet} #{etablissement.siret} #{etablissement.naf} #{etablissement.libelle_naf} #{etablissement.adresse} #{etablissement.code_postal} #{etablissement.localite} #{etablissement.code_insee_localite}") }
|
||||||
it { expect(dossier.private_search_terms).to eq('champ privé') }
|
it { expect(dossier.private_search_terms).to eq('champ privé') }
|
||||||
|
|
||||||
context 'with an update' do
|
context 'with an update' do
|
||||||
|
@ -749,7 +749,6 @@ describe Dossier do
|
||||||
|
|
||||||
it { expect(dossier.get_value('self', 'created_at')).to eq(dossier.created_at) }
|
it { expect(dossier.get_value('self', 'created_at')).to eq(dossier.created_at) }
|
||||||
it { expect(dossier.get_value('user', 'email')).to eq(user.email) }
|
it { expect(dossier.get_value('user', 'email')).to eq(user.email) }
|
||||||
it { expect(dossier.get_value('france_connect_information', 'gender')).to eq(user.france_connect_information.gender) }
|
|
||||||
it { expect(dossier.get_value('etablissement', 'entreprise_siren')).to eq(dossier.etablissement.entreprise_siren) }
|
it { expect(dossier.get_value('etablissement', 'entreprise_siren')).to eq(dossier.etablissement.entreprise_siren) }
|
||||||
it { expect(dossier.get_value('etablissement', 'siret')).to eq(dossier.etablissement.siret) }
|
it { expect(dossier.get_value('etablissement', 'siret')).to eq(dossier.etablissement.siret) }
|
||||||
it { expect(dossier.get_value('type_de_champ', @champ_public.type_de_champ.id.to_s)).to eq(dossier.champs.first.value) }
|
it { expect(dossier.get_value('type_de_champ', @champ_public.type_de_champ.id.to_s)).to eq(dossier.champs.first.value) }
|
||||||
|
|
|
@ -639,9 +639,6 @@ describe Procedure do
|
||||||
{ "label" => 'Créé le', "table" => 'self', "column" => 'created_at' },
|
{ "label" => 'Créé le', "table" => 'self', "column" => 'created_at' },
|
||||||
{ "label" => 'Mis à jour le', "table" => 'self', "column" => 'updated_at' },
|
{ "label" => 'Mis à jour le', "table" => 'self', "column" => 'updated_at' },
|
||||||
{ "label" => 'Demandeur', "table" => 'user', "column" => 'email' },
|
{ "label" => 'Demandeur', "table" => 'user', "column" => 'email' },
|
||||||
{ "label" => 'Civilité (FC)', "table" => 'france_connect_information', "column" => 'gender' },
|
|
||||||
{ "label" => 'Prénom (FC)', "table" => 'france_connect_information', "column" => 'given_name' },
|
|
||||||
{ "label" => 'Nom (FC)', "table" => 'france_connect_information', "column" => 'family_name' },
|
|
||||||
{ "label" => 'SIREN', "table" => 'etablissement', "column" => 'entreprise_siren' },
|
{ "label" => 'SIREN', "table" => 'etablissement', "column" => 'entreprise_siren' },
|
||||||
{ "label" => 'Forme juridique', "table" => 'etablissement', "column" => 'entreprise_forme_juridique' },
|
{ "label" => 'Forme juridique', "table" => 'etablissement', "column" => 'entreprise_forme_juridique' },
|
||||||
{ "label" => 'Nom commercial', "table" => 'etablissement', "column" => 'entreprise_nom_commercial' },
|
{ "label" => 'Nom commercial', "table" => 'etablissement', "column" => 'entreprise_nom_commercial' },
|
||||||
|
|
|
@ -118,22 +118,6 @@ describe DossierFieldService do
|
||||||
it { is_expected.to eq([older_dossier, recent_dossier].map(&:id)) }
|
it { is_expected.to eq([older_dossier, recent_dossier].map(&:id)) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'for france_connect_information table' do
|
|
||||||
let(:table) { 'france_connect_information' }
|
|
||||||
let(:column) { 'given_name' } # All other columns work the same, no extra test required
|
|
||||||
let(:order) { 'asc' } # Desc works the same, no extra test required
|
|
||||||
|
|
||||||
let(:anna_dossier) { create(:dossier, procedure: procedure) }
|
|
||||||
let(:zacharie_dossier) { create(:dossier, procedure: procedure) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
create(:france_connect_information, given_name: 'Anna', user: anna_dossier.user)
|
|
||||||
create(:france_connect_information, given_name: 'Zacharie', user: zacharie_dossier.user)
|
|
||||||
end
|
|
||||||
|
|
||||||
it { is_expected.to eq([anna_dossier, zacharie_dossier].map(&:id)) }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'for type_de_champ table' do
|
context 'for type_de_champ table' do
|
||||||
let(:table) { 'type_de_champ' }
|
let(:table) { 'type_de_champ' }
|
||||||
let(:column) { procedure.types_de_champ.first.id.to_s }
|
let(:column) { procedure.types_de_champ.first.id.to_s }
|
||||||
|
@ -202,17 +186,6 @@ describe DossierFieldService do
|
||||||
it { is_expected.to eq('bla@yopmail.com') }
|
it { is_expected.to eq('bla@yopmail.com') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'for france_connect_information table' do
|
|
||||||
let(:table) { 'france_connect_information' }
|
|
||||||
let(:column) { 'given_name' } # All other columns work the same, no extra test required
|
|
||||||
|
|
||||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
|
||||||
|
|
||||||
before { create(:france_connect_information, given_name: 'Anna', user: dossier.user) }
|
|
||||||
|
|
||||||
it { is_expected.to eq('Anna') }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'for etablissement table' do
|
context 'for etablissement table' do
|
||||||
let(:table) { 'etablissement' }
|
let(:table) { 'etablissement' }
|
||||||
let(:column) { 'code_postal' } # All other columns work the same, no extra test required
|
let(:column) { 'code_postal' } # All other columns work the same, no extra test required
|
||||||
|
|
9
vendor/assets/stylesheets/franceconnect.scss
vendored
9
vendor/assets/stylesheets/franceconnect.scss
vendored
|
@ -39,15 +39,6 @@
|
||||||
width: 38px;
|
width: 38px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#fconnect-profile > a {
|
|
||||||
padding: 15px 0 15px 50px;
|
|
||||||
color: #ffffff;
|
|
||||||
margin-right: 10px;
|
|
||||||
font-size: 18px;
|
|
||||||
background: image-url('logo_mini_FC.png') left center no-repeat;
|
|
||||||
background-size: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fconnect-access {
|
#fconnect-access {
|
||||||
all: initial;
|
all: initial;
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
|
Loading…
Reference in a new issue