Merge branch 'dev'

This commit is contained in:
gregoirenovel 2018-09-20 17:21:37 +02:00
commit 5819cf71b5
54 changed files with 878 additions and 238 deletions

View file

@ -100,15 +100,15 @@ jobs:
- *bundle_install
- add_ssh_keys:
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:
command: |
if [ "${CIRCLE_BRANCH}" == "dev" ]; then
bundle exec rake deploy_ha
bundle exec rake deploy to=staging
fi
if [ "${CIRCLE_BRANCH}" == "master" ]; then
bundle exec rake deploy_ha to=production
bundle exec rake deploy to=production
fi
workflows:

View file

@ -9,3 +9,6 @@ charset = utf-8
indent_size = 2
indent_style = space
trim_trailing_whitespace = true
[*.{ico,keep,pdf,svg}]
insert_final_newline = false

View file

@ -4,40 +4,3 @@
require File.expand_path('config/application', __dir__)
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

View file

@ -193,7 +193,7 @@
// CAUTION: IE hackery ahead
&::-ms-expand {
display: none; // remove default arrow in IE 10 and 11 */
}
}
// target Internet Explorer 9 to undo the custom arrow */
@media screen and (min-width:0\0) {

View file

@ -1,6 +1,7 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
/*
http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
@ -12,37 +13,37 @@ b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
display: block;
}
body {
line-height: 1;
line-height: 1;
}
ol, ul {
list-style: none;
list-style: none;
}
blockquote, q {
quotes: none;
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
border-collapse: collapse;
border-spacing: 0;
}

View file

@ -90,8 +90,6 @@ class ApplicationController < ActionController::Base
logged_users.first
end
helper_method :logged_user
def logged_user_roles
roles = logged_users.map { |logged_user| logged_user.class.name }
roles.any? ? roles.join(', ') : 'Guest'

View file

@ -3,14 +3,14 @@ module Manager
def resend_confirmation_instructions
user = User.find(params[:id])
user.resend_confirmation_instructions
flash[:notice] = "Le message de confirmation de ladresse email a été renvoyé."
flash[:notice] = "L'email d'activation de votre compte a été renvoyé."
redirect_to manager_user_path(user)
end
def confirm
user = User.find(params[:id])
user.confirm
flash[:notice] = "Ladresse email de lutilisateur a été marquée comme confirmée."
flash[:notice] = "Ladresse email de lutilisateur a été marquée comme activée."
redirect_to manager_user_path(user)
end
end

View file

@ -76,5 +76,5 @@ class Users::CarteController < UsersController
multipolygone.to_json
end
end
end
end
end

View 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

View file

@ -848,4 +848,4 @@
{
"nom": "ZIMBABWE"
}
]
]

View file

@ -8,7 +8,7 @@ class AdministrateurMailer < ApplicationMailer
@subject = "N'oubliez pas d'activer votre compte administrateur"
mail(to: administrateur.email,
subject: @subject,
reply_to: CONTACT_EMAIL)
subject: @subject,
reply_to: CONTACT_EMAIL)
end
end

View file

@ -7,7 +7,7 @@ class AdministrationMailer < ApplicationMailer
subject = "Création d'un compte admininistrateur"
mail(to: TECH_EMAIL,
subject: subject)
subject: subject)
end
def invite_admin(admin, reset_password_token, administration_id)
@ -17,16 +17,16 @@ class AdministrationMailer < ApplicationMailer
subject = "Activez votre compte administrateur"
mail(to: admin.email,
subject: subject,
reply_to: CONTACT_EMAIL)
subject: subject,
reply_to: CONTACT_EMAIL)
end
def refuse_admin(admin_email)
subject = "Votre demande de compte a été refusée"
mail(to: admin_email,
subject: subject,
reply_to: CONTACT_EMAIL)
subject: subject,
reply_to: CONTACT_EMAIL)
end
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"
mail(to: EQUIPE_EMAIL,
subject: subject)
subject: subject)
end
end

View file

@ -7,8 +7,8 @@ class GestionnaireMailer < ApplicationMailer
subject = "Activez votre compte instructeur"
mail(to: gestionnaire.email,
subject: subject,
reply_to: CONTACT_EMAIL)
subject: subject,
reply_to: CONTACT_EMAIL)
end
def user_to_gestionnaire(email)

View file

@ -20,7 +20,7 @@ class InviteMailer < ApplicationMailer
email = invite.email
mail(to: email,
subject: subject,
reply_to: reply_to)
subject: subject,
reply_to: reply_to)
end
end

View file

@ -26,8 +26,8 @@ class PreactivateUsersMailer < ApplicationMailer
END_OF_MAIL
mail(to: model.email,
subject: subject,
reply_to: CONTACT_EMAIL,
body: body)
subject: subject,
reply_to: CONTACT_EMAIL,
body: body)
end
end

View file

@ -193,7 +193,7 @@ module TagsSubstitutionConcern
tags_and_datas
.map { |(tags, data)| [filter_tags(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)
types_de_champ.inject(text) do |acc, tag|

View file

@ -1 +1 @@
<%= "togglePathMessage(true, #{@mine})" %>
<%= "togglePathMessage(true, #{@mine})" %>

View file

@ -46,11 +46,7 @@
Combien de démarches souhaitez-vous dématerialiser ?
%span.mandatory *
= select_tag :nb_of_procedures,
options_for_select({ '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 }),
options_for_select(nb_of_procedures_options),
prompt: 'choisir un intervalle',
required: true
@ -58,11 +54,7 @@
À quelle échance voudriez-vous dématerialiser ?
%span.mandatory *
= select_tag :deadline,
options_for_select({ '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 }),
options_for_select(deadline_options),
prompt: 'choisir une échéance',
required: true

View file

@ -1,4 +1,4 @@
- content_for(:title, 'Votre nouvelle adresse électronique')
- content_for(:title, 'Votre nouvelle adresse email')
%p
Bonjour,
@ -6,13 +6,13 @@
- unconfirmed_email = @resource.try(:unconfirmed_email?)
- if unconfirmed_email.present?
%p
Nous avons reçu une demande de changement dadresse électronique pour votre
Nous avons reçu une demande de changement dadresse email pour votre
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}.
- else
%p
Le changement dadresse électronique de votre compte #{@email} sur
Le changement dadresse email de votre compte #{@email} sur
demarches-simplifiees.fr a bien été pris en compte.
Vous pouvez désormais vous connecter avec ladresse #{@resource.email}.

View file

@ -7,7 +7,7 @@
= link_to edit_password_url(@resource, reset_password_token: @token), edit_password_url(@resource, reset_password_token: @token)
%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
Bonne journée,

View file

@ -3,9 +3,9 @@
- if @facade.dossier.types_de_piece_justificative.size > 0
.col-lg-4.col-md-4.col-sm-4.col-xs-4.action
%a#maj_pj.action{ "data-target" => "#upload-pj-modal",
"data-toggle" => "modal",
:type => "button",
style: 'margin-bottom: 15px; margin-top: -30px;' }
"data-toggle" => "modal",
:type => "button",
style: 'margin-bottom: 15px; margin-top: -30px;' }
Modifier les documents
%br
= render partial: 'users/recapitulatif/modal_upload_pj'

View file

@ -9,4 +9,4 @@ error_form_siret('<%= invalid_siret %>');
function render_new_siret(){
$('.row.etape.etape-2').html("<%= escape_javascript(render partial: '/dossiers/etapes/etape_2/entreprise', locals: { facade: @facade } ) %>");
}
}

View file

@ -10,4 +10,4 @@ error_form_siret('<%= invalid_siret %>');
function render_new_siret(){
$('.row.etape.etape-2').html("<%= escape_javascript(render partial: '/dossiers/etapes/etape2', locals: { facade: @facade } ) %>");
}
}

View file

@ -16,7 +16,7 @@
- if current_user.owns?(@facade.dossier) && !@facade.dossier.instruction_commencee?
.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 quil contient. Nous vous rappelons que toute suppression entraine lannulation 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 quil contient. Nous vous rappelons que toute suppression entraine lannulation de la démarche en cours.\n\n Confirmer la suppression ?" } do
Supprimer définitivement
%br
ce dossier

View file

@ -31,7 +31,7 @@
%p.explication Ces informations seront visibles par les utilisateurs du formulaire.
= f.label :email do
Courriel
Adresse email
%span.mandatory *
= f.email_field :email, placeholder: 'contact@mon-service.fr', required: true

View file

@ -1,5 +1,7 @@
- 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?
%p.text-warning
Ce dossier est inconnu

View file

@ -71,7 +71,7 @@
= link_to ask_deletion_dossier_path(dossier),
method: :post,
class: 'button danger',
data: { disable: true, confirm: 'En continuant, vous allez supprimer ce dossier ainsi que les informations quil contient. Toute suppression entraine lannulation 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 quil contient. Toute suppression entraine lannulation de la démarche en cours.\n\nConfirmer la suppression ?" } do
Supprimer le brouillon
= f.button 'Enregistrer le brouillon',

View file

@ -3,4 +3,4 @@
<% end -%>
<br>
<%= link_to "Mot de passe oublié ?", new_password_path(resource_name) %><br />
<%= link_to "Mot de passe oublié ?", new_password_path(resource_name) %><br />

View file

@ -1,46 +1,32 @@
require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rbenv' # for rbenv support. (http://rbenv.org)
# require 'mina/rvm' # for rvm support. (http://rvm.io)
require 'mina/rbenv'
# Basic settings:
# domain - The hostname to SSH to.
# deploy_to - Path to deploy into.
# repository - Git repo to clone from. (needed by mina/git)
# branch - Branch name to deploy. (needed by mina/git)
# domain - The hostname to SSH to.
# deploy_to - Path to deploy into.
# repository - Git repo to clone from. (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"
raise "Bad to=#{+ENV['to']}" if !["staging", "production"].include?(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 :repository, 'https://github.com/betagouv/tps.git'
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'
# For system-wide RVM install.
# set :rvm_path, '/usr/local/rvm/bin/rvm'
set :rbenv_path, "/usr/local/rbenv/bin/rbenv"
set :forward_agent, true
# 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.
@ -56,12 +42,20 @@ set :shared_paths, [
'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:
# set :user, 'foobar' # Username in the server to SSH to.
# set :port, '30000' # SSH port number.
set :forward_agent, true # SSH forward_agent.
print "Deploy to #{ENV['to']} environment branch #{branch}\n"
# This task is the environment that is loaded for most commands, such as
# `mina deploy` or `mina rake`.
@ -144,9 +138,3 @@ task :deploy => :environment do
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

View file

@ -3,37 +3,37 @@
fr:
devise:
confirmations:
confirmed: "Votre compte a été validé."
send_instructions: 'Vous allez recevoir un courriel avec les instructions nécessaires à la confirmation 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."
confirmed: "Votre compte a été activé."
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 email existe dans notre base de données, vous allez bientôt recevoir un email contenant les instructions d'activation de votre compte."
failure:
already_authenticated: "Vous êtes déjà connecté"
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é."
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."
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:
confirmation_instructions:
subject: "Instructions de confirmation"
subject: "Instructions d'activation de votre compte"
reset_password_instructions:
subject: "Instructions pour changer le mot de passe"
unlock_instructions:
subject: "Instructions pour déverrouiller le compte"
email_changed:
subject: "Changement dadresse électronique"
subject: "Changement dadresse email"
password_change:
subject: "Votre mot de passe a été modifié avec succés."
omniauth_callbacks:
failure: "Nous n'avons pas pu vous authentifier via %{kind} : '%{reason}'."
success: "Authentifié avec succès via %{kind}."
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_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_not_active: "Votre mot de passe a été changé avec succès."
registrations:
@ -41,8 +41,8 @@ fr:
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_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."
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."
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 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."
sessions:
signed_in: "Connecté."
@ -50,12 +50,12 @@ fr:
already_signed_out: "Déconnecté."
unlocks:
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é."
errors:
messages:
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"
not_found: "n'a pas été trouvé(e)"
not_locked: "n'était pas verrouillé(e)"

View file

@ -158,7 +158,7 @@ fr:
invalid_siret: "Le siret est incorrect"
procedure_not_found: "La démarche n'existe pas"
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."
procedure_archived: "Cette démarche en ligne a été fermée, il n'est plus possible de déposer de dossier."

View file

@ -36,7 +36,7 @@ module Cellar
canonicalized_amz_headers = ""
canonicalized_resource = "/#{@bucket}/#{key}"
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
end
end

6
lib/tasks/deploy.rake Normal file
View 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

View file

@ -12,7 +12,7 @@ namespace :dev do
local_file = "/tmp/#{filename}"
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
dev_env_param = "RAILS_ENV=development"

8
lib/tasks/lint.rake Normal file
View 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

View file

@ -15,6 +15,7 @@
"turbolinks": "^5.1.1"
},
"devDependencies": {
"eclint": "^2.8.0",
"eslint": "^5.2.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.6.2",
@ -22,6 +23,7 @@
"webpack-dev-server": "^3.1.4"
},
"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"
},
"engines": {

View file

@ -691,9 +691,9 @@ describe Admin::ProceduresController, type: :controller do
let(:procedure) { create :procedure, :published, administrateur: admin }
before do
subject
procedure.reload
end
subject
procedure.reload
end
it { expect(procedure.hidden_at).not_to be_nil }
it { expect(procedure.procedure_path).to be_nil }

View file

@ -585,10 +585,6 @@ describe NewUser::DossiersController, type: :controller do
sign_in(user)
end
after do
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, false)
end
subject! { get(:show, params: { id: dossier.id }) }
context 'when the dossier is a brouillon' do
@ -620,10 +616,6 @@ describe NewUser::DossiersController, type: :controller do
sign_in(user)
end
after do
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, false)
end
subject! { get(:demande, params: { id: dossier.id }) }
it { expect(assigns(:dossier)).to eq(dossier) }

View file

@ -10,10 +10,6 @@ describe 'Dossier details:' do
Flipflop::FeatureSet.current.test!.switch!(:new_dossier_details, true)
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
visit_dossier dossier

View file

@ -38,7 +38,7 @@ feature 'Invitations' do
fill_in 'user_password', with: user_password
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
user = User.find_by(email: invite.email)

View file

@ -55,7 +55,7 @@ describe CARTO::SGMAP::API do
before do
stub_request(:post, "https://apicarto.sgmap.fr/cadastre/geometrie")
.with(:body => /.*/,
:headers => { 'Content-Type' => 'application/json' })
:headers => { 'Content-Type' => 'application/json' })
.to_return(status: status, body: body)
end
context 'when geojson is empty' do

