Merge branch 'dev'
This commit is contained in:
commit
5819cf71b5
54 changed files with 878 additions and 238 deletions
|
@ -100,15 +100,15 @@ jobs:
|
||||||
- *bundle_install
|
- *bundle_install
|
||||||
- add_ssh_keys:
|
- add_ssh_keys:
|
||||||
fingerprints:
|
fingerprints:
|
||||||
- "0a:67:42:7d:7e:b7:e1:3c:48:8f:bf:68:10:51:a8:44"
|
- "0e:db:db:9c:54:ac:60:1a:d3:ba:28:03:2e:7d:0e:9a"
|
||||||
- deploy:
|
- deploy:
|
||||||
command: |
|
command: |
|
||||||
if [ "${CIRCLE_BRANCH}" == "dev" ]; then
|
if [ "${CIRCLE_BRANCH}" == "dev" ]; then
|
||||||
bundle exec rake deploy_ha
|
bundle exec rake deploy to=staging
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||||
bundle exec rake deploy_ha to=production
|
bundle exec rake deploy to=production
|
||||||
fi
|
fi
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
|
|
|
@ -9,3 +9,6 @@ charset = utf-8
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
indent_style = space
|
indent_style = space
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.{ico,keep,pdf,svg}]
|
||||||
|
insert_final_newline = false
|
||||||
|
|
37
Rakefile
37
Rakefile
|
@ -4,40 +4,3 @@
|
||||||
require File.expand_path('config/application', __dir__)
|
require File.expand_path('config/application', __dir__)
|
||||||
|
|
||||||
Rails.application.load_tasks
|
Rails.application.load_tasks
|
||||||
|
|
||||||
task :lint do
|
|
||||||
sh "bundle exec rubocop"
|
|
||||||
sh "bundle exec haml-lint app/views/"
|
|
||||||
sh "bundle exec scss-lint app/assets/stylesheets/"
|
|
||||||
sh "bundle exec brakeman --no-pager"
|
|
||||||
sh "yarn lint:js"
|
|
||||||
end
|
|
||||||
|
|
||||||
task :deploy do
|
|
||||||
domains = %w(37.187.249.111 149.202.72.152 149.202.198.6)
|
|
||||||
domains.each do |domain|
|
|
||||||
sh "mina deploy domain=#{domain}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
task :deploy_ha do
|
|
||||||
domains = %w(149.202.72.152 149.202.198.6)
|
|
||||||
domains.each do |domain|
|
|
||||||
sh "mina deploy domain=#{domain}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
task :deploy_old do
|
|
||||||
domains = %w(37.187.154.237 37.187.249.111)
|
|
||||||
domains.each do |domain|
|
|
||||||
sh "mina deploy domain=#{domain}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
task :deploy_test do
|
|
||||||
domains = %w(192.168.0.116)
|
|
||||||
branch = 'clamav'
|
|
||||||
domains.each do |domain|
|
|
||||||
sh "mina deploy domain=#{domain} branch=#{branch}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -193,7 +193,7 @@
|
||||||
// CAUTION: IE hackery ahead
|
// CAUTION: IE hackery ahead
|
||||||
&::-ms-expand {
|
&::-ms-expand {
|
||||||
display: none; // remove default arrow in IE 10 and 11 */
|
display: none; // remove default arrow in IE 10 and 11 */
|
||||||
}
|
}
|
||||||
|
|
||||||
// target Internet Explorer 9 to undo the custom arrow */
|
// target Internet Explorer 9 to undo the custom arrow */
|
||||||
@media screen and (min-width:0\0) {
|
@media screen and (min-width:0\0) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* http://meyerweb.com/eric/tools/css/reset/
|
/*
|
||||||
v2.0 | 20110126
|
http://meyerweb.com/eric/tools/css/reset/
|
||||||
License: none (public domain)
|
v2.0 | 20110126
|
||||||
|
License: none (public domain)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
html, body, div, span, applet, object, iframe,
|
html, body, div, span, applet, object, iframe,
|
||||||
|
@ -16,33 +17,33 @@ article, aside, canvas, details, embed,
|
||||||
figure, figcaption, footer, header, hgroup,
|
figure, figcaption, footer, header, hgroup,
|
||||||
menu, nav, output, ruby, section, summary,
|
menu, nav, output, ruby, section, summary,
|
||||||
time, mark, audio, video {
|
time, mark, audio, video {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
font: inherit;
|
font: inherit;
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
/* HTML5 display-role reset for older browsers */
|
/* HTML5 display-role reset for older browsers */
|
||||||
article, aside, details, figcaption, figure,
|
article, aside, details, figcaption, figure,
|
||||||
footer, header, hgroup, menu, nav, section {
|
footer, header, hgroup, menu, nav, section {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
ol, ul {
|
ol, ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
blockquote, q {
|
blockquote, q {
|
||||||
quotes: none;
|
quotes: none;
|
||||||
}
|
}
|
||||||
blockquote:before, blockquote:after,
|
blockquote:before, blockquote:after,
|
||||||
q:before, q:after {
|
q:before, q:after {
|
||||||
content: '';
|
content: '';
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
table {
|
table {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,8 +90,6 @@ class ApplicationController < ActionController::Base
|
||||||
logged_users.first
|
logged_users.first
|
||||||
end
|
end
|
||||||
|
|
||||||
helper_method :logged_user
|
|
||||||
|
|
||||||
def logged_user_roles
|
def logged_user_roles
|
||||||
roles = logged_users.map { |logged_user| logged_user.class.name }
|
roles = logged_users.map { |logged_user| logged_user.class.name }
|
||||||
roles.any? ? roles.join(', ') : 'Guest'
|
roles.any? ? roles.join(', ') : 'Guest'
|
||||||
|
|
|
@ -3,14 +3,14 @@ module Manager
|
||||||
def resend_confirmation_instructions
|
def resend_confirmation_instructions
|
||||||
user = User.find(params[:id])
|
user = User.find(params[:id])
|
||||||
user.resend_confirmation_instructions
|
user.resend_confirmation_instructions
|
||||||
flash[:notice] = "Le message de confirmation de l’adresse email a été renvoyé."
|
flash[:notice] = "L'email d'activation de votre compte a été renvoyé."
|
||||||
redirect_to manager_user_path(user)
|
redirect_to manager_user_path(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def confirm
|
def confirm
|
||||||
user = User.find(params[:id])
|
user = User.find(params[:id])
|
||||||
user.confirm
|
user.confirm
|
||||||
flash[:notice] = "L’adresse email de l’utilisateur a été marquée comme confirmée."
|
flash[:notice] = "L’adresse email de l’utilisateur a été marquée comme activée."
|
||||||
redirect_to manager_user_path(user)
|
redirect_to manager_user_path(user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -76,5 +76,5 @@ class Users::CarteController < UsersController
|
||||||
multipolygone.to_json
|
multipolygone.to_json
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
21
app/helpers/demande_helper.rb
Normal file
21
app/helpers/demande_helper.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module DemandeHelper
|
||||||
|
def nb_of_procedures_options
|
||||||
|
{
|
||||||
|
'je ne sais pas' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_DO_NOT_KNOW_VALUE,
|
||||||
|
'1' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_1_VALUE,
|
||||||
|
'1 à 10' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_1_TO_10_VALUE,
|
||||||
|
'10 à 100 ' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_10_TO_100_VALUE,
|
||||||
|
'plus de 100' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_ABOVE_100_VALUE
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
def deadline_options
|
||||||
|
{
|
||||||
|
'le plus vite possible' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_ASAP_VALUE,
|
||||||
|
'dans les 3 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_3_MONTHS_VALUE,
|
||||||
|
'dans les 6 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_6_MONTHS_VALUE,
|
||||||
|
'dans les 12 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_12_MONTHS_VALUE,
|
||||||
|
'pas de date' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NO_DATE_VALUE
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
|
@ -8,7 +8,7 @@ class AdministrateurMailer < ApplicationMailer
|
||||||
@subject = "N'oubliez pas d'activer votre compte administrateur"
|
@subject = "N'oubliez pas d'activer votre compte administrateur"
|
||||||
|
|
||||||
mail(to: administrateur.email,
|
mail(to: administrateur.email,
|
||||||
subject: @subject,
|
subject: @subject,
|
||||||
reply_to: CONTACT_EMAIL)
|
reply_to: CONTACT_EMAIL)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ class AdministrationMailer < ApplicationMailer
|
||||||
subject = "Création d'un compte admininistrateur"
|
subject = "Création d'un compte admininistrateur"
|
||||||
|
|
||||||
mail(to: TECH_EMAIL,
|
mail(to: TECH_EMAIL,
|
||||||
subject: subject)
|
subject: subject)
|
||||||
end
|
end
|
||||||
|
|
||||||
def invite_admin(admin, reset_password_token, administration_id)
|
def invite_admin(admin, reset_password_token, administration_id)
|
||||||
|
@ -17,16 +17,16 @@ class AdministrationMailer < ApplicationMailer
|
||||||
subject = "Activez votre compte administrateur"
|
subject = "Activez votre compte administrateur"
|
||||||
|
|
||||||
mail(to: admin.email,
|
mail(to: admin.email,
|
||||||
subject: subject,
|
subject: subject,
|
||||||
reply_to: CONTACT_EMAIL)
|
reply_to: CONTACT_EMAIL)
|
||||||
end
|
end
|
||||||
|
|
||||||
def refuse_admin(admin_email)
|
def refuse_admin(admin_email)
|
||||||
subject = "Votre demande de compte a été refusée"
|
subject = "Votre demande de compte a été refusée"
|
||||||
|
|
||||||
mail(to: admin_email,
|
mail(to: admin_email,
|
||||||
subject: subject,
|
subject: subject,
|
||||||
reply_to: CONTACT_EMAIL)
|
reply_to: CONTACT_EMAIL)
|
||||||
end
|
end
|
||||||
|
|
||||||
def dubious_procedures(procedures_and_type_de_champs)
|
def dubious_procedures(procedures_and_type_de_champs)
|
||||||
|
@ -34,6 +34,6 @@ class AdministrationMailer < ApplicationMailer
|
||||||
subject = "[RGS] De nouvelles démarches comportent des champs interdits"
|
subject = "[RGS] De nouvelles démarches comportent des champs interdits"
|
||||||
|
|
||||||
mail(to: EQUIPE_EMAIL,
|
mail(to: EQUIPE_EMAIL,
|
||||||
subject: subject)
|
subject: subject)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,8 +7,8 @@ class GestionnaireMailer < ApplicationMailer
|
||||||
subject = "Activez votre compte instructeur"
|
subject = "Activez votre compte instructeur"
|
||||||
|
|
||||||
mail(to: gestionnaire.email,
|
mail(to: gestionnaire.email,
|
||||||
subject: subject,
|
subject: subject,
|
||||||
reply_to: CONTACT_EMAIL)
|
reply_to: CONTACT_EMAIL)
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_to_gestionnaire(email)
|
def user_to_gestionnaire(email)
|
||||||
|
|
|
@ -20,7 +20,7 @@ class InviteMailer < ApplicationMailer
|
||||||
email = invite.email
|
email = invite.email
|
||||||
|
|
||||||
mail(to: email,
|
mail(to: email,
|
||||||
subject: subject,
|
subject: subject,
|
||||||
reply_to: reply_to)
|
reply_to: reply_to)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -26,8 +26,8 @@ class PreactivateUsersMailer < ApplicationMailer
|
||||||
END_OF_MAIL
|
END_OF_MAIL
|
||||||
|
|
||||||
mail(to: model.email,
|
mail(to: model.email,
|
||||||
subject: subject,
|
subject: subject,
|
||||||
reply_to: CONTACT_EMAIL,
|
reply_to: CONTACT_EMAIL,
|
||||||
body: body)
|
body: body)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -193,7 +193,7 @@ module TagsSubstitutionConcern
|
||||||
tags_and_datas
|
tags_and_datas
|
||||||
.map { |(tags, data)| [filter_tags(tags), data] }
|
.map { |(tags, data)| [filter_tags(tags), data] }
|
||||||
.inject(text) { |acc, (tags, data)| replace_tags_with_values_from_data(acc, tags, data) }
|
.inject(text) { |acc, (tags, data)| replace_tags_with_values_from_data(acc, tags, data) }
|
||||||
end
|
end
|
||||||
|
|
||||||
def replace_type_de_champ_tags(text, types_de_champ, dossier_champs)
|
def replace_type_de_champ_tags(text, types_de_champ, dossier_champs)
|
||||||
types_de_champ.inject(text) do |acc, tag|
|
types_de_champ.inject(text) do |acc, tag|
|
||||||
|
|
|
@ -46,11 +46,7 @@
|
||||||
Combien de démarches souhaitez-vous dématerialiser ?
|
Combien de démarches souhaitez-vous dématerialiser ?
|
||||||
%span.mandatory *
|
%span.mandatory *
|
||||||
= select_tag :nb_of_procedures,
|
= select_tag :nb_of_procedures,
|
||||||
options_for_select({ 'je ne sais pas' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_DO_NOT_KNOW_VALUE,
|
options_for_select(nb_of_procedures_options),
|
||||||
'1' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_1_VALUE,
|
|
||||||
'1 à 10' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_1_TO_10_VALUE,
|
|
||||||
'10 à 100 ' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_10_TO_100_VALUE,
|
|
||||||
'plus de 100' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_ABOVE_100_VALUE }),
|
|
||||||
prompt: 'choisir un intervalle',
|
prompt: 'choisir un intervalle',
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
@ -58,11 +54,7 @@
|
||||||
À quelle échance voudriez-vous dématerialiser ?
|
À quelle échance voudriez-vous dématerialiser ?
|
||||||
%span.mandatory *
|
%span.mandatory *
|
||||||
= select_tag :deadline,
|
= select_tag :deadline,
|
||||||
options_for_select({ 'le plus vite possible' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_ASAP_VALUE,
|
options_for_select(deadline_options),
|
||||||
'dans les 3 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_3_MONTHS_VALUE,
|
|
||||||
'dans les 6 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_6_MONTHS_VALUE,
|
|
||||||
'dans les 12 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_12_MONTHS_VALUE,
|
|
||||||
'pas de date' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NO_DATE_VALUE }),
|
|
||||||
prompt: 'choisir une échéance',
|
prompt: 'choisir une échéance',
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
- content_for(:title, 'Votre nouvelle adresse électronique')
|
- content_for(:title, 'Votre nouvelle adresse email')
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
@ -6,13 +6,13 @@
|
||||||
- unconfirmed_email = @resource.try(:unconfirmed_email?)
|
- unconfirmed_email = @resource.try(:unconfirmed_email?)
|
||||||
- if unconfirmed_email.present?
|
- if unconfirmed_email.present?
|
||||||
%p
|
%p
|
||||||
Nous avons reçu une demande de changement d’adresse électronique pour votre
|
Nous avons reçu une demande de changement d’adresse email pour votre
|
||||||
compte #{@email} sur demarches-simplifiees.fr.
|
compte #{@email} sur demarches-simplifiees.fr.
|
||||||
Une fois la demande prise en compte, la nouvelle adresse électronique de
|
Une fois la demande prise en compte, la nouvelle adresse email de
|
||||||
votre compte sera #{unconfirmed_email}.
|
votre compte sera #{unconfirmed_email}.
|
||||||
- else
|
- else
|
||||||
%p
|
%p
|
||||||
Le changement d’adresse électronique de votre compte #{@email} sur
|
Le changement d’adresse email de votre compte #{@email} sur
|
||||||
demarches-simplifiees.fr a bien été pris en compte.
|
demarches-simplifiees.fr a bien été pris en compte.
|
||||||
Vous pouvez désormais vous connecter avec l’adresse #{@resource.email}.
|
Vous pouvez désormais vous connecter avec l’adresse #{@resource.email}.
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
= link_to edit_password_url(@resource, reset_password_token: @token), edit_password_url(@resource, reset_password_token: @token)
|
= link_to edit_password_url(@resource, reset_password_token: @token), edit_password_url(@resource, reset_password_token: @token)
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Si vous n'avez pas effectué une telle demande, merci d'ignorer ce courriel. Votre mot de passe ne sera pas changé.
|
Si vous n'avez pas effectué une telle demande, merci d'ignorer cet email. Votre mot de passe ne sera pas changé.
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Bonne journée,
|
Bonne journée,
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
- if @facade.dossier.types_de_piece_justificative.size > 0
|
- if @facade.dossier.types_de_piece_justificative.size > 0
|
||||||
.col-lg-4.col-md-4.col-sm-4.col-xs-4.action
|
.col-lg-4.col-md-4.col-sm-4.col-xs-4.action
|
||||||
%a#maj_pj.action{ "data-target" => "#upload-pj-modal",
|
%a#maj_pj.action{ "data-target" => "#upload-pj-modal",
|
||||||
"data-toggle" => "modal",
|
"data-toggle" => "modal",
|
||||||
:type => "button",
|
:type => "button",
|
||||||
style: 'margin-bottom: 15px; margin-top: -30px;' }
|
style: 'margin-bottom: 15px; margin-top: -30px;' }
|
||||||
Modifier les documents
|
Modifier les documents
|
||||||
%br
|
%br
|
||||||
= render partial: 'users/recapitulatif/modal_upload_pj'
|
= render partial: 'users/recapitulatif/modal_upload_pj'
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
- if current_user.owns?(@facade.dossier) && !@facade.dossier.instruction_commencee?
|
- if current_user.owns?(@facade.dossier) && !@facade.dossier.instruction_commencee?
|
||||||
.text-center.mt-1
|
.text-center.mt-1
|
||||||
= link_to ask_deletion_dossier_path(@facade.dossier), method: :post, class: "btn btn-danger", data: { confirm: "Vous vous apprêtez à supprimer votre dossier ainsi que les informations qu’il contient. Nous vous rappelons que toute suppression entraine l’annulation de la démarche en cours. Confirmer la suppression ?" } do
|
= link_to ask_deletion_dossier_path(@facade.dossier), method: :post, class: "btn btn-danger", data: { confirm: "Vous vous apprêtez à supprimer votre dossier ainsi que les informations qu’il contient. Nous vous rappelons que toute suppression entraine l’annulation de la démarche en cours.\n\n Confirmer la suppression ?" } do
|
||||||
Supprimer définitivement
|
Supprimer définitivement
|
||||||
%br
|
%br
|
||||||
ce dossier
|
ce dossier
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
%p.explication Ces informations seront visibles par les utilisateurs du formulaire.
|
%p.explication Ces informations seront visibles par les utilisateurs du formulaire.
|
||||||
|
|
||||||
= f.label :email do
|
= f.label :email do
|
||||||
Courriel
|
Adresse email
|
||||||
%span.mandatory *
|
%span.mandatory *
|
||||||
= f.email_field :email, placeholder: 'contact@mon-service.fr', required: true
|
= f.email_field :email, placeholder: 'contact@mon-service.fr', required: true
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
- if id.present?
|
- if id.present?
|
||||||
- dossier = logged_user.dossiers.find_by(id: id)
|
- dossier = current_user&.dossiers&.find_by(id: id)
|
||||||
|
- dossier ||= current_gestionnaire&.dossiers&.find_by(id: id)
|
||||||
|
- dossier ||= current_administrateur&.dossiers&.find_by(id: id)
|
||||||
- if dossier.blank?
|
- if dossier.blank?
|
||||||
%p.text-warning
|
%p.text-warning
|
||||||
Ce dossier est inconnu
|
Ce dossier est inconnu
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
= link_to ask_deletion_dossier_path(dossier),
|
= link_to ask_deletion_dossier_path(dossier),
|
||||||
method: :post,
|
method: :post,
|
||||||
class: 'button danger',
|
class: 'button danger',
|
||||||
data: { disable: true, confirm: 'En continuant, vous allez supprimer ce dossier ainsi que les informations qu’il contient. Toute suppression entraine l’annulation de la démarche en cours.\n\nConfirmer la suppression ?' } do
|
data: { disable: true, confirm: "En continuant, vous allez supprimer ce dossier ainsi que les informations qu’il contient. Toute suppression entraine l’annulation de la démarche en cours.\n\nConfirmer la suppression ?" } do
|
||||||
Supprimer le brouillon
|
Supprimer le brouillon
|
||||||
|
|
||||||
= f.button 'Enregistrer le brouillon',
|
= f.button 'Enregistrer le brouillon',
|
||||||
|
|
|
@ -1,46 +1,32 @@
|
||||||
require 'mina/bundler'
|
require 'mina/bundler'
|
||||||
require 'mina/rails'
|
require 'mina/rails'
|
||||||
require 'mina/git'
|
require 'mina/git'
|
||||||
require 'mina/rbenv' # for rbenv support. (http://rbenv.org)
|
require 'mina/rbenv'
|
||||||
# require 'mina/rvm' # for rvm support. (http://rvm.io)
|
|
||||||
|
|
||||||
# Basic settings:
|
# Basic settings:
|
||||||
# domain - The hostname to SSH to.
|
# domain - The hostname to SSH to.
|
||||||
# deploy_to - Path to deploy into.
|
# deploy_to - Path to deploy into.
|
||||||
# repository - Git repo to clone from. (needed by mina/git)
|
# repository - Git repo to clone from. (needed by mina/git)
|
||||||
# branch - Branch name to deploy. (needed by mina/git)
|
# branch - Branch name to deploy. (needed by mina/git)
|
||||||
|
#
|
||||||
|
# Advanced settings:
|
||||||
|
# forward_agent - SSH forward_agent
|
||||||
|
# user - Username in the server to SSH to
|
||||||
|
|
||||||
ENV['to'] ||= "staging"
|
if !["staging", "production"].include?(ENV['to'])
|
||||||
raise "Bad to=#{+ENV['to']}" if !["staging", "production"].include?(ENV['to'])
|
raise "missing or incorrect `to` (should be 'staging' or 'production')"
|
||||||
|
end
|
||||||
|
|
||||||
raise "missing domain, run with 'rake deploy domain=37.187.154.237'" if ENV['domain'].nil?
|
if ENV['domain'].nil?
|
||||||
|
raise "missing `domain`"
|
||||||
|
end
|
||||||
|
|
||||||
# set :domain, '5.135.190.60'
|
|
||||||
set :domain, ENV['domain']
|
set :domain, ENV['domain']
|
||||||
set :repository, 'https://github.com/betagouv/tps.git'
|
set :repository, 'https://github.com/betagouv/tps.git'
|
||||||
set :port, 2200
|
set :port, 2200
|
||||||
|
|
||||||
set :deploy_to, '/var/www/tps_dev'
|
|
||||||
|
|
||||||
case ENV["to"]
|
|
||||||
when "staging"
|
|
||||||
set :branch, ENV['branch'] || 'dev'
|
|
||||||
set :deploy_to, '/var/www/tps_dev'
|
|
||||||
set :user, 'tps_dev' # Username in the server to SSH to.
|
|
||||||
appname = 'tps_dev'
|
|
||||||
when "production"
|
|
||||||
set :branch, ENV['branch'] || 'master'
|
|
||||||
set :deploy_to, '/var/www/tps'
|
|
||||||
set :user, 'tps' # Username in the server to SSH to.
|
|
||||||
appname = 'tps'
|
|
||||||
end
|
|
||||||
|
|
||||||
print "Deploy to #{ENV['to']} environment branch #{branch}\n"
|
|
||||||
|
|
||||||
set :rails_env, 'production'
|
set :rails_env, 'production'
|
||||||
|
set :rbenv_path, "/usr/local/rbenv/bin/rbenv"
|
||||||
# For system-wide RVM install.
|
set :forward_agent, true
|
||||||
# set :rvm_path, '/usr/local/rvm/bin/rvm'
|
|
||||||
|
|
||||||
# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
|
# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
|
||||||
# They will be linked in the 'deploy:link_shared_paths' step.
|
# They will be linked in the 'deploy:link_shared_paths' step.
|
||||||
|
@ -56,12 +42,20 @@ set :shared_paths, [
|
||||||
'config/unicorn.rb'
|
'config/unicorn.rb'
|
||||||
]
|
]
|
||||||
|
|
||||||
set :rbenv_path, "/usr/local/rbenv/bin/rbenv"
|
case ENV["to"]
|
||||||
|
when "staging"
|
||||||
|
set :branch, ENV['branch'] || 'dev'
|
||||||
|
set :deploy_to, '/var/www/tps_dev'
|
||||||
|
set :user, 'tps_dev'
|
||||||
|
appname = 'tps_dev'
|
||||||
|
when "production"
|
||||||
|
set :branch, ENV['branch'] || 'master'
|
||||||
|
set :deploy_to, '/var/www/tps'
|
||||||
|
set :user, 'tps'
|
||||||
|
appname = 'tps'
|
||||||
|
end
|
||||||
|
|
||||||
# Optional settings:
|
print "Deploy to #{ENV['to']} environment branch #{branch}\n"
|
||||||
# set :user, 'foobar' # Username in the server to SSH to.
|
|
||||||
# set :port, '30000' # SSH port number.
|
|
||||||
set :forward_agent, true # SSH forward_agent.
|
|
||||||
|
|
||||||
# This task is the environment that is loaded for most commands, such as
|
# This task is the environment that is loaded for most commands, such as
|
||||||
# `mina deploy` or `mina rake`.
|
# `mina deploy` or `mina rake`.
|
||||||
|
@ -144,9 +138,3 @@ task :deploy => :environment do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# For help in making your deploy script, see the Mina documentation:
|
|
||||||
#
|
|
||||||
# - http://nadarei.co/mina
|
|
||||||
# - http://nadarei.co/mina/tasks
|
|
||||||
# - http://nadarei.co/mina/settings
|
|
||||||
# - http://nadarei.co/mina/helpers
|
|
||||||
|
|
|
@ -3,37 +3,37 @@
|
||||||
fr:
|
fr:
|
||||||
devise:
|
devise:
|
||||||
confirmations:
|
confirmations:
|
||||||
confirmed: "Votre compte a été validé."
|
confirmed: "Votre compte a été activé."
|
||||||
send_instructions: 'Vous allez recevoir un courriel avec les instructions nécessaires à la confirmation de votre compte dans quelques minutes.'
|
send_instructions: "Vous allez recevoir un email avec les instructions nécessaires à l'activation de votre compte dans quelques minutes."
|
||||||
send_paranoid_instructions: "Si votre adresse électronique existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte."
|
send_paranoid_instructions: "Si votre adresse email existe dans notre base de données, vous allez bientôt recevoir un email contenant les instructions d'activation de votre compte."
|
||||||
failure:
|
failure:
|
||||||
already_authenticated: "Vous êtes déjà connecté"
|
already_authenticated: "Vous êtes déjà connecté"
|
||||||
inactive: "Votre compte n'est pas encore activé."
|
inactive: "Votre compte n'est pas encore activé."
|
||||||
invalid: "Adresse électronique ou mot de passe incorrect."
|
invalid: "adresse email ou mot de passe incorrect."
|
||||||
last_attempt: "Vous avez droit à une tentative avant que votre compte ne soit verrouillé."
|
last_attempt: "Vous avez droit à une tentative avant que votre compte ne soit verrouillé."
|
||||||
locked: "Votre compte est verrouillé."
|
locked: "Votre compte est verrouillé."
|
||||||
not_found_in_database: "Adresse électronique ou mot de passe invalide."
|
not_found_in_database: "adresse email ou mot de passe invalide."
|
||||||
timeout: "Votre session est expirée. Veuillez vous reconnecter pour continuer."
|
timeout: "Votre session est expirée. Veuillez vous reconnecter pour continuer."
|
||||||
unauthenticated: "Vous devez vous connecter ou vous inscrire pour continuer."
|
unauthenticated: "Vous devez vous connecter ou vous inscrire pour continuer."
|
||||||
unconfirmed: "Vous devez valider votre compte pour continuer."
|
unconfirmed: "Vous devez activer votre compte pour continuer."
|
||||||
mailer:
|
mailer:
|
||||||
confirmation_instructions:
|
confirmation_instructions:
|
||||||
subject: "Instructions de confirmation"
|
subject: "Instructions d'activation de votre compte"
|
||||||
reset_password_instructions:
|
reset_password_instructions:
|
||||||
subject: "Instructions pour changer le mot de passe"
|
subject: "Instructions pour changer le mot de passe"
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: "Instructions pour déverrouiller le compte"
|
subject: "Instructions pour déverrouiller le compte"
|
||||||
email_changed:
|
email_changed:
|
||||||
subject: "Changement d’adresse électronique"
|
subject: "Changement d’adresse email"
|
||||||
password_change:
|
password_change:
|
||||||
subject: "Votre mot de passe a été modifié avec succés."
|
subject: "Votre mot de passe a été modifié avec succés."
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
failure: "Nous n'avons pas pu vous authentifier via %{kind} : '%{reason}'."
|
failure: "Nous n'avons pas pu vous authentifier via %{kind} : '%{reason}'."
|
||||||
success: "Authentifié avec succès via %{kind}."
|
success: "Authentifié avec succès via %{kind}."
|
||||||
passwords:
|
passwords:
|
||||||
no_token: "Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé par un courriel de ce type, assurez-vous d'utiliser l'URL complète."
|
no_token: "Vous ne pouvez accéder à cette page sans passer par un email de réinitialisation de mot de passe. Si vous êtes passé par un email de ce type, assurez-vous d'utiliser l'URL complète."
|
||||||
send_instructions: "Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants"
|
send_instructions: "Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants"
|
||||||
send_paranoid_instructions: "Si votre adresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel"
|
send_paranoid_instructions: "Si votre adresse email existe dans notre base de données, vous allez recevoir un lien de réinitialisation par email"
|
||||||
updated: "Votre mot de passe a été édité avec succès, vous êtes maintenant connecté"
|
updated: "Votre mot de passe a été édité avec succès, vous êtes maintenant connecté"
|
||||||
updated_not_active: "Votre mot de passe a été changé avec succès."
|
updated_not_active: "Votre mot de passe a été changé avec succès."
|
||||||
registrations:
|
registrations:
|
||||||
|
@ -41,8 +41,8 @@ fr:
|
||||||
signed_up: "Bienvenue, vous êtes connecté."
|
signed_up: "Bienvenue, vous êtes connecté."
|
||||||
signed_up_but_inactive: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte n'est pas encore activé."
|
signed_up_but_inactive: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte n'est pas encore activé."
|
||||||
signed_up_but_locked: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé."
|
signed_up_but_locked: "Vous êtes bien enregistré. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé."
|
||||||
signed_up_but_unconfirmed: "Un message contenant un lien de confirmation a été envoyé à votre adresse électronique. Ouvrez ce lien pour activer votre compte."
|
signed_up_but_unconfirmed: "Nous vous avons envoyé un email contenant un lien d'activation. Ouvrez ce lien pour activer votre compte."
|
||||||
update_needs_confirmation: "Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse électronique. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse."
|
update_needs_confirmation: "Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse email. Merci de vérifier vos email et de cliquer sur le lien d'activation pour finaliser la validation de votre nouvelle adresse."
|
||||||
updated: "Votre compte a été modifié avec succès."
|
updated: "Votre compte a été modifié avec succès."
|
||||||
sessions:
|
sessions:
|
||||||
signed_in: "Connecté."
|
signed_in: "Connecté."
|
||||||
|
@ -50,12 +50,12 @@ fr:
|
||||||
already_signed_out: "Déconnecté."
|
already_signed_out: "Déconnecté."
|
||||||
unlocks:
|
unlocks:
|
||||||
send_instructions: "Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants"
|
send_instructions: "Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants"
|
||||||
send_paranoid_instructions: "Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller."
|
send_paranoid_instructions: "Si votre compte existe, vous allez bientôt recevoir un email contenant les instructions pour le déverrouiller."
|
||||||
unlocked: "Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté."
|
unlocked: "Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté."
|
||||||
errors:
|
errors:
|
||||||
messages:
|
messages:
|
||||||
already_confirmed: "a déjà été validé(e), veuillez essayer de vous connecter"
|
already_confirmed: "a déjà été validé(e), veuillez essayer de vous connecter"
|
||||||
confirmation_period_expired: "à confirmer dans les %{period}, merci de faire une nouvelle demande"
|
confirmation_period_expired: "à activer dans les %{period}, merci de faire une nouvelle demande"
|
||||||
expired: "a expiré, merci d'en faire une nouvelle demande"
|
expired: "a expiré, merci d'en faire une nouvelle demande"
|
||||||
not_found: "n'a pas été trouvé(e)"
|
not_found: "n'a pas été trouvé(e)"
|
||||||
not_locked: "n'était pas verrouillé(e)"
|
not_locked: "n'était pas verrouillé(e)"
|
||||||
|
|
|
@ -158,7 +158,7 @@ fr:
|
||||||
invalid_siret: "Le siret est incorrect"
|
invalid_siret: "Le siret est incorrect"
|
||||||
procedure_not_found: "La démarche n'existe pas"
|
procedure_not_found: "La démarche n'existe pas"
|
||||||
france_connect:
|
france_connect:
|
||||||
connexion: "Erreur lors de la connexion à France Connect."
|
connexion: "Erreur lors de la connexion à France Connect."
|
||||||
extension_white_list_error: "Le format de fichier de la pièce jointe n'est pas valide."
|
extension_white_list_error: "Le format de fichier de la pièce jointe n'est pas valide."
|
||||||
procedure_archived: "Cette démarche en ligne a été fermée, il n'est plus possible de déposer de dossier."
|
procedure_archived: "Cette démarche en ligne a été fermée, il n'est plus possible de déposer de dossier."
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ module Cellar
|
||||||
canonicalized_amz_headers = ""
|
canonicalized_amz_headers = ""
|
||||||
canonicalized_resource = "/#{@bucket}/#{key}"
|
canonicalized_resource = "/#{@bucket}/#{key}"
|
||||||
string_to_sign = "#{method}\n#{checksum}\n#{content_type}\n#{expires}#{date}\n" +
|
string_to_sign = "#{method}\n#{checksum}\n#{content_type}\n#{expires}#{date}\n" +
|
||||||
"#{canonicalized_amz_headers}#{canonicalized_resource}"
|
"#{canonicalized_amz_headers}#{canonicalized_resource}"
|
||||||
Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), @secret_access_key, string_to_sign)).strip
|
Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), @secret_access_key, string_to_sign)).strip
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
6
lib/tasks/deploy.rake
Normal file
6
lib/tasks/deploy.rake
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
task :deploy do
|
||||||
|
domains = %w(149.202.72.152 149.202.198.6)
|
||||||
|
domains.each do |domain|
|
||||||
|
sh "mina deploy domain=#{domain}"
|
||||||
|
end
|
||||||
|
end
|
|
@ -12,7 +12,7 @@ namespace :dev do
|
||||||
local_file = "/tmp/#{filename}"
|
local_file = "/tmp/#{filename}"
|
||||||
|
|
||||||
if !File.exist?(local_file)
|
if !File.exist?(local_file)
|
||||||
run_and_stop_if_error "scp -C deploy@sgmap_backup:/var/backup/production1/db/#{filename} #{local_file}"
|
run_and_stop_if_error "scp -C db1:/data/backup/#{filename} #{local_file}"
|
||||||
end
|
end
|
||||||
|
|
||||||
dev_env_param = "RAILS_ENV=development"
|
dev_env_param = "RAILS_ENV=development"
|
||||||
|
|
8
lib/tasks/lint.rake
Normal file
8
lib/tasks/lint.rake
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
task :lint do
|
||||||
|
sh "bundle exec rubocop"
|
||||||
|
sh "bundle exec haml-lint app/views/"
|
||||||
|
sh "bundle exec scss-lint app/assets/stylesheets/"
|
||||||
|
sh "bundle exec brakeman --no-pager"
|
||||||
|
sh "yarn lint:ec"
|
||||||
|
sh "yarn lint:js"
|
||||||
|
end
|
|
@ -15,6 +15,7 @@
|
||||||
"turbolinks": "^5.1.1"
|
"turbolinks": "^5.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"eclint": "^2.8.0",
|
||||||
"eslint": "^5.2.0",
|
"eslint": "^5.2.0",
|
||||||
"eslint-config-prettier": "^2.9.0",
|
"eslint-config-prettier": "^2.9.0",
|
||||||
"eslint-plugin-prettier": "^2.6.2",
|
"eslint-plugin-prettier": "^2.6.2",
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
"webpack-dev-server": "^3.1.4"
|
"webpack-dev-server": "^3.1.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"lint:ec": "eclint check $({ git ls-files ; find vendor -type f ; echo 'db/schema.rb' ; } | sort | uniq -u)",
|
||||||
"lint:js": "eslint ./app/javascript ./config/webpack"
|
"lint:js": "eslint ./app/javascript ./config/webpack"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
|
@ -691,9 +691,9 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
let(:procedure) { create :procedure, :published, administrateur: admin }
|
let(:procedure) { create :procedure, :published, administrateur: admin }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
subject
|
subject
|
||||||
procedure.reload
|
procedure.reload
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(procedure.hidden_at).not_to be_nil }
|
it { expect(procedure.hidden_at).not_to be_nil }
|
||||||
it { expect(procedure.procedure_path).to be_nil }
|
it { expect(procedure.procedure_path).to be_nil }
|
||||||
|
|
|
@ -585,10 +585,6 @@ describe NewUser::DossiersController, type: :controller do
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
|
||||||
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
subject! { get(:show, params: { id: dossier.id }) }
|
subject! { get(:show, params: { id: dossier.id }) }
|
||||||
|
|
||||||
context 'when the dossier is a brouillon' do
|
context 'when the dossier is a brouillon' do
|
||||||
|
@ -620,10 +616,6 @@ describe NewUser::DossiersController, type: :controller do
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
|
||||||
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
subject! { get(:demande, params: { id: dossier.id }) }
|
subject! { get(:demande, params: { id: dossier.id }) }
|
||||||
|
|
||||||
it { expect(assigns(:dossier)).to eq(dossier) }
|
it { expect(assigns(:dossier)).to eq(dossier) }
|
||||||
|
|
|
@ -10,10 +10,6 @@ describe 'Dossier details:' do
|
||||||
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, true)
|
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
|
||||||
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'the user can see the summary of the dossier status' do
|
scenario 'the user can see the summary of the dossier status' do
|
||||||
visit_dossier dossier
|
visit_dossier dossier
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ feature 'Invitations' do
|
||||||
fill_in 'user_password', with: user_password
|
fill_in 'user_password', with: user_password
|
||||||
click_on 'Créer un compte'
|
click_on 'Créer un compte'
|
||||||
|
|
||||||
expect(page).to have_content('lien de confirmation')
|
expect(page).to have_content("lien d'activation")
|
||||||
|
|
||||||
# Confirm the email
|
# Confirm the email
|
||||||
user = User.find_by(email: invite.email)
|
user = User.find_by(email: invite.email)
|
||||||
|
|
|
@ -55,7 +55,7 @@ describe CARTO::SGMAP::API do
|
||||||
before do
|
before do
|
||||||
stub_request(:post, "https://apicarto.sgmap.fr/cadastre/geometrie")
|
stub_request(:post, "https://apicarto.sgmap.fr/cadastre/geometrie")
|
||||||
.with(:body => /.*/,
|
.with(:body => /.*/,
|
||||||
:headers => { 'Content-Type' => 'application/json' })
|
:headers => { 'Content-Type' => 'application/json' })
|
||||||
.to_return(status: status, body: body)
|
.to_return(status: status, body: body)
|
||||||
end
|
end
|
||||||
context 'when geojson is empty' do
|
context 'when geojson is empty' do
|
||||||
|
|
|
@ -2,21 +2,21 @@ describe EmailSanitizableConcern, type: :model do
|
||||||
describe 'sanitize_email' do
|
describe 'sanitize_email' do
|
||||||
let(:email_concern) do
|
let(:email_concern) do
|
||||||
(Class.new do
|
(Class.new do
|
||||||
include EmailSanitizableConcern
|
include EmailSanitizableConcern
|
||||||
attr_accessor :email
|
attr_accessor :email
|
||||||
|
|
||||||
def initialize(email)
|
def initialize(email)
|
||||||
self.email = email
|
self.email = email
|
||||||
end
|
end
|
||||||
|
|
||||||
def [](key)
|
def [](key)
|
||||||
self.send(key)
|
self.send(key)
|
||||||
end
|
end
|
||||||
|
|
||||||
def []=(key, value)
|
def []=(key, value)
|
||||||
self.send("#{key}=", value)
|
self.send("#{key}=", value)
|
||||||
end
|
end
|
||||||
end).new(email)
|
end).new(email)
|
||||||
end
|
end
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
|
|
@ -14,18 +14,17 @@ describe TagsSubstitutionConcern, type: :model do
|
||||||
|
|
||||||
let(:template_concern) do
|
let(:template_concern) do
|
||||||
(Class.new do
|
(Class.new do
|
||||||
include TagsSubstitutionConcern
|
include TagsSubstitutionConcern
|
||||||
public :replace_tags
|
|
||||||
|
|
||||||
def initialize(p, s)
|
def initialize(p, s)
|
||||||
@procedure = p
|
@procedure = p
|
||||||
self.class.const_set(:DOSSIER_STATE, s)
|
self.class.const_set(:DOSSIER_STATE, s)
|
||||||
end
|
end
|
||||||
|
|
||||||
def procedure
|
def procedure
|
||||||
@procedure
|
@procedure
|
||||||
end
|
end
|
||||||
end).new(procedure, state)
|
end).new(procedure, state)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'replace_tags' do
|
describe 'replace_tags' do
|
||||||
|
@ -35,7 +34,7 @@ describe TagsSubstitutionConcern, type: :model do
|
||||||
|
|
||||||
before { Timecop.freeze(Time.now) }
|
before { Timecop.freeze(Time.now) }
|
||||||
|
|
||||||
subject { template_concern.replace_tags(template, dossier) }
|
subject { template_concern.send(:replace_tags, template, dossier) }
|
||||||
|
|
||||||
after { Timecop.return }
|
after { Timecop.return }
|
||||||
|
|
||||||
|
@ -253,7 +252,7 @@ describe TagsSubstitutionConcern, type: :model do
|
||||||
let(:template) { '--motivation-- --date de décision--' }
|
let(:template) { '--motivation-- --date de décision--' }
|
||||||
let(:state) { Dossier.states.fetch(:en_instruction) }
|
let(:state) { Dossier.states.fetch(:en_instruction) }
|
||||||
|
|
||||||
subject { template_concern.replace_tags(template, dossier) }
|
subject { template_concern.send(:replace_tags, template, dossier) }
|
||||||
|
|
||||||
it "does not treat motivation or date de décision as tags" do
|
it "does not treat motivation or date de décision as tags" do
|
||||||
is_expected.to eq('--motivation-- --date de décision--')
|
is_expected.to eq('--motivation-- --date de décision--')
|
||||||
|
|
|
@ -127,6 +127,8 @@ RSpec.configure do |config|
|
||||||
config.before(:each) do
|
config.before(:each) do
|
||||||
allow_any_instance_of(PieceJustificativeUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f997")
|
allow_any_instance_of(PieceJustificativeUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f997")
|
||||||
allow_any_instance_of(ProcedureLogoUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f998")
|
allow_any_instance_of(ProcedureLogoUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f998")
|
||||||
|
|
||||||
|
Flipflop::FeatureSet.current.test!.reset!
|
||||||
end
|
end
|
||||||
|
|
||||||
config.before(:all) {
|
config.before(:all) {
|
||||||
|
|
Loading…
Reference in a new issue