Merge branch 'develop' into staging
This commit is contained in:
commit
56e7508079
35 changed files with 252 additions and 109 deletions
|
@ -91,7 +91,7 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
|
||||
NotificationMailer.dossier_received(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
redirect_to backoffice_dossier_path(id: @facade.dossier.id)
|
||||
end
|
||||
|
||||
def refuse
|
||||
|
@ -102,7 +102,7 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
|
||||
NotificationMailer.dossier_refused(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
redirect_to backoffice_dossier_path(id: @facade.dossier.id)
|
||||
end
|
||||
|
||||
def without_continuation
|
||||
|
@ -113,7 +113,7 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
|
||||
NotificationMailer.dossier_without_continuation(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
redirect_to backoffice_dossier_path(id: @facade.dossier.id)
|
||||
end
|
||||
|
||||
def close
|
||||
|
@ -124,7 +124,7 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
|
||||
NotificationMailer.dossier_closed(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
redirect_to backoffice_dossier_path(id: @facade.dossier.id)
|
||||
end
|
||||
|
||||
def follow
|
||||
|
|
|
@ -4,9 +4,11 @@ class RootController < ApplicationController
|
|||
|
||||
if user_signed_in? && !route[:controller].match('users').nil?
|
||||
return redirect_to users_dossiers_path
|
||||
end
|
||||
|
||||
if gestionnaire_signed_in?
|
||||
elsif administrateur_signed_in? && !route[:controller].match('admin').nil?
|
||||
return redirect_to admin_procedures_path
|
||||
|
||||
elsif gestionnaire_signed_in?
|
||||
procedure_id = current_gestionnaire.procedure_filter
|
||||
if procedure_id.nil?
|
||||
procedure_list = current_gestionnaire.procedures
|
||||
|
@ -16,7 +18,10 @@ class RootController < ApplicationController
|
|||
else
|
||||
flash.alert = "Vous n'avez aucune procédure d'affectée"
|
||||
end
|
||||
else
|
||||
return redirect_to backoffice_dossiers_procedure_path(id: procedure_id)
|
||||
end
|
||||
|
||||
elsif user_signed_in?
|
||||
return redirect_to users_dossiers_path
|
||||
|
||||
|
@ -25,7 +30,6 @@ class RootController < ApplicationController
|
|||
|
||||
elsif administration_signed_in?
|
||||
return redirect_to administrations_path
|
||||
|
||||
end
|
||||
|
||||
# @latest_release = Github::Releases.latest
|
||||
|
|
|
@ -32,7 +32,7 @@ class Users::CarteController < UsersController
|
|||
end
|
||||
|
||||
def get_position
|
||||
point = Carto::Geocodeur.convert_adresse_to_point(current_user_dossier.etablissement.geo_adresse)
|
||||
point = Carto::Geocodeur.convert_adresse_to_point(current_user_dossier.etablissement.geo_adresse) rescue nil
|
||||
|
||||
lon = '2.428462'
|
||||
lat = '46.538192'
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
.row.white-back
|
||||
= render partial: 'admin/procedures/head', locals: {active: 'Accompagnateurs'}
|
||||
|
||||
#accompagnateur_form
|
||||
.row
|
||||
.col-md-6.col-lg-6
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
.row.white-back
|
||||
= render partial: 'admin/procedures/head', locals: {active: 'E-mails'}
|
||||
|
||||
%h3
|
||||
E-mail d'accusé de réception
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
.row.white-back
|
||||
= render partial: 'admin/procedures/head', locals: {active: 'Pieces'}
|
||||
|
||||
#piece_justificative_form
|
||||
= render 'form'
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
.row.white-back
|
||||
= render partial: 'admin/procedures/head', locals: {active: 'Prévisualisation'}
|
||||
|
||||
#previsualisation
|
||||
= render 'users/description/show'
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
%h2.text-info
|
||||
-unless @procedure.logo.blank?
|
||||
= image_tag @procedure.decorate.logo_img, style: 'width: 30px'
|
||||
=@procedure.libelle
|
||||
%br
|
||||
|
||||
%ul.nav.nav-tabs
|
||||
= render partial: 'admin/procedures/navbar', locals: {active: active}
|
|
@ -1,27 +0,0 @@
|
|||
%li{ class: ('active' if active == 'Informations') }
|
||||
= link_to 'Informations', admin_procedure_path(@procedure), id: 'onglet-infos'
|
||||
|
||||
%li{ class: ('active' if active == 'Accompagnateurs') }
|
||||
= link_to t('dynamics.admin.procedure.onglets.accompagnateurs'), admin_procedure_accompagnateurs_path(@procedure), id: 'onglet-accompagnateurs'
|
||||
|
||||
%li{ class: ('disabled' if @procedure.locked?) || ('active' if active == 'Description') }
|
||||
= link_to_unless(@procedure.locked?, 'Description', edit_admin_procedure_path(@procedure), id: 'onglet-description') do
|
||||
= link_to 'Description', '#', id: 'onglet-description'
|
||||
|
||||
%li{ class: ('disabled' if @procedure.locked?) || ('active' if active == 'Champs') }
|
||||
= link_to_unless(@procedure.locked?, 'Champs', admin_procedure_types_de_champ_path(@procedure), id: 'onglet-champs') do
|
||||
= link_to 'Champs', '#', id: 'onglet-champs'
|
||||
|
||||
%li{ class: ('disabled' if @procedure.locked?) || ('active' if active == 'Pieces') }
|
||||
= link_to_unless(@procedure.locked?, 'Pièces justificatives', admin_procedure_pieces_justificatives_path(@procedure), id: 'onglet-pieces') do
|
||||
= link_to 'Pièces justificatives', '#', id: 'onglet-pieces'
|
||||
|
||||
%li{ class: ('disabled' if @procedure.locked?) || ('active' if active == 'Champs privés') }
|
||||
= link_to_unless(@procedure.locked?, 'Champs privés', admin_procedure_types_de_champ_private_path(@procedure), id: 'onglet-private-champs') do
|
||||
= link_to 'Champs privés', '#', id: 'onglet-private-champs'
|
||||
|
||||
%li{ class: ('active' if active == 'E-mails') }
|
||||
= link_to 'E-mails', admin_procedure_mails_path(@procedure), id: 'onglet-emails'
|
||||
|
||||
%li{ class: ('active' if active == 'Prévisualisation'), style: 'float:right' }
|
||||
= link_to 'Prévisualisation', admin_procedure_previsualisation_path(@procedure), id: 'onglet-preview'
|
|
@ -1,6 +1,4 @@
|
|||
.row.white-back
|
||||
= render partial: 'head', locals: {active: 'Description'}
|
||||
|
||||
#procedure_new.section.section-label
|
||||
= form_for @procedure, url: url_for({controller: 'admin/procedures', action: :update, id: @procedure.id}), multipart: true do |f|
|
||||
= render partial: 'informations', locals: {f: f}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
.row.white-back
|
||||
#procedure_show
|
||||
= render partial: 'head', locals: {active: 'Informations'}
|
||||
|
||||
-unless @facade.procedure.published?
|
||||
- if @facade.procedure.gestionnaires.size == 0
|
||||
%a.action_button.btn.btn-success{style:'float: right; margin-top: 10px', disabled: 'disabled', 'data-toggle' => :tooltip, title: 'Vous ne pouvez pas publier une procédure sans qu\'aucun accompagnateur ne soit affecté à celle-ci.', id: 'publish-procedure'}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
.row.white-back
|
||||
= render partial: 'admin/procedures/head', locals: {active: @types_de_champ_facade.active}
|
||||
|
||||
#liste_champ
|
||||
= render partial: 'admin/types_de_champ/form'
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
%textarea.form-control{id: 'texte_commentaire', class: 'wysihtml5', name: 'texte_commentaire', style: 'width: 100%; margin-bottom:2%', rows: '5', placeholder:"Commentaire"}
|
||||
%h4.text-primary{style: 'margin-top: 0px'} Ajouter un fichier
|
||||
= file_field_tag "piece_justificative[content]", accept: PieceJustificative.accept_format, style: 'float: left; margin-left: 20px'
|
||||
%input.form-control.btn.btn-send{ type: 'submit', value: 'ENVOYER' }
|
||||
%input#save-message.form-control.btn.btn-send{ type: 'submit', value: 'ENVOYER' }
|
||||
- if last_comment = @facade.commentaires.first
|
||||
%div.last-commentaire
|
||||
.row
|
||||
|
@ -40,13 +40,13 @@
|
|||
= file.original_filename
|
||||
.row
|
||||
.col-lg-12.col-md-12
|
||||
%div.new-action
|
||||
%div#open-message.new-action
|
||||
ENVOYER UN MESSAGE
|
||||
- else
|
||||
.last-commentaire
|
||||
.row
|
||||
.col-lg-12.col-md-12
|
||||
%div.new-action
|
||||
%div#open-message.new-action
|
||||
ENVOYER UN MESSAGE
|
||||
|
||||
- if @facade.procedure.individual_with_siret
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- unless @facade.dossier.read_only?
|
||||
- if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email))
|
||||
%a#maj_infos.action{href: "/users/dossiers/#{@facade.dossier.id}/description"}
|
||||
%div.col-lg-2.col-md-2.action
|
||||
%div#edit-dossier.col-lg-2.col-md-2.action
|
||||
= "éditer".upcase
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
- else
|
||||
%div.col-md-1.col-lg-1.comments-off
|
||||
= "-"
|
||||
%div.col-md-5.col-lg-5.depositaire-info
|
||||
%div.col-md-5.col-lg-5.depositaire-info{ id: "champ-#{champ.id}-value" }
|
||||
- unless champ.decorate.value.blank?
|
||||
= champ.decorate.value.html_safe
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
.form-group.form-group-lg
|
||||
= f.text_field :siret, class: "form-control", placeholder: "Entrez votre Siret", value: @siret
|
||||
= f.hidden_field :dossier_id, value: @facade.dossier.id
|
||||
= f.submit 'Valider', class: %w(btn btn-lg btn-success), data: { disable_with: "Recherche en cours ..." }
|
||||
= f.submit 'Valider', class: %w(btn btn-lg btn-success), id: 'submit-siret', data: { disable_with: "Recherche en cours ..." }
|
||||
- else
|
||||
%br
|
||||
#recap_info_entreprise
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Accompagnateurs'}
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'E-mails'}
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Pieces'}
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Prévisualisation'}
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Description'}
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
%div#first-block
|
||||
%div.en-cours
|
||||
-unless @procedure.logo.blank?
|
||||
= image_tag @procedure.decorate.logo_img, style: 'width: 30px'
|
||||
%b
|
||||
=@procedure.libelle
|
||||
|
||||
%div#action-block
|
||||
|
||||
%div#menu-block
|
||||
%div.split-hr-left
|
||||
#procedure_list
|
||||
%a{:href => "#{url_for admin_procedure_path(@procedure)}", id: 'onglet-infos'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Informations')}
|
||||
Informations
|
||||
|
||||
%a{:href => "#{url_for admin_procedure_accompagnateurs_path(@procedure)}", id: 'onglet-accompagnateurs'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Accompagnateurs')}
|
||||
=t('dynamics.admin.procedure.onglets.accompagnateurs')
|
||||
|
||||
- unless @procedure.locked?
|
||||
%a{:href => "#{url_for edit_admin_procedure_path(@procedure)}", id: 'onglet-description'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Description')}
|
||||
Description
|
||||
|
||||
- unless @procedure.locked?
|
||||
%a{:href => "#{url_for admin_procedure_types_de_champ_path(@procedure)}", id: 'onglet-champs'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Champs')}
|
||||
Champs
|
||||
|
||||
- unless @procedure.locked?
|
||||
%a{:href => "#{url_for admin_procedure_pieces_justificatives_path(@procedure)}", id: 'onglet-pieces'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Pieces')}
|
||||
Pièces justificatives
|
||||
|
||||
- unless @procedure.locked?
|
||||
%a{:href => "#{url_for admin_procedure_types_de_champ_private_path(@procedure)}", id: 'onglet-private-champs'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Champs privés')}
|
||||
Champs privés
|
||||
|
||||
%a{:href => "#{url_for admin_procedure_mails_path(@procedure)}", id: 'onglet-inemailsfos'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'E-mails')}
|
||||
E-mails
|
||||
|
||||
%a{:href => "#{url_for admin_procedure_previsualisation_path(@procedure)}", id: 'onglet-preview'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Prévisualisation')}
|
||||
Prévisualisation
|
||||
|
||||
%div.split-hr-left
|
||||
|
||||
|
||||
%div#infos-block
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Informations'}
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: @types_de_champ_facade.active}
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: "Champs privés"}
|
|
@ -11,37 +11,37 @@
|
|||
%div.split-hr-left
|
||||
#procedure_list
|
||||
%a{:href => "#{url_for users_dossiers_path(liste: 'brouillon')}", 'data-toggle' => :tooltip, title: 'Les dossiers jamais proposés à la relecture.'}
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.brouillon_class }
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.brouillon_class, id: 'brouillon' }
|
||||
= "Brouillons"
|
||||
.badge.progress-bar-default
|
||||
= @dossiers_list_facade.brouillon_total
|
||||
|
||||
%a{:href => "#{url_for users_dossiers_path(liste: 'a_traiter')}", 'data-toggle' => :tooltip, title: 'Les dossiers qui requièrent une action de votre part.'}
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.en_construction_class }
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.en_construction_class, id: 'a_traiter' }
|
||||
= "En construction"
|
||||
.badge.progress-bar-danger
|
||||
= @dossiers_list_facade.en_construction_total
|
||||
|
||||
%a{:href => "#{url_for users_dossiers_path(liste: 'valides')}", 'data-toggle' => :tooltip, title: 'Les dossiers relus par votre accompagnateur pouvant être déposés pour examen.'}
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.valides_class }
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.valides_class, id: 'valides' }
|
||||
="À déposer"
|
||||
.badge.progress-bar-purple
|
||||
= @dossiers_list_facade.valides_total
|
||||
|
||||
%a{:href => "#{url_for users_dossiers_path(liste: 'en_instruction')}", 'data-toggle' => :tooltip, title: 'Les dossiers en cours d\'examen par l\'administration compétante.'}
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.en_instruction_class }
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.en_instruction_class, id: 'en_instruction' }
|
||||
="En examen"
|
||||
.badge.progress-bar-default
|
||||
= @dossiers_list_facade.en_instruction_total
|
||||
|
||||
%a{:href => "#{url_for users_dossiers_path(liste: 'termine')}", 'data-toggle' => :tooltip, title: 'Les dossiers cloturés qui peuvent être "Accepté", "Refusé" ou "Sans suite".'}
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.termine_class }
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.termine_class, id: 'termine' }
|
||||
= "Cloturé"
|
||||
.badge.progress-bar-success
|
||||
= @dossiers_list_facade.termine_total
|
||||
|
||||
%a{:href => "#{url_for users_dossiers_path(liste: 'invite')}"}
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.invite_class }
|
||||
%div.procedure_list_element{ class: @dossiers_list_facade.invite_class, id: 'invite' }
|
||||
= "Invitation"
|
||||
.badge.progress-bar-warning
|
||||
= @dossiers_list_facade.invite_total
|
||||
|
|
|
@ -47,7 +47,8 @@
|
|||
Vous pourrez dans tous les cas les compléter plus tard si vous ne les possédez pas de suite.
|
||||
|
||||
|
||||
- if user_signed_in?
|
||||
-route = Rails.application.routes.recognize_path(request.referrer)
|
||||
- unless route[:controller].match('admin')
|
||||
%div{style: 'text-align:right'}
|
||||
%h6 Tous les champs portant un * sont obligatoires.
|
||||
|
||||
|
|
|
@ -155,6 +155,8 @@ describe Backoffice::DossiersController, type: :controller do
|
|||
|
||||
subject
|
||||
end
|
||||
|
||||
it { is_expected.to redirect_to backoffice_dossier_path(id: dossier.id) }
|
||||
end
|
||||
|
||||
describe 'POST #receive' do
|
||||
|
@ -182,6 +184,8 @@ describe Backoffice::DossiersController, type: :controller do
|
|||
|
||||
subject
|
||||
end
|
||||
|
||||
it { is_expected.to redirect_to backoffice_dossier_path(id: dossier.id) }
|
||||
end
|
||||
|
||||
describe 'POST #refuse' do
|
||||
|
@ -205,6 +209,8 @@ describe Backoffice::DossiersController, type: :controller do
|
|||
|
||||
subject
|
||||
end
|
||||
|
||||
it { is_expected.to redirect_to backoffice_dossier_path(id: dossier.id) }
|
||||
end
|
||||
|
||||
describe 'POST #without_continuation' do
|
||||
|
@ -228,6 +234,8 @@ describe Backoffice::DossiersController, type: :controller do
|
|||
|
||||
subject
|
||||
end
|
||||
|
||||
it { is_expected.to redirect_to backoffice_dossier_path(id: dossier.id) }
|
||||
end
|
||||
|
||||
describe 'POST #close' do
|
||||
|
@ -250,6 +258,8 @@ describe Backoffice::DossiersController, type: :controller do
|
|||
|
||||
subject
|
||||
end
|
||||
|
||||
it { is_expected.to redirect_to backoffice_dossier_path(id: dossier.id) }
|
||||
end
|
||||
|
||||
describe 'PUT #toggle_follow' do
|
||||
|
|
|
@ -22,6 +22,12 @@ FactoryGirl.define do
|
|||
end
|
||||
end
|
||||
|
||||
trait :for_individual do
|
||||
after(:build) do |procedure, _evaluator|
|
||||
procedure.for_individual = true
|
||||
end
|
||||
end
|
||||
|
||||
trait :with_type_de_champ do
|
||||
after(:build) do |procedure, _evaluator|
|
||||
type_de_champ = create(:type_de_champ_public)
|
||||
|
|
|
@ -17,43 +17,44 @@ feature 'procedure locked' do
|
|||
end
|
||||
end
|
||||
context 'when procedure is published' do
|
||||
let(:published) { true }
|
||||
before do
|
||||
visit admin_procedure_path(procedure)
|
||||
end
|
||||
|
||||
scenario 'info label is present' do
|
||||
expect(page).to have_content('La procédure ne peut plus être modifiée car elle a été publiée')
|
||||
end
|
||||
|
||||
context 'when user click on Description tab' do
|
||||
before do
|
||||
page.click_on 'Description'
|
||||
end
|
||||
|
||||
scenario 'page doest not change' do
|
||||
expect(page).to have_css('#procedure_show')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user click on Champs tab' do
|
||||
before do
|
||||
page.click_on 'Champs'
|
||||
end
|
||||
|
||||
scenario 'page doest not change' do
|
||||
expect(page).to have_css('#procedure_show')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user click on Pieces Justificatives tab' do
|
||||
before do
|
||||
page.click_on 'Pièces justificatives'
|
||||
end
|
||||
|
||||
scenario 'page doest not change' do
|
||||
expect(page).to have_css('#procedure_show')
|
||||
end
|
||||
end
|
||||
pending 'à voir si on enlève complètement les référence dans le left panel ou pas'
|
||||
# let(:published) { true }
|
||||
# before do
|
||||
# visit admin_procedure_path(procedure)
|
||||
# end
|
||||
#
|
||||
# scenario 'info label is present' do
|
||||
# expect(page).to have_content('La procédure ne peut plus être modifiée car elle a été publiée')
|
||||
# end
|
||||
#
|
||||
# context 'when user click on Description tab' do
|
||||
# before do
|
||||
# page.click_on 'Description'
|
||||
# end
|
||||
#
|
||||
# scenario 'page doest not change' do
|
||||
# expect(page).to have_css('#procedure_show')
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# context 'when user click on Champs tab' do
|
||||
# before do
|
||||
# page.click_on 'Champs'
|
||||
# end
|
||||
#
|
||||
# scenario 'page doest not change' do
|
||||
# expect(page).to have_css('#procedure_show')
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# context 'when user click on Pieces Justificatives tab' do
|
||||
# before do
|
||||
# page.click_on 'Pièces justificatives'
|
||||
# end
|
||||
#
|
||||
# scenario 'page doest not change' do
|
||||
# expect(page).to have_css('#procedure_show')
|
||||
# end
|
||||
# end
|
||||
end
|
||||
end
|
||||
|
|
53
spec/features/users/dossier_creation_spec.rb
Normal file
53
spec/features/users/dossier_creation_spec.rb
Normal file
|
@ -0,0 +1,53 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'As a User I wanna create a dossier', js: true do
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:siret) { '40307130100044' }
|
||||
let(:siren) { siret[0...9] }
|
||||
|
||||
context 'Right after sign_in I shall see inscription by credentials/siret, I can create a new Dossier' do
|
||||
let(:procedure_with_siret) { create(:procedure, :published, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) }
|
||||
let(:procedure_for_individual) { create(:procedure, :published, :for_individual, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) }
|
||||
|
||||
scenario 'Identification for individual' do
|
||||
login_as user, scope: :user
|
||||
visit commencer_path(procedure_path: procedure_for_individual.path)
|
||||
fill_in 'dossier_individual_attributes_nom', with: 'Nom'
|
||||
fill_in 'dossier_individual_attributes_prenom', with: 'Prenom'
|
||||
fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987'
|
||||
find(:css, "#dossier_autorisation_donnees[value='1']").set(true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
expect(page).to have_current_path(users_dossier_carte_path(Dossier.first.id.to_s), only_path: true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
fill_in 'champs_1', with: 'contenu du champ 1'
|
||||
page.find_by_id('suivant').click
|
||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true)
|
||||
end
|
||||
|
||||
scenario 'Identification through siret' do
|
||||
login_as user, scope: :user
|
||||
visit commencer_path(procedure_path: procedure_with_siret.path)
|
||||
expect(page).to have_current_path(users_dossier_path(Dossier.first.id.to_s), only_path: true)
|
||||
fill_in 'dossier_siret', with: siret
|
||||
stub_request(:get, "https://api-dev.apientreprise.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
|
||||
.to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
|
||||
stub_request(:get, "https://api-dev.apientreprise.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
|
||||
.to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
|
||||
stub_request(:get, "https://api-dev.apientreprise.fr/v1/etablissements/exercices/#{siret}?token=#{SIADETOKEN}")
|
||||
.to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
|
||||
stub_request(:get, "https://api-dev.apientreprise.fr/v1/associations/#{siret}?token=#{SIADETOKEN}")
|
||||
.to_return(status: 404, body: '')
|
||||
page.find_by_id('dossier_siret').set siret
|
||||
page.find_by_id('submit-siret').click
|
||||
expect(page).to have_css('#recap_info_entreprise')
|
||||
find(:css, "#dossier_autorisation_donnees[value='1']").set(true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
expect(page).to have_current_path(users_dossier_carte_path(Dossier.first.id.to_s), only_path: true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
fill_in 'champs_1', with: 'contenu du champ 1'
|
||||
page.find_by_id('suivant').click
|
||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true)
|
||||
end
|
||||
end
|
||||
end
|
52
spec/features/users/dossier_edition_spec.rb
Normal file
52
spec/features/users/dossier_edition_spec.rb
Normal file
|
@ -0,0 +1,52 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'As a User I want to edit a dossier I own', js: true do
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:procedure_for_individual) { create(:procedure, :published, :for_individual, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) }
|
||||
|
||||
before "Create dossier" do
|
||||
login_as user, scope: :user
|
||||
visit commencer_path(procedure_path: procedure_for_individual.path)
|
||||
fill_in 'dossier_individual_attributes_nom', with: 'Nom'
|
||||
fill_in 'dossier_individual_attributes_prenom', with: 'Prenom'
|
||||
fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987'
|
||||
find(:css, "#dossier_autorisation_donnees[value='1']").set(true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
page.find_by_id('etape_suivante').click
|
||||
page.find_by_id('suivant').click
|
||||
visit root_path
|
||||
end
|
||||
|
||||
context 'After sign_in, I can navigate through dossiers indexes and edit a dossier' do
|
||||
|
||||
scenario 'After sign_in, I can see dossiers "à traiter" (default), and other indexes' do
|
||||
expect(page.find('#a_traiter')['class'] ).to eq('active procedure_list_element')
|
||||
page.find_by_id('brouillon').click
|
||||
page.find_by_id('a_traiter').click
|
||||
page.find_by_id('valides').click
|
||||
page.find_by_id('en_instruction').click
|
||||
page.find_by_id('termine').click
|
||||
page.find_by_id('invite').click
|
||||
end
|
||||
|
||||
scenario 'Getting a dossier, I want to create a new message on' do
|
||||
page.find_by_id('tr_dossier_' + Dossier.last.id.to_s).click
|
||||
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.execute_script("$('#texte_commentaire').data('wysihtml5').editor.setValue('Contenu du nouveau message')")
|
||||
page.find_by_id('save-message').click
|
||||
expect(page.find('.last-commentaire .content').text).to eq('Contenu du nouveau message')
|
||||
end
|
||||
|
||||
scenario 'On the same dossier, I want to edit informations' do
|
||||
page.find_by_id('tr_dossier_' + Dossier.last.id.to_s).click
|
||||
page.find_by_id('edit-dossier').click
|
||||
expect(page).to have_current_path(users_dossier_description_path(Dossier.first.id.to_s), only_path: true)
|
||||
fill_in 'champs_1', with: 'Contenu du champ 1'
|
||||
page.find_by_id('modification_terminee').click
|
||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true)
|
||||
expect(page.find('#champ-1-value').text).to eq('Contenu du champ 1')
|
||||
end
|
||||
end
|
||||
end
|
0
spec/fixtures/file.pdf
vendored
Normal file
0
spec/fixtures/file.pdf
vendored
Normal file
|
@ -1,6 +1,10 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'admin/previsualisations/show.html.haml', type: :view do
|
||||
before do
|
||||
@request.env['HTTP_REFERER'] = admin_procedures_url
|
||||
end
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:cerfa_flag) { true }
|
||||
let(:procedure) { create(:procedure, :with_two_type_de_piece_justificative, :with_type_de_champ, cerfa_flag: cerfa_flag) }
|
||||
|
|
Loading…
Reference in a new issue