Merge pull request #2485 from betagouv/instructeur

accompagnateur → instructeur
This commit is contained in:
Paul Chavard 2018-08-30 11:22:51 +01:00 committed by GitHub
commit 5339ee43f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 151 additions and 151 deletions

View file

@ -23,7 +23,7 @@ class Admin::GestionnairesController < AdminController
end end
if procedure_id.present? if procedure_id.present?
redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure_id) redirect_to admin_procedure_instructeurs_path(procedure_id: procedure_id)
else else
redirect_to admin_gestionnaires_path redirect_to admin_gestionnaires_path
end end
@ -54,7 +54,7 @@ class Admin::GestionnairesController < AdminController
else else
User.create(email: email, password: password, confirmed_at: DateTime.now) User.create(email: email, password: password, confirmed_at: DateTime.now)
end end
flash.notice = 'Accompagnateur ajouté' flash.notice = 'Instructeur ajouté'
else else
flash.alert = @gestionnaire.errors.full_messages flash.alert = @gestionnaire.errors.full_messages
end end
@ -62,10 +62,10 @@ class Admin::GestionnairesController < AdminController
def assign_gestionnaire! def assign_gestionnaire!
if current_administrateur.gestionnaires.include? @gestionnaire if current_administrateur.gestionnaires.include? @gestionnaire
flash.alert = 'Accompagnateur déjà ajouté' flash.alert = 'Instructeur déjà ajouté'
else else
@gestionnaire.administrateurs.push current_administrateur @gestionnaire.administrateurs.push current_administrateur
flash.notice = 'Accompagnateur ajouté' flash.notice = 'Instructeur ajouté'
# TODO Mailer no assign_to # TODO Mailer no assign_to
end end
end end

View file

@ -1,4 +1,4 @@
class Admin::AccompagnateursController < AdminController class Admin::InstructeursController < AdminController
include SmartListing::Helper::ControllerExtensions include SmartListing::Helper::ControllerExtensions
helper SmartListing::Helper helper SmartListing::Helper
@ -10,42 +10,42 @@ class Admin::AccompagnateursController < AdminController
def show def show
assign_scope = @procedure.gestionnaires assign_scope = @procedure.gestionnaires
@accompagnateurs_assign = smart_listing_create :accompagnateurs_assign, @instructeurs_assign = smart_listing_create :instructeurs_assign,
assign_scope, assign_scope,
partial: "admin/accompagnateurs/list_assign", partial: "admin/instructeurs/list_assign",
array: true array: true
not_assign_scope = current_administrateur.gestionnaires.where.not(id: assign_scope.ids) not_assign_scope = current_administrateur.gestionnaires.where.not(id: assign_scope.ids)
not_assign_scope = not_assign_scope.where("email LIKE ?", "%#{params[:filter]}%") if params[:filter] not_assign_scope = not_assign_scope.where("email LIKE ?", "%#{params[:filter]}%") if params[:filter]
@accompagnateurs_not_assign = smart_listing_create :accompagnateurs_not_assign, @instructeurs_not_assign = smart_listing_create :instructeurs_not_assign,
not_assign_scope, not_assign_scope,
partial: "admin/accompagnateurs/list_not_assign", partial: "admin/instructeurs/list_not_assign",
array: true array: true
@gestionnaire ||= Gestionnaire.new @gestionnaire ||= Gestionnaire.new
end end
def update def update
gestionnaire = Gestionnaire.find(params[:accompagnateur_id]) gestionnaire = Gestionnaire.find(params[:instructeur_id])
procedure = Procedure.find(params[:procedure_id]) procedure = Procedure.find(params[:procedure_id])
to = params[:to] to = params[:to]
case to case to
when ASSIGN when ASSIGN
if gestionnaire.assign_to_procedure(procedure) if gestionnaire.assign_to_procedure(procedure)
flash.notice = "L'accompagnateur a bien été affecté" flash.notice = "L'instructeur a bien été affecté"
else else
flash.alert = "L'accompagnateur a déjà été affecté" flash.alert = "L'instructeur a déjà été affecté"
end end
when NOT_ASSIGN when NOT_ASSIGN
if gestionnaire.remove_from_procedure(procedure) if gestionnaire.remove_from_procedure(procedure)
flash.notice = "L'accompagnateur a bien été désaffecté" flash.notice = "L'instructeur a bien été désaffecté"
else else
flash.alert = "L'accompagnateur a déjà été désaffecté" flash.alert = "L'instructeur a déjà été désaffecté"
end end
end end
redirect_to admin_procedure_accompagnateurs_path, procedure_id: params[:procedure_id] redirect_to admin_procedure_instructeurs_path, procedure_id: params[:procedure_id]
end end
end end

View file

@ -5,7 +5,7 @@ class Gestionnaires::ActivateController < ApplicationController
@gestionnaire = Gestionnaire.with_reset_password_token(params[:token]) @gestionnaire = Gestionnaire.with_reset_password_token(params[:token])
if !@gestionnaire if !@gestionnaire
flash.alert = "Le lien de validation du compte accompagnateur a expiré, #{view_context.contact_link('contactez-nous', tags: 'lien expiré')} pour obtenir un nouveau lien." flash.alert = "Le lien de validation du compte instructeur a expiré, #{view_context.contact_link('contactez-nous', tags: 'lien expiré')} pour obtenir un nouveau lien."
redirect_to root_path redirect_to root_path
end end
end end

View file

@ -31,13 +31,13 @@ module NewGestionnaire
end end
def personnes_impliquees def personnes_impliquees
@following_accompagnateurs_emails = dossier.followers_gestionnaires.pluck(:email) @following_instructeurs_emails = dossier.followers_gestionnaires.pluck(:email)
@avis_emails = dossier.avis.includes(:gestionnaire).map(&:email_to_display) @avis_emails = dossier.avis.includes(:gestionnaire).map(&:email_to_display)
@invites_emails = dossier.invites.map(&:email) @invites_emails = dossier.invites.map(&:email)
@potential_recipients = procedure.gestionnaires.reject { |g| g == current_gestionnaire } @potential_recipients = procedure.gestionnaires.reject { |g| g == current_gestionnaire }
end end
def envoyer_a_accompagnateur def envoyer_a_instructeur
recipient = Gestionnaire.find(params[:recipient]) recipient = Gestionnaire.find(params[:recipient])
GestionnaireMailer.send_dossier(current_gestionnaire, dossier, recipient).deliver_later GestionnaireMailer.send_dossier(current_gestionnaire, dossier, recipient).deliver_later
flash.notice = "Dossier envoyé" flash.notice = "Dossier envoyé"

View file

