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
|
||||
- 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:
|
||||
|
|
|
@ -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
|
||||
|
|
37
Rakefile
37
Rakefile
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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 l’adresse 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] = "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)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -76,5 +76,5 @@ class Users::CarteController < UsersController
|
|||
multipolygone.to_json
|
||||
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
|
|
@ -848,4 +848,4 @@
|
|||
{
|
||||
"nom": "ZIMBABWE"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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|
|
||||
|
|
|
@ -1 +1 @@
|
|||
<%= "togglePathMessage(true, #{@mine})" %>
|
||||
<%= "togglePathMessage(true, #{@mine})" %>
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 d’adresse électronique pour votre
|
||||
Nous avons reçu une demande de changement d’adresse 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 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.
|
||||
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)
|
||||
|
||||
%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,
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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 } ) %>");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 } ) %>");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 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
|
||||
%br
|
||||
ce dossier
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 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
|
||||
|
||||
= f.button 'Enregistrer le brouillon',
|
||||
|
|
|
@ -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 />
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 d’adresse électronique"
|
||||
subject: "Changement d’adresse 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)"
|
||||
|
|
|
@ -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."
|
||||
|
||||
|
|
|
@ -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
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}"
|
||||
|
||||
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
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"
|
||||
},
|
||||
"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": {
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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) }
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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--')
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -114,4 +114,4 @@
|
|||
"type": "Feature"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,4 +6,4 @@
|
|||
"query": "Paris",
|
||||
"type": "FeatureCollection",
|
||||
"features": []
|
||||
}
|
||||
}
|
||||
|
|
|
@ -180,4 +180,4 @@
|
|||
}
|
||||
},
|
||||
"gateway_error": false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,4 +46,4 @@
|
|||
}
|
||||
},
|
||||
"gateway_error": false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,4 +29,4 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,4 +26,4 @@
|
|||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1214,4 +1214,4 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,4 +27,4 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,4 +27,4 @@
|
|||
"mise_a_jour": 1392295833
|
||||
},
|
||||
"date_extraction_donnees": 1427210585
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue