Merge pull request #5340 from betagouv/dev

2020-07-07-01
This commit is contained in:
jpoulvel 2020-07-07 16:25:07 +02:00 committed by GitHub
commit acdf059139
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 129 additions and 116 deletions

View file

@ -227,7 +227,7 @@ GEM
activesupport (>= 3.0.0)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
ffi (1.12.2)
ffi (1.13.1)
ffi-geos (2.1.0)
ffi (>= 1.0.0)
flipper (0.17.2)
@ -525,9 +525,9 @@ GEM
rake (>= 0.8.7)
thor (>= 0.19.0, < 2.0)
rainbow (3.0.0)
rake (12.3.3)
rake (13.0.1)
rake-progressbar (0.0.5)
rb-fsevent (0.10.3)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
react-rails (2.4.7)
@ -620,8 +620,7 @@ GEM
sprockets (> 3.0)
sprockets-rails
tilt
scss_lint (0.57.1)
rake (>= 0.9, < 13)
scss_lint (0.59.0)
sass (~> 3.5, >= 3.5.5)
selectize-rails (0.12.6)
selenium-webdriver (3.141.0)

View file

@ -20,7 +20,7 @@
&.active {
background-color: #FFFFFF;
border-top: 1px solid $border-grey;
border-top: 2px solid $blue;
border-left: 1px solid $border-grey;
border-right: 1px solid $border-grey;

View file

@ -18,7 +18,10 @@
&.procedure-synthese-badge {
color: $white;
background-color: #6C757D;
margin-right: 3px;
background-color: $dark-grey;
margin-left: 3px;
padding-left: $default-spacer;
padding-right: $default-spacer;
vertical-align: baseline;
}
}

View file

@ -51,7 +51,10 @@ $procedure-description-line-height: 22px;
summary {
font-size: 20px;
&:-webkit-details-marker {
// Hide the default triangle details marker
list-style: none;
// (using the non-standard way for Chrome.)
&::-webkit-details-marker {
display: none;
}
}

View file

@ -22,7 +22,7 @@ class Admin::InstructeursController < AdminController
end
if procedure_id.present?
redirect_to procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur)
redirect_to admin_procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur)
else
redirect_to admin_instructeurs_path
end

View file

@ -21,7 +21,7 @@ module NewAdministrateur
.new(label: label, instructeurs: [current_administrateur.instructeur])
if @groupe_instructeur.save
redirect_to procedure_groupe_instructeur_path(procedure, @groupe_instructeur),
redirect_to admin_procedure_groupe_instructeur_path(procedure, @groupe_instructeur),
notice: "Le groupe dinstructeurs « #{label} » a été créé."
else
@procedure = procedure
@ -36,7 +36,7 @@ module NewAdministrateur
@groupe_instructeur = groupe_instructeur
if @groupe_instructeur.update(label: label)
redirect_to procedure_groupe_instructeur_path(procedure, groupe_instructeur),
redirect_to admin_procedure_groupe_instructeur_path(procedure, groupe_instructeur),
notice: "Le nom est à présent « #{label} »."
else
@procedure = procedure
@ -58,7 +58,7 @@ module NewAdministrateur
groupe_instructeur.destroy!
flash[:notice] = "le groupe « #{label} » a été supprimé."
end
redirect_to procedure_groupe_instructeurs_path(procedure)
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
end
def reaffecter_dossiers
@ -76,7 +76,7 @@ module NewAdministrateur
end
flash[:notice] = "Les dossiers du groupe « #{groupe_instructeur.label} » ont été réaffectés au groupe « #{target_group.label} »."
redirect_to procedure_groupe_instructeurs_path(procedure)
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
end
def add_instructeur
@ -123,7 +123,7 @@ module NewAdministrateur
end
end
redirect_to procedure_groupe_instructeur_path(procedure, groupe_instructeur)
redirect_to admin_procedure_groupe_instructeur_path(procedure, groupe_instructeur)
end
def remove_instructeur
@ -148,13 +148,13 @@ module NewAdministrateur
end
end
end
redirect_to procedure_groupe_instructeur_path(procedure, groupe_instructeur)
redirect_to admin_procedure_groupe_instructeur_path(procedure, groupe_instructeur)
end
def update_routing_criteria_name
procedure.update!(routing_criteria_name: routing_criteria_name)
redirect_to procedure_groupe_instructeurs_path(procedure),
redirect_to admin_procedure_groupe_instructeurs_path(procedure),
notice: "Le libellé est maintenant « #{procedure.routing_criteria_name} »."
end

View file

@ -25,7 +25,7 @@ module NewAdministrateur
flash.notice = 'Démarche enregistrée.'
current_administrateur.instructeur.assign_to_procedure(@procedure)
redirect_to champs_procedure_path(@procedure)
redirect_to champs_admin_procedure_path(@procedure)
end
end

View file

@ -15,7 +15,7 @@ module NewAdministrateur
@service.administrateur = current_administrateur
if @service.save
redirect_to services_path(procedure_id: params[:procedure_id]),
redirect_to admin_services_path(procedure_id: params[:procedure_id]),
notice: "#{@service.nom} créé"
else
@procedure = procedure
@ -33,7 +33,7 @@ module NewAdministrateur
@service = service
if @service.update(service_params)
redirect_to services_path(procedure_id: params[:procedure_id]),
redirect_to admin_services_path(procedure_id: params[:procedure_id]),
notice: "#{@service.nom} modifié"
else
@procedure = procedure
@ -62,10 +62,10 @@ module NewAdministrateur
message = "les démarches #{service_to_destroy.procedures.map(&:libelle).join(', ')} utilisent encore le service #{service.nom}. Veuillez les affecter à un autre service avant de pouvoir le supprimer"
end
flash[:alert] = message
redirect_to services_path(procedure_id: params[:procedure_id])
redirect_to admin_services_path(procedure_id: params[:procedure_id])
else
service_to_destroy.destroy
redirect_to services_path(procedure_id: params[:procedure_id]),
redirect_to admin_services_path(procedure_id: params[:procedure_id]),
notice: "#{service_to_destroy.nom} est supprimé"
end
end

View file

@ -19,4 +19,8 @@ class BillSignatureDashboard < Administrate::BaseDashboard
:serialized,
:signature
].freeze
# The show page is disabled, but administrate requires the constant
# to be defined
SHOW_PAGE_ATTRIBUTES = [].freeze
end

View file

@ -23,7 +23,7 @@ module ProcedureHelper
isAnnotation: false,
typeDeChampsTypes: TypeDeChamp.type_de_champ_types_for(procedure, current_user),
typeDeChamps: procedure.types_de_champ.as_json_for_editor,
baseUrl: procedure_types_de_champ_path(procedure),
baseUrl: admin_procedure_types_de_champ_path(procedure),
directUploadUrl: rails_direct_uploads_url
}
end
@ -33,7 +33,7 @@ module ProcedureHelper
isAnnotation: true,
typeDeChampsTypes: TypeDeChamp.type_de_champ_types_for(procedure, current_user),
typeDeChamps: procedure.types_de_champ_private.as_json_for_editor,
baseUrl: procedure_types_de_champ_path(procedure),
baseUrl: admin_procedure_types_de_champ_path(procedure),
directUploadUrl: rails_direct_uploads_url
}
end

View file

@ -6,17 +6,23 @@ class Pipedrive::PersonAdapter
PIPEDRIVE_ROBOT_ID = '11381160'
def self.get_demandes_from_persons_owned_by_robot
Pipedrive::API.get_persons_owned_by_user(PIPEDRIVE_ROBOT_ID).map do |datum|
{
person_id: datum['id'],
nom: datum['name'],
poste: datum[PIPEDRIVE_POSTE_ATTRIBUTE_ID],
email: datum.dig('email', 0, 'value'),
tel: datum.dig('phone', 0, 'value'),
organisation: datum['org_name'],
nb_dossiers: datum[PIPEDRIVE_NB_DOSSIERS_ATTRIBUTE_ID],
deadline: datum[PIPEDRIVE_DEADLINE_ATTRIBUTE_ID]
}
demandes = Pipedrive::API.get_persons_owned_by_user(PIPEDRIVE_ROBOT_ID)
if demandes.present?
demandes.map do |datum|
{
person_id: datum['id'],
nom: datum['name'],
poste: datum[PIPEDRIVE_POSTE_ATTRIBUTE_ID],
email: datum.dig('email', 0, 'value'),
tel: datum.dig('phone', 0, 'value'),
organisation: datum['org_name'],
nb_dossiers: datum[PIPEDRIVE_NB_DOSSIERS_ATTRIBUTE_ID],
deadline: datum[PIPEDRIVE_DEADLINE_ATTRIBUTE_ID]
}
end
else
[]
end
end

View file

@ -21,7 +21,7 @@
.text-right
= link_to "Annuler", admin_procedure_mail_templates_path(@procedure), class: "btn btn-default"
= f.submit 'Mettre à jour', class: "btn btn-default btn-success"
= link_to "Prévisualiser", preview_procedure_mail_template_path(@procedure, @mail_template.class.const_get(:SLUG)), class: "btn btn-primary", target: "_blank"
= link_to "Prévisualiser", preview_admin_procedure_mail_template_path(@procedure, @mail_template.class.const_get(:SLUG)), class: "btn btn-primary", target: "_blank"
.row
.col-md-12

View file

@ -107,22 +107,22 @@
.alert.alert-info
Pour pouvoir tester cette démarche, vous devez dabord lui affecter
- if @procedure.missing_instructeurs?
= link_to("des instructeurs", procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur))
= link_to("des instructeurs", admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur))
- if @procedure.missing_instructeurs? && @procedure.service.nil?
et
- if @procedure.service.nil?
= link_to("un service", services_path(procedure_id: @procedure))
= link_to("un service", admin_services_path(procedure_id: @procedure))
\.
- else
- if @procedure.missing_steps.include?(:service)
%p.alert.alert-danger
Vous devez renseigner les coordonnées de votre Service administratif avant de pouvoir publier votre démarche.
= link_to 'Cliquez ici.', (@current_administrateur.services.present? ? url_for(services_path(procedure_id: @procedure.id)) : url_for(new_service_path(procedure_id: @procedure.id)))
= link_to 'Cliquez ici.', (@current_administrateur.services.present? ? url_for(admin_services_path(procedure_id: @procedure.id)) : url_for(new_admin_service_path(procedure_id: @procedure.id)))
- if @procedure.missing_steps.include?(:instructeurs)
%p.alert.alert-danger
Vous devez affecter des instructeurs avant de pouvoir publier votre démarche.
= link_to 'Cliquez ici.', procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur)
= link_to 'Cliquez ici.', admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur)
%p.alert.alert-info
Cette démarche na pas encore de lien, et nest pas accessible par le public.

View file

@ -6,6 +6,6 @@
%p
Cliquez sur le lien ci-dessous pour voir la liste des instructeurs de ce groupe :
= link_to(@group.label, procedure_groupe_instructeur_url(@group.procedure, @group))
= link_to(@group.label, admin_procedure_groupe_instructeur_url(@group.procedure, @group))
= render partial: "layouts/mailers/signature"

View file

@ -6,6 +6,6 @@
%p
Cliquez sur le lien ci-dessous pour voir la liste des instructeurs de ce groupe :
= link_to(@group.label, procedure_groupe_instructeur_url(@group.procedure, @group))
= link_to(@group.label, admin_procedure_groupe_instructeur_url(@group.procedure, @group))
= render partial: "layouts/mailers/signature"

View file

@ -9,7 +9,7 @@
%ul
- @data.each do |datum|
%li
= link_to(datum[:procedure_libelle], procedure_url(datum[:procedure_id]))
= link_to(datum[:procedure_libelle], instructeur_procedure_url(datum[:procedure_id]))
- if datum[:nb_en_construction] > 0
%br
#{datum[:nb_en_construction]} #{'dossier'.pluralize(datum[:nb_en_construction])} en construction

View file

@ -1,7 +1,7 @@
- content_for(:title, "Notifications pour #{@procedure.libelle}")
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to(@procedure.libelle, procedure_path(@procedure)),
locals: { steps: [link_to(@procedure.libelle, instructeur_procedure_path(@procedure)),
'Groupes dinstructeurs'] }
.container.groupe-instructeur

View file

@ -1,7 +1,7 @@
- content_for(:title, "Instructeurs du groupe #{@groupe_instructeur.label}")
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to(@procedure.libelle, procedure_path(@procedure)),
locals: { steps: [link_to(@procedure.libelle, instructeur_procedure_path(@procedure)),
link_to('Groupes dinstructeurs', instructeur_groupes_path(@procedure)),
@groupe_instructeur.label] }

View file

@ -16,7 +16,7 @@
- if @procedure.routee?
|
- if current_administrateur.present? && current_administrateur.owns?(@procedure)
= link_to 'instructeurs', procedure_groupe_instructeurs_path(@procedure), class: 'header-link'
= link_to 'instructeurs', admin_procedure_groupe_instructeurs_path(@procedure), class: 'header-link'
- else
= link_to 'instructeurs', instructeur_groupes_path(@procedure), class: 'header-link'

View file

@ -16,7 +16,7 @@
- if @procedure.routee?
|
- if current_administrateur.present? && current_administrateur.owns?(@procedure)
= link_to 'instructeurs', procedure_groupe_instructeurs_path(@procedure), class: 'header-link'
= link_to 'instructeurs', admin_procedure_groupe_instructeurs_path(@procedure), class: 'header-link'
- else
= link_to 'instructeurs', instructeur_groupes_path(@procedure), class: 'header-link'

View file

@ -20,39 +20,39 @@
.procedure-list-element{ class: ('active' if active == 'Description') }
Description
%a#onglet-services{ href: (@procedure.service.present? || current_administrateur.services.present?) ? url_for(services_path(procedure_id: @procedure.id)) : url_for(new_service_path(procedure_id: @procedure.id)) }
%a#onglet-services{ href: (@procedure.service.present? || current_administrateur.services.present?) ? url_for(admin_services_path(procedure_id: @procedure.id)) : url_for(new_admin_service_path(procedure_id: @procedure.id)) }
.procedure-list-element
Service
- if @procedure.missing_steps.include?(:service)
%p.missing-steps (à compléter)
%a#onglet-administrateurs{ href: url_for(procedure_administrateurs_path(@procedure)) }
%a#onglet-administrateurs{ href: url_for(admin_procedure_administrateurs_path(@procedure)) }
.procedure-list-element
Administrateurs
- if !feature_enabled?(:administrateur_routage)
%a#onglet-instructeurs{ href: url_for(procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur)) }
%a#onglet-instructeurs{ href: url_for(admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur)) }
.procedure-list-element{ class: ('active' if active == 'Instructeurs') }
Instructeurs
- if @procedure.missing_steps.include?(:instructeurs)
%p.missing-steps (à compléter)
- if feature_enabled?(:administrateur_routage)
%a#onglet-instructeurs{ href: url_for(procedure_groupe_instructeurs_path(@procedure)) }
%a#onglet-instructeurs{ href: url_for(admin_procedure_groupe_instructeurs_path(@procedure)) }
.procedure-list-element
Groupe d'instructeurs
- if !@procedure.locked?
%a#onglet-champs{ href: champs_procedure_path(@procedure) }
%a#onglet-champs{ href: champs_admin_procedure_path(@procedure) }
.procedure-list-element{ class: ('active' if active == 'Champs') }
Champs
- if !@procedure.locked?
%a#onglet-private-champs{ href: annotations_procedure_path(@procedure) }
%a#onglet-private-champs{ href: annotations_admin_procedure_path(@procedure) }
.procedure-list-element{ class: ('active' if active == 'Annotations privées') }
Annotations privées
%a#onglet-preview{ href: url_for(apercu_procedure_path(@procedure)), target: "_blank", rel: "noopener" }
%a#onglet-preview{ href: url_for(apercu_admin_procedure_path(@procedure)), target: "_blank", rel: "noopener" }
.procedure-list-element{ class: ('active' if active == 'Prévisualisation') }
Prévisualisation
@ -64,11 +64,11 @@
.procedure-list-element{ class: ('active' if active == 'Attestation') }
Attestation
%a#onglet-description{ href: url_for(admin_procedure_monavis_path(@procedure)) }
%a#onglet-description{ href: url_for(monavis_admin_procedure_path(@procedure)) }
.procedure-list-element{ class: ('active' if active == 'MonAvis') }
MonAvis
%a#onglet-description{ href: url_for(admin_procedure_jeton_path(@procedure)) }
%a#onglet-description{ href: url_for(jeton_admin_procedure_path(@procedure)) }
.procedure-list-element
Jeton

View file

@ -36,7 +36,7 @@ as well as a link to its edit page.
</div>
<div>
<%= link_to 'aperçu', apercu_procedure_path(procedure), class: 'button' %>
<%= link_to 'aperçu', apercu_admin_procedure_path(procedure), class: 'button' %>
<% if !procedure.whitelisted? %>
<%= link_to 'whitelister', whitelist_manager_procedure_path(procedure), method: :post, class: 'button' %>

View file

@ -4,5 +4,5 @@
- steps.each do |step|
%li= step
- if defined?(preview) && preview
= link_to "Prévisualiser le formulaire", apercu_procedure_path(@procedure), target: "_blank", rel: "noopener", class: 'button'
= link_to "Prévisualiser le formulaire", apercu_admin_procedure_path(@procedure), target: "_blank", rel: "noopener", class: 'button'
= link_to "Continuer >", admin_procedure_path(@procedure), title: 'Vous pourrez revenir ici par la suite', class: 'button accepted'

View file

@ -1,7 +1,7 @@
%h1 Groupe « #{@groupe_instructeur.label} »
.card.mt-2
= form_for @groupe_instructeur,
url: procedure_groupe_instructeur_path(@procedure, @groupe_instructeur),
url: admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur),
html: { class: 'form' } do |f|
= f.label :label, 'Nom du groupe'

View file

@ -33,16 +33,16 @@
- @groupes_instructeurs.each do |group|
%tr
%td= group.label
%td.actions= link_to "voir", procedure_groupe_instructeur_path(@procedure, group)
%td.actions= link_to "voir", admin_procedure_groupe_instructeur_path(@procedure, group)
- if @groupes_instructeurs.many?
- if group.dossiers.empty?
%td.actions
= link_to procedure_groupe_instructeur_path(@procedure, group), { method: :delete, class: 'button', data: { confirm: "Êtes-vous sûr de vouloir supprimer le groupe « #{group.label} » ?" }} do
= link_to admin_procedure_groupe_instructeur_path(@procedure, group), { method: :delete, class: 'button', data: { confirm: "Êtes-vous sûr de vouloir supprimer le groupe « #{group.label} » ?" }} do
%span.icon.delete
supprimer ce groupe
- else
%td.actions
= link_to reaffecter_dossiers_procedure_groupe_instructeur_path(@procedure, group), class: 'button', title:'Réaffecter les dossiers à un autre groupe afin de pouvoir le supprimer' do
= link_to reaffecter_dossiers_admin_procedure_groupe_instructeur_path(@procedure, group), class: 'button', title:'Réaffecter les dossiers à un autre groupe afin de pouvoir le supprimer' do
%span.icon.follow
déplacer les dossiers
= paginate @groupes_instructeurs

View file

@ -1,7 +1,7 @@
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to('Démarches', admin_procedures_path),
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
link_to('Groupes dinstructeurs', procedure_groupe_instructeurs_path(@procedure)),
link_to('Groupes dinstructeurs', admin_procedure_groupe_instructeurs_path(@procedure)),
@groupe_instructeur.label] }
.container.groupe-instructeur
@ -20,7 +20,7 @@
%tr
%td= group.label
%td.actions= button_to 'Réaffecter les dossiers à ce groupe',
reaffecter_procedure_groupe_instructeur_path(:target_group => group),
reaffecter_admin_procedure_groupe_instructeur_path(:target_group => group),
{ class: 'button',
data: { confirm: "Êtes-vous sûr de vouloir réaffecter les dossiers du groupe « #{@groupe_instructeur.label} » vers le groupe  « #{group.label} » ?" } }

View file

@ -3,7 +3,7 @@
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to('Démarches', admin_procedures_path),
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
link_to('Groupes dinstructeurs', procedure_groupe_instructeurs_path(@procedure)),
link_to('Groupes dinstructeurs', admin_procedure_groupe_instructeurs_path(@procedure)),
@groupe_instructeur.label] }
- else
= render partial: 'new_administrateur/breadcrumbs',

View file

@ -7,7 +7,7 @@
Cest vous !
- else
= link_to 'Retirer',
[@procedure, administrateur],
admin_procedure_administrateur_path(@procedure, administrateur),
method: :delete,
'data-confirm': "Retirer « #{administrateur.email} » des administrateurs de « #{@procedure.libelle} » ?",
remote: true

View file

@ -4,11 +4,11 @@
%ul.tabs
= tab_item('le dossier',
apercu_procedure_path(@dossier.procedure, tab: 'dossier'),
apercu_admin_procedure_path(@dossier.procedure, tab: 'dossier'),
active: @tab == 'dossier')
- if @dossier.champs_private.size > 0
= tab_item('les annotations privées',
apercu_procedure_path(@dossier.procedure, tab: 'annotations-privees'),
apercu_admin_procedure_path(@dossier.procedure, tab: 'annotations-privees'),
active: @tab == 'annotations-privees')
- if @tab == 'dossier'

View file

@ -1,4 +1,4 @@
= form_for service, html: { class: 'form' } do |f|
= form_with model: [ :admin, service] , html: { class: 'form' } do |f|
= f.label :nom do
Nom

View file

@ -1,7 +1,7 @@
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to('Démarches', admin_procedures_path),
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
link_to('choix du service', services_path(procedure_id: @procedure.id)),
link_to('choix du service', admin_services_path(procedure_id: @procedure.id)),
'modifier le service'] }
.container

View file

@ -24,7 +24,7 @@
%th
nom
%th.change
= link_to('Nouveau service', new_service_path(procedure_id: @procedure.id), class: 'button')
= link_to('Nouveau service', new_admin_service_path(procedure_id: @procedure.id), class: 'button')
%tbody
- @services.each do |service|
@ -32,8 +32,8 @@
%td
= service.nom
%td.change
= link_to('modifier', edit_service_path(service, procedure_id: @procedure.id))
= link_to('modifier', edit_admin_service_path(service, procedure_id: @procedure.id))
= link_to 'supprimer',
service_path(service, procedure_id: @procedure.id),
admin_service_path(service, procedure_id: @procedure.id),
method: :delete,
data: { confirm: "Confirmez vous la suppression de #{service.nom}" }

View file

@ -1,7 +1,7 @@
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to('Démarches', admin_procedures_path),
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
link_to('choix du service', services_path(procedure_id: @procedure.id)),
link_to('choix du service', admin_services_path(procedure_id: @procedure.id)),
'nouveau service'] }
.container

View file

@ -170,12 +170,6 @@ Rails.application.routes.draw do
# order matters: we don't want those routes to match /admin/procedures/:id
get 'admin/procedures/new' => 'new_administrateur/procedures#new', as: :new_admin_procedure
get 'admin/procedures/:id/edit' => 'new_administrateur/procedures#edit', as: :edit_admin_procedure
post 'admin/procedures' => 'new_administrateur/procedures#create'
get 'admin/procedures/:id/monavis' => 'new_administrateur/procedures#monavis', as: :admin_procedure_monavis
patch 'admin/procedures/:id/monavis' => 'new_administrateur/procedures#update_monavis', as: :update_monavis
get 'admin/procedures/:id/jeton' => 'new_administrateur/procedures#jeton', as: :admin_procedure_jeton
patch 'admin/procedures/:id/jeton' => 'new_administrateur/procedures#update_jeton', as: :update_jeton
namespace :admin do
get 'activate' => '/administrateurs/activate#new'
@ -183,7 +177,7 @@ Rails.application.routes.draw do
get 'procedures/archived' => 'procedures#archived'
get 'procedures/draft' => 'procedures#draft'
resources :procedures, except: [:new, :edit, :update] do
resources :procedures, only: [:index, :show, :destroy] do
collection do
get 'new_from_existing' => 'procedures#new_from_existing', as: :new_from_existing
end
@ -375,12 +369,16 @@ Rails.application.routes.draw do
# Administrateur
#
scope module: 'new_administrateur' do
resources :procedures, only: [:update, :new] do
namespace :admin, module: 'new_administrateur' do
resources :procedures, except: [:index, :show, :destroy] do
member do
get 'apercu'
get 'champs'
get 'annotations'
get 'monavis'
patch 'update_monavis'
get 'jeton'
patch 'update_jeton'
end
resources :groupe_instructeurs, only: [:index, :show, :create, :update, :destroy] do

View file

@ -43,7 +43,7 @@ describe Admin::InstructeursController, type: :controller do
let(:procedure) { create :procedure }
let(:procedure_id) { procedure.id }
it { expect(response.status).to eq(302) }
it { expect(response).to redirect_to procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
it { expect(response).to redirect_to admin_procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
end
describe 'Instructeur attributs in database' do

View file

@ -62,7 +62,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
let(:label) { "nouveau_groupe" }
it { expect(flash.notice).to be_present }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, procedure.groupe_instructeurs.last)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, procedure.groupe_instructeurs.last)) }
it { expect(procedure.groupe_instructeurs.count).to eq(2) }
end
@ -88,7 +88,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
before { delete_group gi_1_1 }
it { expect(flash.alert).to be_present }
it { expect(response).to redirect_to(procedure_groupe_instructeurs_path(procedure)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
it { expect(procedure.groupe_instructeurs.count).to eq(1) }
end
@ -99,7 +99,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
before { delete_group gi_1_2 }
it { expect(flash.notice).to be_present }
it { expect(procedure.groupe_instructeurs.count).to eq(1) }
it { expect(response).to redirect_to(procedure_groupe_instructeurs_path(procedure)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
end
context 'of a group with dossiers, that cannot be deleted' do
@ -108,7 +108,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(flash.alert).to be_present }
it { expect(procedure.groupe_instructeurs.count).to eq(2) }
it { expect(response).to redirect_to(procedure_groupe_instructeurs_path(procedure)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
end
end
end
@ -125,7 +125,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
}
end
def reaffecter_url(group)
reaffecter_procedure_groupe_instructeur_path(:id => gi_1_2,
reaffecter_admin_procedure_groupe_instructeur_path(:id => gi_1_2,
:target_group => group)
end
@ -155,7 +155,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
dossier12.reload
end
it { expect(response).to redirect_to(procedure_groupe_instructeurs_path(procedure)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
it { expect(gi_1_1.dossiers.with_discarded.count).to be(0) }
it { expect(gi_1_2.dossiers.with_discarded.count).to be(2) }
it { expect(gi_1_2.dossiers.last.id).to be(dossier12.id) }
@ -193,7 +193,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
end
it { expect(gi_1_1.reload.label).to eq(new_name) }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
it { expect(flash.notice).to be_present }
context 'when the name is already taken' do
@ -215,7 +215,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(response.status).to eq(200) }
it { expect(subject.request.flash[:alert]).to be_nil }
it { expect(subject.request.flash[:notice]).to be_present }
it { expect(subject).to redirect_to procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
it { expect(subject).to redirect_to admin_procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
end
context 'when there is at least one bad email' do
@ -223,13 +223,13 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(response.status).to eq(200) }
it { expect(subject.request.flash[:alert]).to be_present }
it { expect(subject.request.flash[:notice]).to be_present }
it { expect(subject).to redirect_to procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
it { expect(subject).to redirect_to admin_procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
end
context 'when the admin wants to assign an instructor who is already assigned on this procedure' do
let(:emails) { ['instructeur_1@ministere_a.gouv.fr'] }
it { expect(subject.request.flash[:alert]).to be_present }
it { expect(subject).to redirect_to procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
it { expect(subject).to redirect_to admin_procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur) }
end
end
@ -256,7 +256,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails) }
it { expect(flash.notice).to be_present }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_2)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
it { expect(procedure.routee?).to be_truthy }
it "calls GroupeInstructeurMailer with the right groupe and instructeurs" do
expect(GroupeInstructeurMailer).to have_received(:add_instructeurs).with(
@ -270,20 +270,20 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
context 'of an instructeur already in the group' do
let(:new_instructeur_emails) { [instructeur.email] }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_2)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
end
context 'of badly formed email' do
let(:new_instructeur_emails) { ['badly_formed_email'] }
it { expect(flash.alert).to be_present }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_2)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
end
context 'of an empty string' do
let(:new_instructeur_emails) { '' }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_2)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
end
end
@ -306,7 +306,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(gi_1_1.instructeurs).to include(instructeur) }
it { expect(gi_1_1.reload.instructeurs.count).to eq(1) }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
end
context 'when there is only one instructeur' do
@ -318,7 +318,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(gi_1_1.instructeurs).to include(instructeur) }
it { expect(gi_1_1.instructeurs.count).to eq(1) }
it { expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un instructeur dans le groupe') }
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) }
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
end
end
@ -337,7 +337,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(subject.request.flash[:notice]).to be_present }
it { expect(subject.request.flash[:alert]).to be_nil }
it { expect(response.status).to eq(302) }
it { expect(subject).to redirect_to procedure_groupe_instructeur_path(procedure, gi_1_1) }
it { expect(subject).to redirect_to admin_procedure_groupe_instructeur_path(procedure, gi_1_1) }
end
context 'when the instructor is not assigned to the procedure' do
@ -345,7 +345,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
it { expect(subject.request.flash[:alert]).to be_present }
it { expect(subject.request.flash[:notice]).to be_nil }
it { expect(response.status).to eq(302) }
it { expect(subject).to redirect_to procedure_groupe_instructeur_path(procedure, gi_1_1) }
it { expect(subject).to redirect_to admin_procedure_groupe_instructeur_path(procedure, gi_1_1) }
end
end

View file

@ -102,7 +102,7 @@ describe NewAdministrateur::ProceduresController, type: :controller do
it { expect(subject.duree_conservation_dossiers_hors_ds).to eq(duree_conservation_dossiers_hors_ds) }
end
it { is_expected.to redirect_to(champs_procedure_path(Procedure.last)) }
it { is_expected.to redirect_to(champs_admin_procedure_path(Procedure.last)) }
it { expect(flash[:notice]).to be_present }
end

View file

@ -33,7 +33,7 @@ describe NewAdministrateur::ServicesController, type: :controller do
it { expect(Service.last.telephone).to eq('1234') }
it { expect(Service.last.horaires).to eq('horaires') }
it { expect(Service.last.adresse).to eq('adresse') }
it { expect(response).to redirect_to(services_path(procedure_id: 12)) }
it { expect(response).to redirect_to(admin_services_path(procedure_id: 12)) }
end
context 'when submitting an invalid service' do
@ -64,7 +64,7 @@ describe NewAdministrateur::ServicesController, type: :controller do
it { expect(flash.notice).to eq('nom modifié') }
it { expect(Service.last.nom).to eq('nom') }
it { expect(Service.last.type_organisme).to eq(Service.type_organismes.fetch(:association)) }
it { expect(response).to redirect_to(services_path(procedure_id: procedure.id)) }
it { expect(response).to redirect_to(admin_services_path(procedure_id: procedure.id)) }
end
context 'when updating a service with invalid data' do
@ -119,7 +119,7 @@ describe NewAdministrateur::ServicesController, type: :controller do
it { expect { service.reload }.to raise_error(ActiveRecord::RecordNotFound) }
it { expect(flash.alert).to be_nil }
it { expect(flash.notice).to eq("#{service.nom} est supprimé") }
it { expect(response).to redirect_to(services_path(procedure_id: 12)) }
it { expect(response).to redirect_to(admin_services_path(procedure_id: 12)) }
end
context 'when a service still has some related procedures' do
@ -133,7 +133,7 @@ describe NewAdministrateur::ServicesController, type: :controller do
it { expect(service.reload).not_to be_nil }
it { expect(flash.alert).to eq("la démarche #{procedure.libelle} utilise encore le service service. Veuillez l'affecter à un autre service avant de pouvoir le supprimer") }
it { expect(flash.notice).to be_nil }
it { expect(response).to redirect_to(services_path(procedure_id: 12)) }
it { expect(response).to redirect_to(admin_services_path(procedure_id: 12)) }
end
end
end

View file

@ -45,7 +45,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
fill_in_dummy_procedure_details
click_on 'Créer la démarche'
expect(page).to have_current_path(champs_procedure_path(Procedure.last))
expect(page).to have_current_path(champs_admin_procedure_path(Procedure.last))
end
end
end
@ -66,7 +66,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
scenario 'Add champ, add file, visualize them in procedure preview' do
page.refresh
expect(page).to have_current_path(champs_procedure_path(Procedure.last))
expect(page).to have_current_path(champs_admin_procedure_path(Procedure.last))
add_champ(remove_flash_message: true)
fill_in 'champ-0-libelle', with: 'libelle de champ'
@ -80,7 +80,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
preview_window = window_opened_by { click_on 'onglet-preview' }
within_window(preview_window) do
expect(page).to have_current_path(apercu_procedure_path(Procedure.last))
expect(page).to have_current_path(apercu_admin_procedure_path(Procedure.last))
expect(page).to have_field('libelle de champ')
end
end

View file

@ -4,7 +4,7 @@ feature 'As an administrateur I can edit types de champ', js: true do
before do
login_as administrateur.user, scope: :user
visit champs_procedure_path(procedure)
visit champs_admin_procedure_path(procedure)
end
it "Add a new champ" do

View file

@ -147,7 +147,7 @@ feature 'The routing', js: true do
# the instructeurs who belong to scientifique AND litteraire groups manage scientifique and litterraire dossiers
register_instructeur_and_log_in(superwoman.email)
visit procedure_path(procedure, params: { statut: 'tous' })
visit instructeur_procedure_path(procedure, params: { statut: 'tous' })
expect(page).to have_text(litteraire_user.email)
expect(page).to have_text(scientifique_user.email)
@ -155,7 +155,7 @@ feature 'The routing', js: true do
click_on scientifique_user.email
click_on 'Suivre le dossier'
visit procedure_path(procedure, params: { statut: 'tous' })
visit instructeur_procedure_path(procedure, params: { statut: 'tous' })
click_on litteraire_user.email
click_on 'Suivre le dossier'
log_out

View file

@ -21,7 +21,7 @@ describe 'instructeur_mailer/send_notifications.html.haml', type: :view do
]
end
it { expect(rendered).to have_link('une superbe démarche', href: procedure_url(213)) }
it { expect(rendered).to have_link('une superbe démarche', href: instructeur_procedure_url(213)) }
it { expect(rendered).to have_text('une superbe démarche') }
it { expect(rendered).to have_text('1 dossier en construction') }
it { expect(rendered).not_to have_text('notification') }
@ -41,7 +41,7 @@ describe 'instructeur_mailer/send_notifications.html.haml', type: :view do
]
end
it { expect(rendered).to have_link('une superbe démarche', href: procedure_url(213)) }
it { expect(rendered).to have_link('une superbe démarche', href: instructeur_procedure_url(213)) }
it { expect(rendered).to have_text('une superbe démarche') }
it { expect(rendered).to have_text('1 dossier') }
it { expect(rendered).not_to have_text('notification') }
@ -63,7 +63,7 @@ describe 'instructeur_mailer/send_notifications.html.haml', type: :view do
]
end
it { expect(rendered).to have_link('une superbe démarche', href: procedure_url(213)) }
it { expect(rendered).to have_link('une superbe démarche', href: instructeur_procedure_url(213)) }
it { expect(rendered).to have_text('une superbe démarche') }
it { expect(rendered).to have_text('1 dossier') }
it { expect(rendered).not_to have_text('notification') }