Allow the customization of the dossiers table

This commit is contained in:
gregoirenovel 2017-10-02 17:03:38 +02:00
parent 7036f9778b
commit e1bdbec815
14 changed files with 311 additions and 5 deletions

View file

@ -835,4 +835,28 @@ describe Dossier do
it { expect(Dossier.count).to eq(0) }
end
end
describe "#get_value" do
let(:dossier) { create(:dossier, :with_entreprise, user: user) }
before do
FranceConnectInformation.create(france_connect_particulier_id: 123, user: user, gender: 'male')
@champ_public = dossier.champs.first
@champ_public.value = "kiwi"
@champ_public.save
@champ_private = dossier.champs_private.first
@champ_private.value = "banane"
@champ_private.save
end
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('france_connect_information', 'gender')).to eq(user.france_connect_information.gender) }
it { expect(dossier.get_value('entreprise', 'siren')).to eq(dossier.entreprise.siren) }
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_private', @champ_private.type_de_champ.id.to_s)).to eq(dossier.champs_private.first.value) }
end
end

View file

@ -382,4 +382,12 @@ describe Gestionnaire, type: :model do
it { is_expected.to eq({ }) }
end
end
describe "procedure_presentation_for_procedure_id" do
let!(:procedure_assign_2) { create :assign_to, gestionnaire: gestionnaire, procedure: procedure_2 }
let!(:pp) { ProcedurePresentation.create(assign_to: procedure_assign) }
it { expect(gestionnaire.procedure_presentation_for_procedure_id(procedure.id)).to eq(pp)}
it { expect(gestionnaire.procedure_presentation_for_procedure_id(procedure_2.id).persisted?).to be_falsey}
end
end

View file

@ -0,0 +1,13 @@
require 'spec_helper'
describe ProcedurePresentation do
let (:procedure_presentation_id) { ProcedurePresentation.create(displayed_fields: [
{ "label" => "test1", "table" => "user" }.to_json,
{ "label" => "test2", "table" => "champs" }.to_json]
).id }
let (:procedure_presentation) { ProcedurePresentation.find(procedure_presentation_id) }
describe "#displayed_fields" do
it { expect(procedure_presentation.displayed_fields).to eq([{"label" => "test1", "table" => "user"}, {"label" => "test2", "table" => "champs"}]) }
end
end

View file

@ -421,4 +421,55 @@ describe Procedure do
it { expect(Dossier.count).to eq(0) }
end
end
describe "#fields" do
subject { create(:procedure, :with_type_de_champ, :with_type_de_champ_private, :types_de_champ_count => 2, :types_de_champ_private_count => 2) }
let(:tdc_1) { subject.types_de_champ.first }
let(:tdc_2) { subject.types_de_champ.last }
let(:tdc_private_1) { subject.types_de_champ_private.first }
let(:tdc_private_2) { subject.types_de_champ_private.last }
let(:expected) {
[
{ "label" => 'Créé le', "table" => 'self', "column" => 'created_at' },
{ "label" => 'Mis à jour le', "table" => 'self', "column" => 'updated_at' },
{ "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" => 'entreprise', "column" => 'siren' },
{ "label" => 'Forme juridique', "table" => 'entreprise', "column" => 'forme_juridique' },
{ "label" => 'Nom commercial', "table" => 'entreprise', "column" => 'nom_commercial' },
{ "label" => 'Raison sociale', "table" => 'entreprise', "column" => 'raison_sociale' },
{ "label" => 'SIRET siège social', "table" => 'entreprise', "column" => 'siret_siege_social' },
{ "label" => 'Date de création', "table" => 'entreprise', "column" => 'date_creation' },
{ "label" => 'SIRET', "table" => 'etablissement', "column" => 'siret' },
{ "label" => 'Nom établissement', "table" => 'etablissement', "column" => 'libelle_naf' },
{ "label" => 'Code postal', "table" => 'etablissement', "column" => 'code_postal' },
{ "label" => tdc_1.libelle, "table" => 'type_de_champ', "column" => tdc_1.id.to_s },
{ "label" => tdc_2.libelle, "table" => 'type_de_champ', "column" => tdc_2.id.to_s },
{ "label" => tdc_private_1.libelle, "table" => 'type_de_champ_private', "column" => tdc_private_1.id.to_s },
{ "label" => tdc_private_2.libelle, "table" => 'type_de_champ_private', "column" => tdc_private_2.id.to_s }
]
}
it { expect(subject.fields).to eq(expected) }
end
describe "#fields_for_select" do
subject { create(:procedure) }
before do
allow(subject).to receive(:fields).and_return([{
"label" => "label1",
"table" => "table1",
"column" => "column1"
}, {
"label" => "label2",
"table" => "table2",
"column" => "column2"
}])
end
it { expect(subject.fields_for_select).to eq([["label1", "table1/column1"], ["label2", "table2/column2"]]) }
end
end