View file

@ -2,21 +2,21 @@ describe EmailSanitizableConcern, type: :model do
describe 'sanitize_email' do
let(:email_concern) do
(Class.new do
include EmailSanitizableConcern
attr_accessor :email
include EmailSanitizableConcern
attr_accessor :email
def initialize(email)
self.email = email
end
def initialize(email)
self.email = email
end
def [](key)
self.send(key)
end
def [](key)
self.send(key)
end
def []=(key, value)
self.send("#{key}=", value)
end
end).new(email)
def []=(key, value)
self.send("#{key}=", value)
end
end).new(email)
end
before do

View file

@ -14,18 +14,17 @@ describe TagsSubstitutionConcern, type: :model do
let(:template_concern) do
(Class.new do
include TagsSubstitutionConcern
public :replace_tags
include TagsSubstitutionConcern
def initialize(p, s)
@procedure = p
self.class.const_set(:DOSSIER_STATE, s)
end
def initialize(p, s)
@procedure = p
self.class.const_set(:DOSSIER_STATE, s)
end
def procedure
@procedure
end
end).new(procedure, state)
def procedure
@procedure
end
end).new(procedure, state)
end
describe 'replace_tags' do
@ -35,7 +34,7 @@ describe TagsSubstitutionConcern, type: :model do
before { Timecop.freeze(Time.now) }
subject { template_concern.replace_tags(template, dossier) }
subject { template_concern.send(:replace_tags, template, dossier) }
after { Timecop.return }
@ -253,7 +252,7 @@ describe TagsSubstitutionConcern, type: :model do
let(:template) { '--motivation-- --date de décision--' }
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
is_expected.to eq('--motivation-- --date de décision--')

View file

@ -127,6 +127,8 @@ RSpec.configure do |config|
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(ProcedureLogoUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f998")
Flipflop::FeatureSet.current.test!.reset!
end
config.before(:all) {

View file

@ -114,4 +114,4 @@
"type": "Feature"
}
]
}
}

View file

@ -6,4 +6,4 @@
"query": "Paris",
"type": "FeatureCollection",
"features": []
}
}

View file

@ -180,4 +180,4 @@
}
},
"gateway_error": false
}
}

View file

@ -46,4 +46,4 @@
}
},
"gateway_error": false
}
}

View file

@ -29,4 +29,4 @@
]
}
}
}
}

View file

@ -26,4 +26,4 @@
]
]
}
}
}

View file

@ -1214,4 +1214,4 @@
}
}
]
}
}

View file

@ -27,4 +27,4 @@
}
}
]
}
}

View file

@ -27,4 +27,4 @@
"mise_a_jour": 1392295833
},
"date_extraction_donnees": 1427210585
}
}

707
yarn.lock

File diff suppressed because it is too large Load diff