@ -4,7 +4,7 @@ class GestionnaireMailer < ApplicationMailer
def invite_gestionnaire(gestionnaire, reset_password_token) def invite_gestionnaire(gestionnaire, reset_password_token)
@reset_password_token = reset_password_token @reset_password_token = reset_password_token
@gestionnaire = gestionnaire @gestionnaire = gestionnaire
subject = "Activez votre compte accompagnateur" subject = "Activez votre compte instructeur"
mail(to: gestionnaire.email, mail(to: gestionnaire.email,
subject: subject, subject: subject,
@ -13,7 +13,7 @@ class GestionnaireMailer < ApplicationMailer
def user_to_gestionnaire(email) def user_to_gestionnaire(email)
@email = email @email = email
subject = "Vous avez été nommé accompagnateur" subject = "Vous avez été nommé instructeur"
mail(to: @email, subject: subject) mail(to: @email, subject: subject)
end end

View file

@ -10,7 +10,7 @@ class DossierSerializer < ActiveModel::Serializer
:received_at, :received_at,
:processed_at, :processed_at,
:motivation, :motivation,
:accompagnateurs, :instructeurs,
:invites :invites
has_one :individual has_one :individual
@ -71,7 +71,7 @@ class DossierSerializer < ActiveModel::Serializer
object.en_instruction_at object.en_instruction_at
end end
def accompagnateurs def instructeurs
object.followers_gestionnaires.pluck(:email) object.followers_gestionnaires.pluck(:email)
end end

View file

@ -10,7 +10,7 @@ class DossierTableExportSerializer < ActiveModel::Serializer
:processed_at, :processed_at,
:motivation :motivation
attribute :emails_accompagnateurs attribute :emails_instructeurs
attributes :individual_gender, attributes :individual_gender,
:individual_prenom, :individual_prenom,
@ -62,7 +62,7 @@ class DossierTableExportSerializer < ActiveModel::Serializer
object.individual&.gender object.individual&.gender
end end
def emails_accompagnateurs def emails_instructeurs
object.followers_gestionnaires.pluck(:email).join(' ') object.followers_gestionnaires.pluck(:email).join(' ')
end end
end end

View file

@ -1,3 +0,0 @@
<%= smart_listing_update :accompagnateurs_not_assign %>
<%= smart_listing_update :accompagnateurs_assign %>

View file

@ -19,4 +19,4 @@
- else - else
%h4.center %h4.center
Aucun accompagnateur Aucun instructeur

View file

@ -1,10 +1,10 @@
%h1 Accompagnateurs disponibles %h1 instructeurs disponibles
%p %p
Cette page vous permet de gérer la liste des accompagnateurs disponibles pour être affectés à une procédure. Cette page vous permet de gérer la liste des instructeurs disponibles pour être affectés à une procédure.
%p{ style: 'font-style: italic' } %p{ style: 'font-style: italic' }
N.B. : cette page ne concerne que la liste des personnes disponibles. Si vous souhaitez affecter ou enlever un accompagnateur d'une procédure particulière, N.B. : cette page ne concerne que la liste des personnes disponibles. Si vous souhaitez affecter ou enlever un instructeur d'une procédure particulière,
utilisez plutôt la utilisez plutôt la
= link_to "page de la procédure", admin_procedures_path = link_to "page de la procédure", admin_procedures_path
concernée. concernée.
@ -16,7 +16,7 @@
.col-xs-1 .col-xs-1
&nbsp; &nbsp;
.col-xs-6 .col-xs-6
%h3 Ajouter un accompagnateur %h3 Ajouter un instructeur
#procedure_new.section.section-label #procedure_new.section.section-label
= form_for @gestionnaire, url: { controller: 'admin/gestionnaires', action: :create } do |f| = form_for @gestionnaire, url: { controller: 'admin/gestionnaires', action: :create } do |f|
.row .row

View file

@ -6,12 +6,12 @@
%th Enlever %th Enlever
%th#email{ style: 'text-align: right;' } Email %th#email{ style: 'text-align: right;' } Email
- @accompagnateurs_assign.each do |accompagnateur| - @instructeurs_assign.each do |instructeur|
%tr %tr
%td.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1.center %td.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1.center
= link_to "#{admin_procedure_accompagnateurs_path(procedure_id: @procedure.id, accompagnateur_id: accompagnateur.id, to: Admin::AccompagnateursController::NOT_ASSIGN)}", class: "btn btn-primary", 'data-method' => 'put' do = link_to "#{admin_procedure_instructeurs_path(procedure_id: @procedure.id, instructeur_id: instructeur.id, to: Admin::InstructeursController::NOT_ASSIGN)}", class: "btn btn-primary", 'data-method' => 'put' do
.fa.fa-arrow-left .fa.fa-arrow-left
%td{ style: 'padding-top: 11px; font-size: 15px; text-align: right;' }= accompagnateur.email %td{ style: 'padding-top: 11px; font-size: 15px; text-align: right;' }= instructeur.email
= smart_listing.paginate = smart_listing.paginate
= smart_listing.pagination_per_page_links = smart_listing.pagination_per_page_links

View file

@ -1,4 +1,4 @@
= smart_listing_controls_for(:accompagnateurs_not_assign, { class: "form-inline text-right" }) do = smart_listing_controls_for(:instructeurs_not_assign, { class: "form-inline text-right" }) do
.form-group.filter.input-append .form-group.filter.input-append
= text_field_tag :filter, '', class: "search form-control", = text_field_tag :filter, '', class: "search form-control",
placeholder: "Recherche...", autocomplete: :off placeholder: "Recherche...", autocomplete: :off
@ -12,11 +12,11 @@
%th#email Email %th#email Email
%th Ajouter %th Ajouter
- @accompagnateurs_not_assign.each do |accompagnateur| - @instructeurs_not_assign.each do |instructeur|
%tr %tr
%td.col-xs-11{ style: 'padding-top: 11px; font-size: 15px;' }= accompagnateur.email %td.col-xs-11{ style: 'padding-top: 11px; font-size: 15px;' }= instructeur.email
%td.center %td.center
= link_to "#{admin_procedure_accompagnateurs_path(procedure_id: @procedure.id, accompagnateur_id: accompagnateur.id, to: Admin::AccompagnateursController::ASSIGN)}", class: "btn btn-success gestionnaire-affectation", 'data-method' => 'put' do = link_to "#{admin_procedure_instructeurs_path(procedure_id: @procedure.id, instructeur_id: instructeur.id, to: Admin::InstructeursController::ASSIGN)}", class: "btn btn-success gestionnaire-affectation", 'data-method' => 'put' do
.fa.fa-arrow-right .fa.fa-arrow-right

View file

@ -1,13 +1,13 @@
.row.white-back .row.white-back
#accompagnateur_form #instructeur_form
.row .row
.col-xs-6 .col-xs-6
%h3.text-info Disponibles %h3.text-info Disponibles
= smart_listing_render :accompagnateurs_not_assign = smart_listing_render :instructeurs_not_assign
%br %br
%h3 %h3
= t('dynamics.admin.procedure.onglet_accompagnateurs.add.title') = t('dynamics.admin.procedure.onglet_instructeurs.add.title')
#procedure_new.section.section-label #procedure_new.section.section-label
= form_for @gestionnaire, url: { controller: 'admin/gestionnaires', action: :create } do |f| = form_for @gestionnaire, url: { controller: 'admin/gestionnaires', action: :create } do |f|
.row .row
@ -20,4 +20,4 @@
= f.submit 'Valider', class: 'btn btn-info', style: 'float: left;', id: 'add-gestionnaire-email' = f.submit 'Valider', class: 'btn btn-info', style: 'float: left;', id: 'add-gestionnaire-email'
.col-xs-6 .col-xs-6
%h3.text-success Affectés %h3.text-success Affectés
= smart_listing_render :accompagnateurs_assign = smart_listing_render :instructeurs_assign

View file

@ -0,0 +1,3 @@
<%= smart_listing_update :instructeurs_not_assign %>
<%= smart_listing_update :instructeurs_assign %>

View file

@ -8,7 +8,7 @@
- if @procedure.gestionnaires.empty? || @procedure.service.nil? - if @procedure.gestionnaires.empty? || @procedure.service.nil?
- missing_elements = [] - missing_elements = []
- if @procedure.gestionnaires.empty? - if @procedure.gestionnaires.empty?
- missing_elements << 'des accompagnateurs' - missing_elements << 'des instructeurs'
- if @procedure.service.nil? - if @procedure.service.nil?
- missing_elements << 'un service' - missing_elements << 'un service'
- message = "Affectez #{missing_elements.join(' et ')} à votre procédure." - message = "Affectez #{missing_elements.join(' et ')} à votre procédure."

View file

@ -1,10 +1,10 @@
- content_for(:title, 'Activation de votre compte accompagnateur') - content_for(:title, 'Activation de votre compte instructeur')
%p %p
Bonjour, Bonjour,
%p %p
Vous venez d'être nommé accompagnateur sur demarches-simplifiees.fr. Vous venez d'être nommé instructeur sur demarches-simplifiees.fr.
%p %p
Votre compte a été créé pour l'adresse email #{@gestionnaire.email}. Pour lactiver, je vous invite à cliquer sur le lien suivant :  Votre compte a été créé pour l'adresse email #{@gestionnaire.email}. Pour lactiver, je vous invite à cliquer sur le lien suivant : 

View file

@ -1,7 +1,7 @@
Bienvenue sur demarches-simplifiees.fr, Bienvenue sur demarches-simplifiees.fr,
\ \
Vous venez d'être nommé accompagnateur sur demarches-simplifiees.fr. Vous venez d'être nommé instructeur sur demarches-simplifiees.fr.
Votre compte (#{@email}) vous donnera désormais aussi accès à lespace accompagnateur. Votre compte (#{@email}) vous donnera désormais aussi accès à lespace instructeur.
\ \
Bonne journée, Bonne journée,
\ \

View file

@ -2,7 +2,7 @@
%br %br
= image_tag(image_url(LOGO_NAME)) = image_tag(image_url(LOGO_NAME))
%br %br
%h2#gestionnaire_login Accompagnateur %h2#gestionnaire_login Instructeur
%br %br
%br %br

View file

@ -78,7 +78,7 @@
%li %li
= link_to gestionnaire_procedures_path, class: "menu-item menu-link" do = link_to gestionnaire_procedures_path, class: "menu-item menu-link" do
= image_tag "icons/switch-profile.svg" = image_tag "icons/switch-profile.svg"
Passer en accompagnateur Passer en instructeur
- if administrateur_signed_in? && nav_bar_profile != :administrateur - if administrateur_signed_in? && nav_bar_profile != :administrateur
%li %li
= link_to admin_procedures_path, class: "menu-item menu-link" do = link_to admin_procedures_path, class: "menu-item menu-link" do

View file

@ -15,7 +15,7 @@
= link_to(gestionnaire_procedures_path) do = link_to(gestionnaire_procedures_path) do
%i.fa.fa-user %i.fa.fa-user
&nbsp; &nbsp;
Accompagnateur instructeur
- if administrateur_signed_in? - if administrateur_signed_in?
%li %li

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Accompagnateurs' } = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Instructeurs' }

View file

@ -18,9 +18,9 @@
.procedure-list-element .procedure-list-element
Services Services
%a#onglet-accompagnateurs{ href: url_for(admin_procedure_accompagnateurs_path(@procedure)) } %a#onglet-instructeurs{ href: url_for(admin_procedure_instructeurs_path(@procedure)) }
.procedure-list-element{ class: ('active' if active == 'Accompagnateurs') } .procedure-list-element{ class: ('active' if active == 'instructeurs') }
= t('dynamics.admin.procedure.onglets.accompagnateurs') = t('dynamics.admin.procedure.onglets.instructeurs')
%a#onglet-description{ href: url_for(edit_admin_procedure_path(@procedure)) } %a#onglet-description{ href: url_for(edit_admin_procedure_path(@procedure)) }
.procedure-list-element{ class: ('active' if active == 'Description') } .procedure-list-element{ class: ('active' if active == 'Description') }

View file

@ -18,7 +18,7 @@
= link_to(admin_gestionnaires_path) do = link_to(admin_gestionnaires_path) do
%i.fa.fa-user %i.fa.fa-user
&nbsp; &nbsp;
= t('dynamics.admin.menu.accompagnateurs') = t('dynamics.admin.menu.instructeurs')
%li.divider{ role: :separator } %li.divider{ role: :separator }
%li %li
= link_to(admin_profile_path, id: :profile) do = link_to(admin_profile_path, id: :profile) do

View file

@ -1,10 +1,10 @@
.tab-title= "Envoyer ce dossier à un autre accompagnateur" .tab-title= "Envoyer ce dossier à un autre instructeur"
- if potential_recipients.empty? - if potential_recipients.empty?
%p.tab-paragraph %p.tab-paragraph
Vous êtes le seul accompagnateur assigné sur cette procédure Vous êtes le seul instructeur assigné sur cette procédure
- else - else
= form_for dossier, url: envoyer_a_accompagnateur_gestionnaire_dossier_path(dossier.procedure, dossier), method: :post, html: { class: 'form' } do |f| = form_for dossier, url: envoyer_a_instructeur_gestionnaire_dossier_path(dossier.procedure, dossier), method: :post, html: { class: 'form' } do |f|
.flex.justify-start.align-baseline .flex.justify-start.align-baseline
= select_tag(:recipient, options_from_collection_for_select(potential_recipients, :id, :email)) = select_tag(:recipient, options_from_collection_for_select(potential_recipients, :id, :email))
= f.submit "Envoyer", class: "button large send gap-left" = f.submit "Envoyer", class: "button large send gap-left"

View file

@ -5,7 +5,7 @@
.personnes-impliquees.container .personnes-impliquees.container
= render partial: 'new_gestionnaire/dossiers/envoyer_dossier_block', locals: { dossier: @dossier, potential_recipients: @potential_recipients } = render partial: 'new_gestionnaire/dossiers/envoyer_dossier_block', locals: { dossier: @dossier, potential_recipients: @potential_recipients }
= render partial: 'new_gestionnaire/dossiers/personnes_impliquees_block', locals: { emails_collection: @following_accompagnateurs_emails, title: "Accompagnateurs qui suivent le dossier", blank: "Aucun accompagnateur ne suit ce dossier" } = render partial: 'new_gestionnaire/dossiers/personnes_impliquees_block', locals: { emails_collection: @following_instructeurs_emails, title: "Instructeurs qui suivent le dossier", blank: "Aucun instructeur ne suit ce dossier" }
= render partial: 'new_gestionnaire/dossiers/personnes_impliquees_block', locals: { emails_collection: @avis_emails, title: "Personnes à qui un avis a été demandé", blank: "Aucun avis n'a été demandé" } = render partial: 'new_gestionnaire/dossiers/personnes_impliquees_block', locals: { emails_collection: @avis_emails, title: "Personnes à qui un avis a été demandé", blank: "Aucun avis n'a été demandé" }

View file

@ -10,7 +10,7 @@
%p.confidentiel.flex %p.confidentiel.flex
%span.icon.lock %span.icon.lock
%span %span
Cet avis est confidentiel et n'est pas affiché aux autres experts consultés mais est visible par tous les accompagnateurs Cet avis est confidentiel et n'est pas affiché aux autres experts consultés mais est visible par tous les instructeurs
.send-wrapper .send-wrapper
= f.submit 'Demander un avis', class: 'button send' = f.submit 'Demander un avis', class: 'button send'
- else - else
@ -18,6 +18,6 @@
= f.label :confidentiel, 'Cet avis est' = f.label :confidentiel, 'Cet avis est'
= f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]], {}, onchange: "javascript:DS.toggleCondidentielExplanation(event);" = f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]], {}, onchange: "javascript:DS.toggleCondidentielExplanation(event);"
.confidentiel-explanation .confidentiel-explanation
Il ne sera pas affiché aux autres experts consultés mais sera visible par les accompagnateurs Il ne sera pas affiché aux autres experts consultés mais sera visible par les instructeurs
.send-wrapper .send-wrapper
= f.submit 'Demander un avis', class: 'button send' = f.submit 'Demander un avis', class: 'button send'

View file

@ -19,11 +19,11 @@ fr:
nouvelle_procedure: 'Nouvelle procédure' nouvelle_procedure: 'Nouvelle procédure'
menu: menu:
title: Mes procédures title: Mes procédures
accompagnateurs: Accompagnateurs instructeurs: Instructeurs
procedures: Procédures procedures: Procédures
procedure: procedure:
onglets: onglets:
accompagnateurs: Accompagnateurs instructeurs: Instructeurs
onglet_accompagnateurs: onglet_instructeurs:
add: add:
title: 'Ajouter un accompagnateur' title: 'Ajouter un instructeur'

View file

@ -223,7 +223,7 @@ Rails.application.routes.draw do
post 'transfer' => 'procedures#transfer', as: :transfer post 'transfer' => 'procedures#transfer', as: :transfer
put 'clone' => 'procedures#clone', as: :clone put 'clone' => 'procedures#clone', as: :clone
resource :accompagnateurs, only: [:show, :update] resource :instructeurs, only: [:show, :update]
resource :attestation_template, only: [:edit, :update, :create] resource :attestation_template, only: [:edit, :update, :create]
@ -234,8 +234,8 @@ Rails.application.routes.draw do
patch 'attestation_template/preview' => 'attestation_templates#preview' patch 'attestation_template/preview' => 'attestation_templates#preview'
end end
namespace :accompagnateurs do namespace :instructeurs do
get 'show' # delete after fixed tests admin/accompagnateurs/show_spec without this line get 'show' # delete after fixed tests admin/instructeurs/show_spec without this line
end end
resources :gestionnaires, only: [:index, :create, :destroy] resources :gestionnaires, only: [:index, :create, :destroy]
@ -319,7 +319,7 @@ Rails.application.routes.draw do
post 'passer-en-instruction' => 'dossiers#passer_en_instruction' post 'passer-en-instruction' => 'dossiers#passer_en_instruction'
post 'repasser-en-construction' => 'dossiers#repasser_en_construction' post 'repasser-en-construction' => 'dossiers#repasser_en_construction'
post 'terminer' post 'terminer'
post 'envoyer-a-accompagnateur' => 'dossiers#envoyer_a_accompagnateur' post 'envoyer-a-instructeur' => 'dossiers#envoyer_a_instructeur'
scope :carte do scope :carte do
get 'position' get 'position'
end end

View file

@ -51,7 +51,7 @@
"received_at": null, "received_at": null,
"processed_at": null, "processed_at": null,
"motivation": null, "motivation": null,
"accompagnateurs": [ "instructeurs": [
"gestionnaire@apientreprise.fr" "gestionnaire@apientreprise.fr"
], ],
"invites": [ "invites": [

View file

@ -46,7 +46,7 @@ describe Admin::GestionnairesController, type: :controller do
let(:procedure_id) { procedure.id } let(:procedure_id) { procedure.id }
it { expect(response.status).to eq(302) } it { expect(response.status).to eq(302) }
it { expect(response).to redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure_id) } it { expect(response).to redirect_to admin_procedure_instructeurs_path(procedure_id: procedure_id) }
end end
describe 'Gestionnaire attributs in database' do describe 'Gestionnaire attributs in database' do
@ -148,7 +148,7 @@ describe Admin::GestionnairesController, type: :controller do
end end
context 'Email notification' do context 'Email notification' do
it 'Notification email is sent when accompagnateur is create' do it 'Notification email is sent when instructeur is create' do
expect_any_instance_of(Gestionnaire).to receive(:invite!) expect_any_instance_of(Gestionnaire).to receive(:invite!)
subject subject
end end

View file

@ -1,6 +1,6 @@
require 'spec_helper' require 'spec_helper'
describe Admin::AccompagnateursController, type: :controller do describe Admin::InstructeursController, type: :controller do
let(:admin) { create(:administrateur) } let(:admin) { create(:administrateur) }
let(:procedure) { create :procedure, administrateur: admin } let(:procedure) { create :procedure, administrateur: admin }
let(:gestionnaire) { create :gestionnaire, administrateurs: [admin] } let(:gestionnaire) { create :gestionnaire, administrateurs: [admin] }
@ -15,9 +15,9 @@ describe Admin::AccompagnateursController, type: :controller do
end end
describe 'PUT #update' do describe 'PUT #update' do
subject { put :update, params: { accompagnateur_id: gestionnaire.id, procedure_id: procedure.id, to: 'assign' } } subject { put :update, params: { instructeur_id: gestionnaire.id, procedure_id: procedure.id, to: 'assign' } }
it { expect(subject).to redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure.id) } it { expect(subject).to redirect_to admin_procedure_instructeurs_path(procedure_id: procedure.id) }
context 'when assignement is valid' do context 'when assignement is valid' do
before do before do

View file

@ -137,7 +137,7 @@ describe API::V1::DossiersController do
let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, procedure: procedure, motivation: "Motivation") } } let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, procedure: procedure, motivation: "Motivation") } }
let(:dossier_id) { dossier.id } let(:dossier_id) { dossier.id }
let(:body) { JSON.parse(retour.body, symbolize_names: true) } let(:body) { JSON.parse(retour.body, symbolize_names: true) }
let(:field_list) { [:id, :created_at, :updated_at, :archived, :individual, :entreprise, :etablissement, :cerfa, :types_de_piece_justificative, :pieces_justificatives, :champs, :champs_private, :commentaires, :state, :simplified_state, :initiated_at, :processed_at, :received_at, :motivation, :email, :accompagnateurs, :invites] } let(:field_list) { [:id, :created_at, :updated_at, :archived, :individual, :entreprise, :etablissement, :cerfa, :types_de_piece_justificative, :pieces_justificatives, :champs, :champs_private, :commentaires, :state, :simplified_state, :initiated_at, :processed_at, :received_at, :motivation, :email, :instructeurs, :invites] }
subject { body[:dossier] } subject { body[:dossier] }
it 'return REST code 200', :show_in_doc do it 'return REST code 200', :show_in_doc do

View file

@ -31,7 +31,7 @@ describe NewGestionnaire::DossiersController, type: :controller do
end end
end end
describe '#envoyer_a_accompagnateur' do describe '#envoyer_a_instructeur' do
let(:recipient) { create(:gestionnaire) } let(:recipient) { create(:gestionnaire) }
let(:gestionnaires) { [gestionnaire, recipient] } let(:gestionnaires) { [gestionnaire, recipient] }
let(:mail) { double("mail") } let(:mail) { double("mail") }
@ -45,7 +45,7 @@ describe NewGestionnaire::DossiersController, type: :controller do
.and_return(mail) .and_return(mail)
post( post(
:envoyer_a_accompagnateur, :envoyer_a_instructeur,
params: { params: {
recipient: recipient, recipient: recipient,
procedure_id: procedure.id, procedure_id: procedure.id,

View file

@ -83,7 +83,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
end end
end end
scenario 'After adding champ and file, check impossibility to publish procedure, add accompagnateur and make publication' do scenario 'After adding champ and file, check impossibility to publish procedure, add instructeur and make publication' do
fill_in 'procedure_types_de_champ_attributes_0_libelle', with: 'libelle de champ' fill_in 'procedure_types_de_champ_attributes_0_libelle', with: 'libelle de champ'
click_on 'add_type_de_champ' click_on 'add_type_de_champ'
click_on 'onglet-pieces' click_on 'onglet-pieces'
@ -97,8 +97,8 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
expect(page).to have_selector('#disabled-publish-procedure') expect(page).to have_selector('#disabled-publish-procedure')
expect(page.find_by_id('disabled-publish-procedure')[:disabled]).to eq('true') expect(page.find_by_id('disabled-publish-procedure')[:disabled]).to eq('true')
click_on 'onglet-accompagnateurs' click_on 'onglet-instructeurs'
expect(page).to have_current_path(admin_procedure_accompagnateurs_path(Procedure.first)) expect(page).to have_current_path(admin_procedure_instructeurs_path(Procedure.first))
fill_in 'gestionnaire_email', with: 'gestionnaire@apientreprise.fr' fill_in 'gestionnaire_email', with: 'gestionnaire@apientreprise.fr'
click_on 'add-gestionnaire-email' click_on 'add-gestionnaire-email'
page.first('.gestionnaire-affectation').click page.first('.gestionnaire-affectation').click

View file

@ -13,7 +13,7 @@ RSpec.describe AvisMailer, type: :mailer do
context 'when the recipient is not already registered' do context 'when the recipient is not already registered' do
before do before do
avis.email = 'accompagnateur@email.com' avis.email = 'instructeur@email.com'
avis.gestionnaire = nil avis.gestionnaire = nil
end end

View file

@ -37,18 +37,18 @@ describe DossierTableExportSerializer do
end end
end end
describe '#emails_accompagnateurs' do describe '#emails_instructeurs' do
let(:gestionnaire){ create(:gestionnaire) } let(:gestionnaire){ create(:gestionnaire) }
let(:gestionnaire2) { create :gestionnaire } let(:gestionnaire2) { create :gestionnaire }
let(:dossier) { create(:dossier) } let(:dossier) { create(:dossier) }
subject { DossierTableExportSerializer.new(dossier).emails_accompagnateurs } subject { DossierTableExportSerializer.new(dossier).emails_instructeurs }
context 'when there is no accompagnateurs' do context 'when there is no instructeurs' do
it { is_expected.to eq('') } it { is_expected.to eq('') }
end end
context 'when there one accompagnateur' do context 'when there one instructeur' do
before { gestionnaire.followed_dossiers << dossier } before { gestionnaire.followed_dossiers << dossier }
it { is_expected.to eq(gestionnaire.email) } it { is_expected.to eq(gestionnaire.email) }

View file

@ -1,61 +0,0 @@
require 'spec_helper'
describe 'admin/accompagnateurs/show.html.haml', type: :view do
let(:admin) { create(:administrateur) }
let(:procedure) { create :procedure, administrateur: admin }
let(:assign_gestionnaires) { procedure.gestionnaires }
let(:not_assign_gestionnaires) { admin.gestionnaires.where.not(id: assign_gestionnaires.ids) }
before do
assign(:procedure, procedure)
assign(:gestionnaire, Gestionnaire.new)
assign(:accompagnateurs_assign, (smart_listing_create :accompagnateurs_assign,
assign_gestionnaires,
partial: "admin/accompagnateurs/list_assign",
array: true))
assign(:accompagnateurs_not_assign, (smart_listing_create :accompagnateurs_not_assign,
not_assign_gestionnaires,
partial: "admin/accompagnateurs/list_not_assign",
array: true))
end
context 'when admin have none accompagnateur ' do
before do
render
end
it { expect(rendered).to have_content('Aucun de disponible') }
context 'when administrateur have none accompagnateur assign' do
it { expect(rendered).to have_content('Aucun d\'affecté') }
end
end
context 'when administrateur have two accompagnateur' do
let!(:accompagnateur_1) { create :gestionnaire, email: 'plop@plop.com', administrateurs: [admin] }
let!(:accompagnateur_2) { create :gestionnaire, email: 'plip@plop.com', administrateurs: [admin] }
before do
not_assign_gestionnaires.reload
assign_gestionnaires.reload
assign(:accompagnateurs_assign, (smart_listing_create :accompagnateurs_assign,
assign_gestionnaires,
partial: "admin/accompagnateurs/list_assign",
array: true))
assign(:accompagnateurs_not_assign, (smart_listing_create :accompagnateurs_not_assign,
not_assign_gestionnaires,
partial: "admin/accompagnateurs/list_not_assign",
array: true))
render
end
it { expect(rendered).to have_content(accompagnateur_1.email) }
it { expect(rendered).to have_content(accompagnateur_2.email) }
end
end

View file

@ -16,10 +16,10 @@ describe 'admin/gestionnaires/index.html.haml', type: :view do
before do before do
render render
end end
it { expect(rendered).to have_content('Aucun accompagnateur') } it { expect(rendered).to have_content('Aucun instructeur') }
end end
context 'Ajout d\'un accompagnateur' do context 'Ajout d\'un instructeur' do
before do before do
create(:gestionnaire, administrateurs: [admin]) create(:gestionnaire, administrateurs: [admin])
admin.reload admin.reload

View file

@ -0,0 +1,61 @@
require 'spec_helper'
describe 'admin/instructeurs/show.html.haml', type: :view do
let(:admin) { create(:administrateur) }
let(:procedure) { create :procedure, administrateur: admin }
let(:assign_gestionnaires) { procedure.gestionnaires }
let(:not_assign_gestionnaires) { admin.gestionnaires.where.not(id: assign_gestionnaires.ids) }
before do
assign(:procedure, procedure)
assign(:gestionnaire, Gestionnaire.new)
assign(:instructeurs_assign, (smart_listing_create :instructeurs_assign,
assign_gestionnaires,
partial: "admin/instructeurs/list_assign",
array: true))
assign(:instructeurs_not_assign, (smart_listing_create :instructeurs_not_assign,
not_assign_gestionnaires,
partial: "admin/instructeurs/list_not_assign",
array: true))
end
context 'when admin have none instructeur ' do
before do
render
end
it { expect(rendered).to have_content('Aucun de disponible') }
context 'when administrateur have none instructeur assign' do
it { expect(rendered).to have_content('Aucun d\'affecté') }
end
end
context 'when administrateur have two instructeur' do
let!(:instructeur_1) { create :gestionnaire, email: 'plop@plop.com', administrateurs: [admin] }
let!(:instructeur_2) { create :gestionnaire, email: 'plip@plop.com', administrateurs: [admin] }
before do
not_assign_gestionnaires.reload
assign_gestionnaires.reload
assign(:instructeurs_assign, (smart_listing_create :instructeurs_assign,
assign_gestionnaires,
partial: "admin/instructeurs/list_assign",
array: true))
assign(:instructeurs_not_assign, (smart_listing_create :instructeurs_not_assign,
not_assign_gestionnaires,
partial: "admin/instructeurs/list_not_assign",
array: true))
render
end
it { expect(rendered).to have_content(instructeur_1.email) }
it { expect(rendered).to have_content(instructeur_2.email) }
end
end

View file

@ -22,6 +22,6 @@ describe 'new_gestionnaire/dossiers/envoyer_dossier_block.html.haml', type: :vie
it { is_expected.not_to have_css("select") } it { is_expected.not_to have_css("select") }
it { is_expected.not_to have_css(".button.send") } it { is_expected.not_to have_css(".button.send") }
it { is_expected.to have_content("Vous êtes le seul accompagnateur assigné sur cette procédure") } it { is_expected.to have_content("Vous êtes le seul instructeur assigné sur cette procédure") }
end end
end end