Merge pull request #103 from sgmap/champ-dossier
Amélioration du champ dossier
This commit is contained in:
commit
619371ef1f
10 changed files with 51 additions and 12 deletions
|
@ -5,7 +5,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
var showData = function(data) {
|
var showData = function(data) {
|
||||||
$('.dossier-link .procedureLibelle').text(data.procedureLibelle);
|
$('.dossier-link .procedure-libelle').text(data.procedureLibelle);
|
||||||
$('.dossier-link .text-info').show();
|
$('.dossier-link .text-info').show();
|
||||||
$('.dossier-link .text-warning').hide();
|
$('.dossier-link .text-warning').hide();
|
||||||
};
|
};
|
||||||
|
|
|
@ -165,7 +165,7 @@ class Users::DossiersController < UsersController
|
||||||
end
|
end
|
||||||
|
|
||||||
def procedure_libelle
|
def procedure_libelle
|
||||||
dossier = Dossier.find(params[:dossier_id])
|
dossier = Dossier.includes(:procedure).find(params[:dossier_id])
|
||||||
render json: { procedureLibelle: dossier.procedure.libelle }
|
render json: { procedureLibelle: dossier.procedure.libelle }
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
render json: {}, status: 404
|
render json: {}, status: 404
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
.col-xs-5.depositaire-info{ id: "champ-#{champ.id}-value" }
|
.col-xs-5.depositaire-info{ id: "champ-#{champ.id}-value" }
|
||||||
- unless champ.decorate.value.blank?
|
- unless champ.decorate.value.blank?
|
||||||
- if champ.type_champ == 'dossier_link'
|
- if champ.type_champ == 'dossier_link'
|
||||||
- dossier = Dossier.find_by(id: champ.decorate.value)
|
- dossier = Dossier.includes(:procedure).find_by(id: champ.decorate.value)
|
||||||
- if dossier && gestionnaire_signed_in?
|
- if dossier && gestionnaire_signed_in?
|
||||||
= link_to(dossier.procedure.libelle, backoffice_dossier_path(champ.decorate.value), target: '_blank')
|
= link_to(dossier.procedure.libelle, backoffice_dossier_path(champ.decorate.value), target: '_blank')
|
||||||
- else
|
- else
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
- dossier = Dossier.find_by(id: champ.value)
|
- dossier = Dossier.includes(:procedure).find_by(id: champ.value)
|
||||||
- show_procedure_libelle = dossier ? true : false
|
- show_procedure_libelle = dossier ? true : false
|
||||||
- show_warning = !show_procedure_libelle && champ.value.present?
|
- show_warning = !show_procedure_libelle && champ.value.present?
|
||||||
- procedure_libelle = dossier.nil? ? '' : dossier.procedure.libelle
|
- procedure_libelle = dossier.nil? ? '' : dossier.procedure.libelle
|
||||||
|
@ -16,6 +16,7 @@
|
||||||
%p.text-info{ style: show_procedure_libelle ? nil : 'display: none;' }
|
%p.text-info{ style: show_procedure_libelle ? nil : 'display: none;' }
|
||||||
ce dossier répond à la procédure :
|
ce dossier répond à la procédure :
|
||||||
%br
|
%br
|
||||||
%span.procedureLibelle= procedure_libelle
|
%span.procedure-libelle= procedure_libelle
|
||||||
|
|
||||||
%p.text-warning{ style: show_warning ? nil : 'display: none;' }
|
%p.text-warning{ style: show_warning ? nil : 'display: none;' }
|
||||||
ce dossier est inconnu
|
Ce dossier est inconnu
|
||||||
|
|
|
@ -55,6 +55,17 @@ FactoryGirl.define do
|
||||||
archived false
|
archived false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
trait :with_dossier_link do
|
||||||
|
after(:create) do |dossier, _evaluator|
|
||||||
|
linked_dossier = create(:dossier)
|
||||||
|
type_de_champ = dossier.procedure.types_de_champ.find { |t| t.type_champ == 'dossier_link' }
|
||||||
|
champ = dossier.champs.find { |c| c.type_de_champ == type_de_champ }
|
||||||
|
|
||||||
|
champ.value = linked_dossier.id
|
||||||
|
champ.save!
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
trait :replied do
|
trait :replied do
|
||||||
state 'replied'
|
state 'replied'
|
||||||
end
|
end
|
||||||
|
|
|
@ -61,6 +61,14 @@ FactoryGirl.define do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
trait :with_dossier_link do
|
||||||
|
after(:build) do |procedure, _evaluator|
|
||||||
|
type_de_champ = create(:type_de_champ_public, :type_dossier_link)
|
||||||
|
|
||||||
|
procedure.types_de_champ << type_de_champ
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
trait :with_two_type_de_piece_justificative do
|
trait :with_two_type_de_piece_justificative do
|
||||||
after(:build) do |procedure, _evaluator|
|
after(:build) do |procedure, _evaluator|
|
||||||
rib = create(:type_de_piece_justificative, :rib, order_place: 1)
|
rib = create(:type_de_piece_justificative, :rib, order_place: 1)
|
||||||
|
|
|
@ -9,5 +9,10 @@ FactoryGirl.define do
|
||||||
trait :checkbox do
|
trait :checkbox do
|
||||||
type_champ 'checkbox'
|
type_champ 'checkbox'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
trait :type_dossier_link do
|
||||||
|
libelle 'Référence autre dossier'
|
||||||
|
type_champ 'dossier_link'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,8 +3,8 @@ require 'spec_helper'
|
||||||
feature 'As a User I want to edit a dossier I own' do
|
feature 'As a User I want to edit a dossier I own' do
|
||||||
|
|
||||||
let(:user) { create(:user) }
|
let(:user) { create(:user) }
|
||||||
let(:procedure_for_individual) { create(:procedure, :published, :for_individual, :with_type_de_champ, :with_two_type_de_piece_justificative) }
|
let(:procedure_for_individual) { create(:procedure, :published, :for_individual, :with_type_de_champ, :with_two_type_de_piece_justificative, :with_dossier_link) }
|
||||||
let!(:dossier) { create(:dossier, :with_entreprise, :for_individual, procedure: procedure_for_individual, user: user, autorisation_donnees: true, state: 'initiated') }
|
let!(:dossier) { create(:dossier, :with_entreprise, :for_individual, :with_dossier_link, procedure: procedure_for_individual, user: user, autorisation_donnees: true, state: 'initiated') }
|
||||||
|
|
||||||
before "Create dossier and visit root path" do
|
before "Create dossier and visit root path" do
|
||||||
login_as user, scope: :user
|
login_as user, scope: :user
|
||||||
|
@ -23,7 +23,7 @@ feature 'As a User I want to edit a dossier I own' do
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'Getting a dossier, I want to create a new message on', js: true do
|
scenario 'Getting a dossier, I want to create a new message on', js: true do
|
||||||
page.find_by_id('tr_dossier_' + Dossier.last.id.to_s).click
|
page.find_by_id('tr_dossier_' + dossier.id.to_s).click
|
||||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true)
|
expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true)
|
||||||
page.find_by_id('open-message').click
|
page.find_by_id('open-message').click
|
||||||
page.execute_script("$('#texte_commentaire').data('wysihtml5').editor.setValue('Contenu du nouveau message')")
|
page.execute_script("$('#texte_commentaire').data('wysihtml5').editor.setValue('Contenu du nouveau message')")
|
||||||
|
@ -34,12 +34,18 @@ feature 'As a User I want to edit a dossier I own' do
|
||||||
scenario 'On the same dossier, I want to edit informations', js: true do
|
scenario 'On the same dossier, I want to edit informations', js: true do
|
||||||
page.find_by_id('tr_dossier_' + dossier.id.to_s).click
|
page.find_by_id('tr_dossier_' + dossier.id.to_s).click
|
||||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true)
|
expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true)
|
||||||
|
|
||||||
|
# Linked Dossier
|
||||||
|
linked_dossier_id = dossier.champs.find { |c| c.type_de_champ.type_champ == 'dossier_link' }.value
|
||||||
|
linked_dossier = Dossier.find(linked_dossier_id)
|
||||||
|
expect(page).to have_content(linked_dossier.procedure.libelle)
|
||||||
|
|
||||||
page.find_by_id('maj_infos').trigger('click')
|
page.find_by_id('maj_infos').trigger('click')
|
||||||
expect(page).to have_current_path(users_dossier_description_path(dossier.id.to_s), only_path: true)
|
expect(page).to have_current_path(users_dossier_description_path(dossier.id.to_s), only_path: true)
|
||||||
fill_in "champs_#{dossier.champs.first.id.to_s}", with: 'Contenu du champ 1'
|
fill_in "champs_#{dossier.champs.order(:id).first.id.to_s}", with: 'Contenu du champ 1'
|
||||||
page.find_by_id('modification_terminee').click
|
page.find_by_id('modification_terminee').click
|
||||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true)
|
expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true)
|
||||||
expect(page.find("#champ-#{dossier.champs.first.id}-value").text).to eq('Contenu du champ 1')
|
expect(page.find("#champ-#{dossier.champs.order(:id).first.id}-value").text).to eq('Contenu du champ 1')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,14 @@ describe 'users/description/champs/dossier_link.html.haml', type: :view do
|
||||||
render 'users/description/champs/dossier_link.html.haml', champ: champ
|
render 'users/description/champs/dossier_link.html.haml', champ: champ
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'in all cases' do
|
||||||
|
let!(:champ) { create(:champ, type_de_champ: type_champ, value: nil) }
|
||||||
|
|
||||||
|
it 'should render an input for the dossier link' do
|
||||||
|
expect(rendered).to have_css("input[type=number][placeholder=#{champ.libelle}]")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'When no dossier is provided' do
|
context 'When no dossier is provided' do
|
||||||
let!(:champ) { create(:champ, type_de_champ: type_champ, value: nil) }
|
let!(:champ) { create(:champ, type_de_champ: type_champ, value: nil) }
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ describe 'users/description/champs/render_list_champs.html.haml', type: :view do
|
||||||
render 'users/description/champs/render_list_champs.html.haml', champs: Champ.all, order_place: 0
|
render 'users/description/champs/render_list_champs.html.haml', champs: Champ.all, order_place: 0
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should render a number input with the right data-attribute' do
|
it 'should render the _dossier_link partial' do
|
||||||
expect(view).to render_template(partial: 'users/description/champs/_dossier_link',
|
expect(view).to render_template(partial: 'users/description/champs/_dossier_link',
|
||||||
locals: { champ: champ })
|
locals: { champ: champ })
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue