commit
6c642ff6ea
68 changed files with 126 additions and 79 deletions
|
@ -12,13 +12,13 @@ Voici la marche à suivre recommandée pour effectuer une modification.
|
|||
|
||||
La première étape est généralement de discuter de l’amélioration que vous proposez (s’il ne s’agit pas d’un changement trivial, comme la correction d’une coquille).
|
||||
|
||||
Pour cela, [créez une nouvelle issue](https://github.com/betagouv/tps/issues/new) concernant votre proposition. Autant que possible, indiquez clairement votre besoin, votre cas d’usage – et éventuellement comment vous pensez déjà le résoudre.
|
||||
Pour cela, [créez une nouvelle issue](https://github.com/betagouv/demarches-simplifiees.fr/issues/new) concernant votre proposition. Autant que possible, indiquez clairement votre besoin, votre cas d’usage – et éventuellement comment vous pensez déjà le résoudre.
|
||||
|
||||
Nous pouvons alors discuter, pour vérifier que le besoin exprimé correspond à l’usage de demarches-simplifiees.fr, proposer éventuellement des alternatives, et se mettre d’accord sur une implémentation technique pertinente.
|
||||
|
||||
## 2. Proposer du code
|
||||
|
||||
Une fois que la discussion est établie, et que les éléments techniques sont dégrossis, vous pouvez proposer des changements au code. Pour cela, effectuez vos modifications en local, et [ouvrez une Pull Request](https://github.com/betagouv/tps/issues/new) avec les changements que vous souhaitez apporter.
|
||||
Une fois que la discussion est établie, et que les éléments techniques sont dégrossis, vous pouvez proposer des changements au code. Pour cela, effectuez vos modifications en local, et [ouvrez une Pull Request](https://github.com/betagouv/demarches-simplifiees.fr/issues/new) avec les changements que vous souhaitez apporter.
|
||||
|
||||
Quelques conseils : pensez à bien décrire l’objectif et l’implémentation de votre PR au moment de la créer. Et si vos changements sont importants, découpez-les en plusieurs petites PRs successives, qui seront plus faciles à relire. N’oubliez pas d’ajouter des tests automatisés pour vous assurer que vos changements fonctionnent bien.
|
||||
|
||||
|
|
|
@ -53,11 +53,11 @@ Afin d'initialiser l'environnement de développement, exécutez la commande suiv
|
|||
|
||||
overmind start
|
||||
|
||||
L'application tourne à l'adresse `http://localhost:3000`.
|
||||
L'application tourne à l'adresse `http://localhost:3000`.
|
||||
|
||||
### Utilisateurs de test
|
||||
|
||||
En local, un utilisateur de test est créé automatiquement, avec les identifiants `test@exemple.fr`/`this is a very complicated password !`. (voir [db/seeds.rb](https://github.com/betagouv/tps/blob/dev/db/seeds.rb))
|
||||
En local, un utilisateur de test est créé automatiquement, avec les identifiants `test@exemple.fr`/`this is a very complicated password !`. (voir [db/seeds.rb](https://github.com/betagouv/demarches-simplifiees.fr/blob/dev/db/seeds.rb))
|
||||
|
||||
### Programmation des jobs
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
module NewGestionnaire
|
||||
module Gestionnaires
|
||||
class AvisController < GestionnaireController
|
||||
include CreateAvisConcern
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
module NewGestionnaire
|
||||
module Gestionnaires
|
||||
class DossiersController < ProceduresController
|
||||
include ActionView::Helpers::NumberHelper
|
||||
include ActionView::Helpers::TextHelper
|
|
@ -1,4 +1,4 @@
|
|||
module NewGestionnaire
|
||||
module Gestionnaires
|
||||
class GestionnaireController < ApplicationController
|
||||
before_action :authenticate_gestionnaire!
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
module NewGestionnaire
|
||||
module Gestionnaires
|
||||
class ProceduresController < GestionnaireController
|
||||
before_action :ensure_ownership!, except: [:index]
|
||||
before_action :redirect_to_avis_if_needed, only: [:index]
|
|
@ -1,4 +1,4 @@
|
|||
module NewGestionnaire
|
||||
module Gestionnaires
|
||||
class RechercheController < GestionnaireController
|
||||
def index
|
||||
@search_terms = params[:q]
|
|
@ -26,6 +26,7 @@ module Manager
|
|||
dossier.attestation&.destroy
|
||||
logger.info("Le dossier #{dossier.id} est repassé en instruction par #{current_administration.email}")
|
||||
flash[:notice] = "Le dossier #{dossier.id} est repassé en instruction"
|
||||
DossierMailer.notify_revert_to_instruction(dossier).deliver_later
|
||||
redirect_to manager_dossier_path(dossier)
|
||||
end
|
||||
|
||||
|
|
|
@ -55,4 +55,11 @@ class DossierMailer < ApplicationMailer
|
|||
|
||||
mail(to: dossier.user.email, subject: @subject)
|
||||
end
|
||||
|
||||
def notify_revert_to_instruction(dossier)
|
||||
@dossier = dossier
|
||||
@subject = "Votre dossier n° #{@dossier.id} est en train d'être réexaminé"
|
||||
|
||||
mail(to: dossier.user.email, subject: @subject)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -189,6 +189,16 @@ class Procedure < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def clone_attachments(original, kopy)
|
||||
if original.is_a?(TypeDeChamp) && original.piece_justificative_template.attached?
|
||||
kopy.piece_justificative_template.attach({
|
||||
io: StringIO.new(original.piece_justificative_template.download),
|
||||
filename: original.piece_justificative_template.blob.filename,
|
||||
content_type: original.piece_justificative_template.blob.content_type
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
def clone(admin, from_library)
|
||||
is_different_admin = !admin.owns?(self)
|
||||
|
||||
|
@ -198,7 +208,7 @@ class Procedure < ApplicationRecord
|
|||
attestation_template: nil,
|
||||
types_de_champ: [:drop_down_list, types_de_champ: :drop_down_list],
|
||||
types_de_champ_private: [:drop_down_list, types_de_champ: :drop_down_list]
|
||||
})
|
||||
}, &method(:clone_attachments))
|
||||
procedure.path = nil
|
||||
procedure.aasm_state = :brouillon
|
||||
procedure.test_started_at = nil
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
%td
|
||||
= link_to('Cloner', admin_procedure_clone_path(procedure.id), data: { method: :put }, class: 'btn-sm btn-primary clone-btn')
|
||||
- if !procedure.publiee_ou_archivee?
|
||||
= link_to('X', url_for(controller: 'admin/procedures', action: :destroy, id: procedure.id), data: { method: :delete }, class: 'btn-sm btn-danger')
|
||||
= link_to('X', url_for(controller: 'admin/procedures', action: :destroy, id: procedure.id), data: { method: :delete, confirm: "Confirmez-vous la suppression de la démarche ?" }, class: 'btn-sm btn-danger')
|
||||
|
||||
= smart_listing.paginate
|
||||
= smart_listing.pagination_per_page_links
|
||||
|
|
|
@ -14,22 +14,5 @@
|
|||
Pour l’activer, cliquez sur le lien suivant :
|
||||
= link_to(admin_activate_url(token: @reset_password_token), admin_activate_url(token: @reset_password_token))
|
||||
|
||||
%p
|
||||
Afin de vous accompagner dans la découverte de demarches-simplifiees.fr, je vous propose de m’appeler pour faire un point sur vos besoins de dématérialisation.
|
||||
%br
|
||||
Vous pouvez me joindre au numéro suivant :
|
||||
= link_to(CONTACT_PHONE, "tel:#{CONTACT_PHONE}")
|
||||
\.
|
||||
|
||||
%p
|
||||
Je vous invite également à prendre quelques minutes pour consulter notre tutoriel à destination des nouveaux administrateurs :
|
||||
= link_to(ADMINISTRATEUR_TUTORIAL_URL, ADMINISTRATEUR_TUTORIAL_URL)
|
||||
\.
|
||||
|
||||
%p
|
||||
Enfin, vous pouvez vous inscrire à notre prochain webinaire en ligne pour découvrir les fonctionnalités de notre outil :
|
||||
= link_to(WEBINAIRE_URL, WEBINAIRE_URL)
|
||||
\.
|
||||
|
||||
%p
|
||||
= render partial: "layouts/mailers/bizdev_signature", locals: { author_name: @author_name }
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
%p
|
||||
Bonjour,
|
||||
|
||||
%p
|
||||
Votre dossier va être réexaminé, la précédente décision sur ce dossier est caduque.
|
||||
Vous pouvez retrouver le dossier que vous avez créé pour la démarche
|
||||
%strong= @dossier.procedure.libelle
|
||||
à l'adresse suivante :
|
||||
= link_to dossier_url(@dossier), dossier_url(@dossier), target: '_blank', rel: 'noopener'
|
||||
- if @dossier.procedure.service.present?
|
||||
%p
|
||||
Pour obtenir le détail de cette modification de la décision, vous pouvez contacter par
|
||||
email:
|
||||
= mail_to @dossier.procedure.service.email, @dossier.procedure.service.email
|
||||
|
||||
= render partial: "layouts/mailers/signature"
|
|
@ -1,4 +1,4 @@
|
|||
- avis_statut = (@statut == NewGestionnaire::AvisController::A_DONNER_STATUS) ? 'à donner' : 'rendus'
|
||||
- avis_statut = (@statut == Gestionnaires::AvisController::A_DONNER_STATUS) ? 'à donner' : 'rendus'
|
||||
- content_for(:title, "Avis #{avis_statut}")
|
||||
|
||||
.sub-header
|
||||
|
@ -7,14 +7,14 @@
|
|||
%h1.tab-title Avis
|
||||
%ul.tabs
|
||||
= tab_item('avis à donner',
|
||||
gestionnaire_avis_index_path(statut: NewGestionnaire::AvisController::A_DONNER_STATUS),
|
||||
active: @statut == NewGestionnaire::AvisController::A_DONNER_STATUS,
|
||||
gestionnaire_avis_index_path(statut: Gestionnaires::AvisController::A_DONNER_STATUS),
|
||||
active: @statut == Gestionnaires::AvisController::A_DONNER_STATUS,
|
||||
badge: @avis_a_donner.count,
|
||||
notification: @avis_a_donner.any?)
|
||||
|
||||
= tab_item("avis #{'donné'.pluralize(@avis_donnes.count)}",
|
||||
gestionnaire_avis_index_path(statut: NewGestionnaire::AvisController::DONNES_STATUS),
|
||||
active: @statut == NewGestionnaire::AvisController::DONNES_STATUS,
|
||||
gestionnaire_avis_index_path(statut: Gestionnaires::AvisController::DONNES_STATUS),
|
||||
active: @statut == Gestionnaires::AvisController::DONNES_STATUS,
|
||||
badge: @avis_donnes.count)
|
||||
|
||||
.container
|
|
@ -26,7 +26,7 @@
|
|||
= f.submit 'Envoyer votre avis', class: 'button send'
|
||||
|
||||
- if !@dossier.termine?
|
||||
= render partial: "new_gestionnaire/shared/avis/form", locals: { url: avis_gestionnaire_avis_path(@avis), must_be_confidentiel: @avis.confidentiel?, avis: @new_avis }
|
||||
= render partial: "gestionnaires/shared/avis/form", locals: { url: avis_gestionnaire_avis_path(@avis), must_be_confidentiel: @avis.confidentiel?, avis: @new_avis }
|
||||
|
||||
- if @dossier.avis_for(current_gestionnaire).present?
|
||||
= render partial: 'new_gestionnaire/shared/avis/list', locals: { avis: @dossier.avis_for(current_gestionnaire), avis_seen_at: nil }
|
||||
= render partial: 'gestionnaires/shared/avis/list', locals: { avis: @dossier.avis_for(current_gestionnaire), avis_seen_at: nil }
|
|
@ -4,7 +4,7 @@
|
|||
%p.description= @dossier.procedure.libelle
|
||||
%p.dossier Dossier nº #{@dossier.id}
|
||||
.column
|
||||
= form_for(Gestionnaire.new, url: { controller: "new_gestionnaire/avis", action: :create_gestionnaire }, method: :post, html: { class: "form" }) do |f|
|
||||
= form_for(Gestionnaire.new, url: { controller: "gestionnaires/avis", action: :create_gestionnaire }, method: :post, html: { class: "form" }) do |f|
|
||||
%h1 Créez-vous un compte
|
||||
|
||||
= f.label :email, "Email"
|
|
@ -19,7 +19,7 @@
|
|||
%li
|
||||
= link_to "Uniquement cet onglet", "#", onclick: "window.print()", class: "menu-item menu-link"
|
||||
|
||||
= render partial: "new_gestionnaire/procedures/dossier_actions", locals: { procedure: dossier.procedure, dossier: dossier, dossier_is_followed: current_gestionnaire&.follow?(dossier) }
|
||||
= render partial: "gestionnaires/procedures/dossier_actions", locals: { procedure: dossier.procedure, dossier: dossier, dossier_is_followed: current_gestionnaire&.follow?(dossier) }
|
||||
%span.state-button
|
||||
= render partial: "state_button", locals: { dossier: dossier }
|
||||
|
|
@ -47,9 +47,9 @@
|
|||
.dropdown-description
|
||||
%h4 Refuser
|
||||
L'usager sera notifié que son dossier a été refusé
|
||||
= render partial: 'new_gestionnaire/dossiers/state_button_motivation', locals: { dossier: dossier, popup_title: 'Accepter le dossier', placeholder: 'Expliquez au demandeur pourquoi ce dossier est accepté (facultatif)', popup_class: 'accept', process_action: 'accepter', title: 'Accepter', confirm: "Confirmez-vous l'acceptation ce dossier ?" }
|
||||
= render partial: 'new_gestionnaire/dossiers/state_button_motivation', locals: { dossier: dossier, popup_title: 'Classer le dossier sans suite', placeholder: 'Expliquez au demandeur pourquoi ce dossier est classé sans suite (obligatoire)', popup_class: 'without-continuation', process_action: 'classer_sans_suite', title: 'Classer sans suite', confirm: 'Confirmez-vous le classement sans suite de ce dossier ?' }
|
||||
= render partial: 'new_gestionnaire/dossiers/state_button_motivation', locals: { dossier: dossier, popup_title: 'Refuser le dossier', placeholder: 'Expliquez au demandeur pourquoi ce dossier est refusé (obligatoire)', popup_class: 'refuse', process_action: 'refuser', title: 'Refuser', confirm: 'Confirmez-vous le refus de ce dossier ?' }
|
||||
= render partial: 'gestionnaires/dossiers/state_button_motivation', locals: { dossier: dossier, popup_title: 'Accepter le dossier', placeholder: 'Expliquez au demandeur pourquoi ce dossier est accepté (facultatif)', popup_class: 'accept', process_action: 'accepter', title: 'Accepter', confirm: "Confirmez-vous l'acceptation ce dossier ?" }
|
||||
= render partial: 'gestionnaires/dossiers/state_button_motivation', locals: { dossier: dossier, popup_title: 'Classer le dossier sans suite', placeholder: 'Expliquez au demandeur pourquoi ce dossier est classé sans suite (obligatoire)', popup_class: 'without-continuation', process_action: 'classer_sans_suite', title: 'Classer sans suite', confirm: 'Confirmez-vous le classement sans suite de ce dossier ?' }
|
||||
= render partial: 'gestionnaires/dossiers/state_button_motivation', locals: { dossier: dossier, popup_title: 'Refuser le dossier', placeholder: 'Expliquez au demandeur pourquoi ce dossier est refusé (obligatoire)', popup_class: 'refuse', process_action: 'refuser', title: 'Refuser', confirm: 'Confirmez-vous le refus de ce dossier ?' }
|
||||
|
||||
- else
|
||||
- if dossier.motivation.present? || dossier.attestation.present?
|
|
@ -4,10 +4,10 @@
|
|||
|
||||
.container
|
||||
- if !@dossier.termine?
|
||||
= render partial: "new_gestionnaire/shared/avis/form", locals: { url: avis_gestionnaire_dossier_path(@dossier.procedure, @dossier), must_be_confidentiel: false, avis: @avis }
|
||||
= render partial: "gestionnaires/shared/avis/form", locals: { url: avis_gestionnaire_dossier_path(@dossier.procedure, @dossier), must_be_confidentiel: false, avis: @avis }
|
||||
|
||||
- if @dossier.avis.present?
|
||||
= render partial: 'new_gestionnaire/shared/avis/list', locals: { avis: @dossier.avis, avis_seen_at: @avis_seen_at }
|
||||
= render partial: 'gestionnaires/shared/avis/list', locals: { avis: @dossier.avis, avis_seen_at: @avis_seen_at }
|
||||
|
||||
- if @dossier.termine? && !@dossier.avis.present?
|
||||
.blank-tab
|
|
@ -0,0 +1,12 @@
|
|||
- content_for(:title, "Personnes impliquées · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
|
||||
|
||||
= render partial: "header", locals: { dossier: @dossier }
|
||||
|
||||
.personnes-impliquees.container
|
||||
= render partial: 'gestionnaires/dossiers/envoyer_dossier_block', locals: { dossier: @dossier, potential_recipients: @potential_recipients }
|
||||
|
||||
= render partial: 'gestionnaires/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: 'gestionnaires/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: 'gestionnaires/dossiers/personnes_impliquees_block', locals: { emails_collection: @invites_emails, title: "Personnes invitées à consulter ce dossier", blank: "Aucune personne n'a été invitée à consulter ce dossier" }
|
|
@ -31,6 +31,6 @@
|
|||
%td.status-col
|
||||
= link_to(dossier_linked_path(current_gestionnaire, dossier), class: 'cell-link') do
|
||||
= render partial: 'shared/dossiers/status_badge', locals: { dossier: dossier }
|
||||
%td.action-col.follow-col= render partial: 'new_gestionnaire/procedures/dossier_actions', locals: { procedure: dossier.procedure, dossier: dossier, dossier_is_followed: @followed_dossiers_id.include?(dossier.id) }
|
||||
%td.action-col.follow-col= render partial: 'gestionnaires/procedures/dossier_actions', locals: { procedure: dossier.procedure, dossier: dossier, dossier_is_followed: @followed_dossiers_id.include?(dossier.id) }
|
||||
- else
|
||||
%h2 Aucun dossier correspondant à votre recherche n'a été trouvé
|
|
@ -3,7 +3,7 @@
|
|||
= link_to 'DINSIC', "http://etatplateforme.modernisation.gouv.fr"
|
||||
= Time.zone.now.year
|
||||
\-
|
||||
= link_to 'Nouveautés', 'https://github.com/betagouv/tps/releases', target: '_blank'
|
||||
= link_to 'Nouveautés', 'https://github.com/betagouv/demarches-simplifiees.fr/releases', target: '_blank'
|
||||
\-
|
||||
= link_to 'Statistiques', stats_path
|
||||
\-
|
||||
|
|
|
@ -91,6 +91,6 @@
|
|||
- if nav_bar_profile == :user && dossier.present?
|
||||
= render partial: 'users/dossier_help_dropdown', locals: { dossier: dossier }
|
||||
- elsif nav_bar_profile == :gestionnaire
|
||||
= render partial: 'new_gestionnaire/help_dropdown'
|
||||
= render partial: 'gestionnaires/help_dropdown'
|
||||
- else
|
||||
= link_to 'Aide', FAQ_URL, class: "button primary"
|
||||
|
|
14
app/views/layouts/_sendinblue.html.haml
Normal file
14
app/views/layouts/_sendinblue.html.haml
Normal file
|
@ -0,0 +1,14 @@
|
|||
:javascript
|
||||
(function() {
|
||||
window.sib = { equeue: [], client_key: "#{Rails.application.secrets.sendinblue[:client_key]}" };
|
||||
/* OPTIONAL: email for identify request*/
|
||||
window.sib.email_id = '#{current_administrateur.email}';
|
||||
window.sendinblue = {}; for (var j = ['track', 'identify', 'trackLink', 'page'], i = 0; i < j.length; i++) { (function(k) { window.sendinblue[k] = function() { var arg = Array.prototype.slice.call(arguments); (window.sib[k] || function() { var t = {}; t[k] = arg; window.sib.equeue.push(t);})(arg[0], arg[1], arg[2]);};})(j[i]);}var n = document.createElement("script"),i = document.getElementsByTagName("script")[0]; n.type = "text/javascript", n.id = "sendinblue-js", n.async = !0, n.src = "https://sibautomation.com/sa.js?key=" + window.sib.client_key, i.parentNode.insertBefore(n, i), window.sendinblue.page();
|
||||
})();
|
||||
|
||||
sendinblue.identify('#{current_administrateur.email}', {
|
||||
'DS_SIGN_IN_COUNT' : '#{current_administrateur.sign_in_count}',
|
||||
'DS_CREATED_AT' : '#{current_administrateur.created_at}',
|
||||
'DS_ACTIVE' : '#{current_administrateur.active}',
|
||||
'DS_ID' : '#{current_administrateur.id}'
|
||||
});
|
|
@ -22,6 +22,9 @@
|
|||
= stylesheet_link_tag :xray
|
||||
|
||||
= render partial: "layouts/matomo"
|
||||
- if administrateur_signed_in?
|
||||
= render partial: "layouts/sendinblue"
|
||||
|
||||
|
||||
:javascript
|
||||
DATA = [{
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
= csrf_meta_tags
|
||||
|
||||
= render partial: "layouts/matomo"
|
||||
= render partial: "layouts/sendinblue"
|
||||
|
||||
:javascript
|
||||
DATA = [{
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
- content_for(:title, "Personnes impliquées · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
|
||||
|
||||
= render partial: "header", locals: { dossier: @dossier }
|
||||
|
||||
.personnes-impliquees.container
|
||||
= 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_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: @invites_emails, title: "Personnes invitées à consulter ce dossier", blank: "Aucune personne n'a été invitée à consulter ce dossier" }
|
|
@ -21,7 +21,7 @@
|
|||
%li.footer-link
|
||||
= link_to "Newsletter", "https://my.sendinblue.com/users/subscribe/js_id/3s2q1/id/1", :class => "footer-link", :target => "_blank", rel: "noopener"
|
||||
%li.footer-link
|
||||
= link_to "Nouveautés", "https://github.com/betagouv/tps/releases", :class => "footer-link"
|
||||
= link_to "Nouveautés", "https://github.com/betagouv/demarches-simplifiees.fr/releases", :class => "footer-link"
|
||||
%li.footer-link
|
||||
= link_to "Statistiques", stats_path, :class => "footer-link"
|
||||
%li.footer-link
|
||||
|
|
|
@ -26,7 +26,7 @@ shared_dirs = [
|
|||
|
||||
set :domain, ENV.fetch('domain')
|
||||
set :deploy_to, deploy_to
|
||||
set :repository, 'https://github.com/betagouv/tps.git'
|
||||
set :repository, 'https://github.com/betagouv/demarches-simplifiees.fr.git'
|
||||
set :branch, ENV.fetch('branch')
|
||||
set :forward_agent, true
|
||||
set :user, 'ds'
|
||||
|
|
|
@ -307,7 +307,7 @@ Rails.application.routes.draw do
|
|||
# Gestionnaire
|
||||
#
|
||||
|
||||
scope module: 'new_gestionnaire', as: 'gestionnaire' do
|
||||
scope module: 'gestionnaires', as: 'gestionnaire' do
|
||||
resources :procedures, only: [:index, :show], param: :procedure_id do
|
||||
member do
|
||||
patch 'update_displayed_fields'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NewGestionnaire::AvisController, type: :controller do
|
||||
describe Gestionnaires::AvisController, type: :controller do
|
||||
context 'with a gestionnaire signed in' do
|
||||
render_views
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NewGestionnaire::DossiersController, type: :controller do
|
||||
describe Gestionnaires::DossiersController, type: :controller do
|
||||
render_views
|
||||
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
|
@ -1,9 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NewGestionnaire::GestionnaireController, type: :controller do
|
||||
describe Gestionnaires::GestionnaireController, type: :controller do
|
||||
describe 'before actions: authenticate_gestionnaire!' do
|
||||
it 'is present' do
|
||||
before_actions = NewGestionnaire::GestionnaireController
|
||||
before_actions = Gestionnaires::GestionnaireController
|
||||
._process_action_callbacks
|
||||
.find_all { |process_action_callbacks| process_action_callbacks.kind == :before }
|
||||
.map(&:filter)
|
|
@ -1,9 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NewGestionnaire::ProceduresController, type: :controller do
|
||||
describe Gestionnaires::ProceduresController, type: :controller do
|
||||
describe "before_action: ensure_ownership!" do
|
||||
it "is present" do
|
||||
before_actions = NewGestionnaire::ProceduresController
|
||||
before_actions = Gestionnaires::ProceduresController
|
||||
._process_action_callbacks
|
||||
.find_all { |process_action_callbacks| process_action_callbacks.kind == :before }
|
||||
.map(&:filter)
|
||||
|
@ -44,7 +44,7 @@ describe NewGestionnaire::ProceduresController, type: :controller do
|
|||
|
||||
describe "before_action: redirect_to_avis_if_needed" do
|
||||
it "is present" do
|
||||
before_actions = NewGestionnaire::ProceduresController
|
||||
before_actions = Gestionnaires::ProceduresController
|
||||
._process_action_callbacks
|
||||
.find_all { |process_action_callbacks| process_action_callbacks.kind == :before }
|
||||
.map(&:filter)
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NewGestionnaire::RechercheController, type: :controller do
|
||||
describe Gestionnaires::RechercheController, type: :controller do
|
||||
let(:dossier) { create(:dossier, :en_construction) }
|
||||
let(:dossier2) { create(:dossier, :en_construction, procedure: dossier.procedure) }
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
|
@ -86,6 +86,10 @@ FactoryBot.define do
|
|||
end
|
||||
factory :type_de_champ_piece_justificative do
|
||||
type_champ { TypeDeChamp.type_champs.fetch(:piece_justificative) }
|
||||
|
||||
after(:create) do |tc, _evaluator|
|
||||
tc.piece_justificative_template.attach(io: StringIO.new("toto"), filename: "toto.txt", content_type: "text/plain")
|
||||
end
|
||||
end
|
||||
factory :type_de_champ_siret do
|
||||
type_champ { TypeDeChamp.type_champs.fetch(:siret) }
|
||||
|
|
|
@ -16,6 +16,10 @@ class DossierMailerPreview < ActionMailer::Preview
|
|||
DossierMailer.notify_deletion_to_administration(deleted_dossier, "admin@ds.fr")
|
||||
end
|
||||
|
||||
def notify_revert_to_instruction
|
||||
DossierMailer.notify_revert_to_instruction(dossier)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def deleted_dossier
|
||||
|
|
|
@ -485,6 +485,10 @@ describe Procedure do
|
|||
expect(subject.types_de_champ.first.id).not_to eq(procedure.types_de_champ.first.id)
|
||||
expect(subject.types_de_champ.first.stable_id).to eq(procedure.types_de_champ.first.id)
|
||||
end
|
||||
|
||||
it 'should duplicate piece_justificative_template on a type_de_champ' do
|
||||
expect(subject.types_de_champ.where(type_champ: "piece_justificative").first.piece_justificative_template.attached?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe '#publish!' do
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
describe 'new_gestionnaire/avis/instruction.html.haml', type: :view do
|
||||
describe 'gestionnaires/avis/instruction.html.haml', type: :view do
|
||||
let(:avis) { create(:avis, confidentiel: confidentiel) }
|
||||
|
||||
before do
|
|
@ -1,9 +1,9 @@
|
|||
describe 'new_gestionnaire/dossiers/envoyer_dossier_block.html.haml', type: :view do
|
||||
describe 'gestionnaires/dossiers/envoyer_dossier_block.html.haml', type: :view do
|
||||
let(:dossier) { create(:dossier) }
|
||||
|
||||
subject do
|
||||
render(
|
||||
'new_gestionnaire/dossiers/envoyer_dossier_block.html.haml',
|
||||
'gestionnaires/dossiers/envoyer_dossier_block.html.haml',
|
||||
dossier: dossier,
|
||||
potential_recipients: potential_recipients
|
||||
)
|
|
@ -1,9 +1,9 @@
|
|||
describe 'new_gestionnaire/dossiers/state_button_motivation.html.haml', type: :view do
|
||||
describe 'gestionnaires/dossiers/state_button_motivation.html.haml', type: :view do
|
||||
let(:dossier) { create(:dossier, :en_instruction) }
|
||||
|
||||
subject! do
|
||||
render(
|
||||
'new_gestionnaire/dossiers/state_button_motivation.html.haml',
|
||||
'gestionnaires/dossiers/state_button_motivation.html.haml',
|
||||
dossier: dossier,
|
||||
popup_title: 'Accepter le dossier',
|
||||
placeholder: 'Expliquez au demandeur pourquoi ce dossier est accepté (facultatif)',
|
|
@ -1,4 +1,4 @@
|
|||
describe 'new_gestionnaire/dossiers/print.html.haml', type: :view do
|
||||
describe 'gestionnaires/dossiers/print.html.haml', type: :view do
|
||||
before { view.extend DossierHelper }
|
||||
|
||||
context "with a dossier" do
|
|
@ -1,4 +1,4 @@
|
|||
describe 'new_gestionnaire/dossiers/show.html.haml', type: :view do
|
||||
describe 'gestionnaires/dossiers/show.html.haml', type: :view do
|
||||
let(:current_gestionnaire) { create(:gestionnaire) }
|
||||
let(:dossier) { create(:dossier, :en_construction) }
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
describe 'new_gestionnaire/procedures/_download_dossiers.html.haml', type: :view do
|
||||
describe 'gestionnaires/procedures/_download_dossiers.html.haml', type: :view do
|
||||
let(:current_gestionnaire) { create(:gestionnaire) }
|
||||
let(:procedure) { create(:procedure) }
|
||||
|
||||
subject { render 'new_gestionnaire/procedures/download_dossiers.html.haml', procedure: procedure }
|
||||
subject { render 'gestionnaires/procedures/download_dossiers.html.haml', procedure: procedure }
|
||||
|
||||
context "when procedure has 0 dossier" do
|
||||
it { is_expected.not_to include("Télécharger tous les dossiers") }
|
|
@ -1,7 +1,7 @@
|
|||
describe 'new_gestionnaire/shared/avis/_list.html.haml', type: :view do
|
||||
describe 'gestionnaires/shared/avis/_list.html.haml', type: :view do
|
||||
before { view.extend DossierHelper }
|
||||
|
||||
subject { render 'new_gestionnaire/shared/avis/list.html.haml', avis: avis, avis_seen_at: seen_at, current_gestionnaire: gestionnaire }
|
||||
subject { render 'gestionnaires/shared/avis/list.html.haml', avis: avis, avis_seen_at: seen_at, current_gestionnaire: gestionnaire }
|
||||
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
||||
let(:avis) { [create(:avis, claimant: gestionnaire)] }
|
Loading…
Reference in a new issue