Merge branch 'dev'
This commit is contained in:
commit
b652e93e2e
28 changed files with 236 additions and 119 deletions
39
README.md
39
README.md
|
@ -45,11 +45,11 @@ Les informations nécessaire à l'initialisation de la base doivent être pré-c
|
|||
|
||||
Afin de générer la BDD de l'application, il est nécessaire d'exécuter les commandes suivantes :
|
||||
|
||||
# Create and load the schema for both databases
|
||||
bin/rails db:create db:schema:load
|
||||
# Create and initialize the database
|
||||
bin/rails db:create db:schema:load db:seed
|
||||
|
||||
# Migrate the development database and the test database
|
||||
rails db:migrate
|
||||
bin/rails db:migrate
|
||||
|
||||
## Bouchonnage de l’authentification
|
||||
|
||||
|
@ -81,21 +81,12 @@ Dans le fichier `config/intializers/token.rb`, ajouter
|
|||
|
||||
*Note : les valeurs pour ces paramètres sont renseignées dans le Keepass*
|
||||
|
||||
## Création des comptes initiaux
|
||||
|
||||
rails c
|
||||
> email = "<votre email>"
|
||||
> password = "<votre mot de passe>"
|
||||
> Administration.create(email: email, password: password)
|
||||
> Administrateur.create(email: email, password: password)
|
||||
> Gestionnaire.create(email: email, password: password)
|
||||
> User.create(email: email, password: password)
|
||||
|
||||
|
||||
## Lancement de l'application
|
||||
|
||||
overmind s
|
||||
|
||||
Un utilisateur de test est disponible, avec les identifiants `test@exemple.fr`/`testpassword`.
|
||||
|
||||
## Programmation des jobs
|
||||
|
||||
AutoArchiveProcedureJob.set(cron: "* * * * *").perform_later
|
||||
|
@ -110,18 +101,18 @@ Pour exécuter les tests de l'application, plusieurs possibilités :
|
|||
|
||||
- Lancer tous les tests
|
||||
|
||||
rake spec
|
||||
rspec
|
||||
bin/rake spec
|
||||
bin/rspec
|
||||
|
||||
- Lancer un test en particulier
|
||||
|
||||
rake spec SPEC=file_path/file_name_spec.rb:line_number
|
||||
rspec file_path/file_name_spec.rb:line_number
|
||||
bin/rake spec SPEC=file_path/file_name_spec.rb:line_number
|
||||
bin/rspec file_path/file_name_spec.rb:line_number
|
||||
|
||||
- Lancer tous les tests d'un fichier
|
||||
|
||||
rake spec SPEC=file_path/file_name_spec.rb
|
||||
rspec file_path/file_name_spec.rb
|
||||
bin/rake spec SPEC=file_path/file_name_spec.rb
|
||||
bin/rspec file_path/file_name_spec.rb
|
||||
|
||||
## Debug
|
||||
|
||||
|
@ -145,18 +136,18 @@ Une fois `overmind` lancé, et un breakpoint `byebug` inséré dans le code, il
|
|||
## Régénérer les binstubs
|
||||
|
||||
bundle binstub railties --force
|
||||
rake rails:update:bin
|
||||
bin/rake rails:update:bin
|
||||
|
||||
## Tâches Super Admin
|
||||
|
||||
- ajouter un compte super admin :
|
||||
`bundle exec rake admin:create_admin[email-du-compte-github@exemple.com]`
|
||||
`bin/rake admin:create_admin[email-du-compte-github@exemple.com]`
|
||||
|
||||
- lister les comptes super admin :
|
||||
`bundle exec rake admin:list`
|
||||
`bin/rake admin:list`
|
||||
|
||||
- supprimer un compte super admin :
|
||||
`bundle exec rake admin:delete_admin[email-du-compte-github@exemple.com]`
|
||||
`bin/rake admin:delete_admin[email-du-compte-github@exemple.com]`
|
||||
|
||||
## Compatibilité navigateurs
|
||||
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
module Manager
|
||||
class GestionnairesController < Manager::ApplicationController
|
||||
def reinvite
|
||||
gestionnaire = Gestionnaire.find(params[:id])
|
||||
gestionnaire.invite!
|
||||
flash[:notice] = "Gestionnaire réinvité."
|
||||
redirect_to manager_gestionnaire_path(gestionnaire)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
class DeviseUserMailer < Devise::Mailer
|
||||
helper :application # gives access to all helpers defined within `application_helper`.
|
||||
include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`
|
||||
default template_path: 'devise_mailer' # to make sure that your mailer uses the devise views
|
||||
layout 'mailers/layout'
|
||||
|
||||
def template_paths
|
||||
['devise_mailer']
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,12 +5,13 @@
|
|||
#procedure_show
|
||||
- if procedure.brouillon?
|
||||
- if procedure.gestionnaires.empty? || procedure.service.nil?
|
||||
- message = ''
|
||||
- missing_elements = []
|
||||
- if procedure.gestionnaires.empty?
|
||||
- message += 'Affectez des accompagnateurs à votre procédure.'
|
||||
- missing_elements << 'des accompagnateurs'
|
||||
- if procedure.service.nil?
|
||||
- message += 'Affectez un service à votre procédure.'
|
||||
%a.action_button.btn.btn-success#publish-procedure{ style: 'float: right; margin-top: 10px;', disabled: 'disabled', 'data-toggle' => :tooltip, title: message }
|
||||
- missing_elements << 'un service'
|
||||
- message = "Affectez #{missing_elements.join(' et ')} à votre procédure."
|
||||
%a.action_button.btn.btn-success#publish-procedure{ style: 'float: right; margin-top: 10px;', disabled: 'disabled', 'data-toggle' => :tooltip, 'data-placement' => :bottom, title: message }
|
||||
%i.fa.fa-eraser
|
||||
Publier
|
||||
- else
|
||||
|
|
23
app/views/devise_mailer/email_changed.html.haml
Normal file
23
app/views/devise_mailer/email_changed.html.haml
Normal file
|
@ -0,0 +1,23 @@
|
|||
- content_for(:title, 'Votre nouvelle adresse électronique')
|
||||
|
||||
%p
|
||||
Bonjour,
|
||||
|
||||
- unconfirmed_email = @resource.try(:unconfirmed_email?)
|
||||
- if unconfirmed_email.present?
|
||||
%p
|
||||
Nous avons reçu une demande de changement d’adresse électronique pour votre
|
||||
compte #{@email} sur demarches-simplifiees.fr.
|
||||
Une fois la demande prise en compte, la nouvelle adresse électronique de
|
||||
votre compte sera #{unconfirmed_email}.
|
||||
- else
|
||||
%p
|
||||
Le changement d’adresse électronique 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}.
|
||||
|
||||
%p
|
||||
Bonne journée,
|
||||
|
||||
%p
|
||||
L'équipe demarches-simplifiees.fr
|
14
app/views/devise_mailer/password_change.html.haml
Normal file
14
app/views/devise_mailer/password_change.html.haml
Normal file
|
@ -0,0 +1,14 @@
|
|||
- content_for(:title, 'Votre nouveau mot de passe')
|
||||
|
||||
%p
|
||||
Bonjour,
|
||||
|
||||
%p
|
||||
La demande de changement de mot de passe pour votre compte #{@resource.email} sur
|
||||
demarches-simplifiees.fr a bien été prise en compte.
|
||||
|
||||
%p
|
||||
Bonne journée,
|
||||
|
||||
%p
|
||||
L'équipe demarches-simplifiees.fr
|
|
@ -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 mail. Votre mot de passe ne sera pas changé.
|
||||
Si vous n'avez pas effectué une telle demande, merci d'ignorer ce courriel. Votre mot de passe ne sera pas changé.
|
||||
|
||||
%p
|
||||
Bonne journée,
|
||||
|
|
20
app/views/devise_mailer/unlock_instructions.html.haml
Normal file
20
app/views/devise_mailer/unlock_instructions.html.haml
Normal file
|
@ -0,0 +1,20 @@
|
|||
- content_for(:title, 'Réactivez votre compte')
|
||||
|
||||
%p
|
||||
Bonjour,
|
||||
|
||||
%p
|
||||
Quelqu’un a tenté de se connecter un grand nombre de fois sans succès à votre
|
||||
compte #{@resource.email} sur demarches-simplifiees.fr. Par mesure de précaution,
|
||||
nous avons temporairement désactivé l’accès à votre compte.
|
||||
|
||||
%p
|
||||
Pour rétablir l’accès à votre compte, veuillez utiliser le lien ci-dessous.
|
||||
|
||||
%p= link_to 'Déverrouiller mon compte', unlock_url(@resource, unlock_token: @token)
|
||||
|
||||
%p
|
||||
Bonne journée,
|
||||
|
||||
%p
|
||||
L'équipe demarches-simplifiees.fr
|
54
app/views/manager/gestionnaires/show.html.erb
Normal file
54
app/views/manager/gestionnaires/show.html.erb
Normal file
|
@ -0,0 +1,54 @@
|
|||
<%#
|
||||
# Show
|
||||
|
||||
This view is the template for the show page.
|
||||
It renders the attributes of a resource,
|
||||
as well as a link to its edit page.
|
||||
|
||||
## Local variables:
|
||||
|
||||
- `page`:
|
||||
An instance of [Administrate::Page::Show][1].
|
||||
Contains methods for accessing the resource to be displayed on the page,
|
||||
as well as helpers for describing how each attribute of the resource
|
||||
should be displayed.
|
||||
|
||||
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Show
|
||||
%>
|
||||
|
||||
<% content_for(:title) { t("administrate.actions.show_resource", name: page.page_title) } %>
|
||||
<% gestionnaire = page.resource %>
|
||||
|
||||
<header class="main-content__header" role="banner">
|
||||
<h1 class="main-content__page-title">
|
||||
<%= content_for(:title) %>
|
||||
</h1>
|
||||
|
||||
<div>
|
||||
<%= link_to(
|
||||
t("administrate.actions.edit_resource", name: page.page_title),
|
||||
[:edit, namespace, page.resource],
|
||||
class: "button",
|
||||
) if valid_action?(:edit) && show_action?(:edit, page.resource) %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= link_to 'Réinviter', reinvite_manager_gestionnaire_path(gestionnaire), method: :post, class: 'button' %>
|
||||
<div>
|
||||
</header>
|
||||
|
||||
<section class="main-content__body">
|
||||
<dl>
|
||||
<% page.attributes.each do |attribute| %>
|
||||
<dt class="attribute-label" id="<%= attribute.name %>">
|
||||
<%= t(
|
||||
"helpers.label.#{resource_name}.#{attribute.name}",
|
||||
default: attribute.name.titleize,
|
||||
) %>
|
||||
</dt>
|
||||
|
||||
<dd class="attribute-data attribute-data--<%=attribute.html_class%>"
|
||||
><%= render_field attribute %></dd>
|
||||
<% end %>
|
||||
</dl>
|
||||
</section>
|
|
@ -140,9 +140,8 @@ task :deploy => :environment do
|
|||
queue "/etc/init.d/#{user} upgrade "
|
||||
queue! %[sudo service delayed_job_#{user!} start]
|
||||
|
||||
queue "cd #{deploy_to}/#{current_path}/"
|
||||
queue "bundle exec rake db:seed RAILS_ENV=#{rails_env}"
|
||||
queue %[echo "-----> Rake Seeding Completed."]
|
||||
# If you are deploying a review app on a fresh testing environment,
|
||||
# now can be a good time to seed the database.
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,15 +4,15 @@ fr:
|
|||
devise:
|
||||
confirmations:
|
||||
confirmed: "Votre compte a été validé."
|
||||
send_instructions: "Vous allez recevoir les instructions nécessaires à la confirmation de votre compte dans quelques minutes."
|
||||
send_paranoid_instructions: "Si votre e-mail existe dans notre base de données, vous allez bientôt recevoir un e-mail contenant les instructions de confirmation de votre compte."
|
||||
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."
|
||||
failure:
|
||||
already_authenticated: "Vous êtes déjà connecté"
|
||||
inactive: "Votre compte n'est pas encore activé."
|
||||
invalid: "Email ou mot de passe incorrect."
|
||||
invalid: "Adresse électronique 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: "Email ou mot de passe invalide."
|
||||
not_found_in_database: "Adresse électronique 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."
|
||||
|
@ -23,15 +23,17 @@ fr:
|
|||
subject: "Instructions pour changer le mot de passe"
|
||||
unlock_instructions:
|
||||
subject: "Instructions pour déverrouiller le compte"
|
||||
email_changed:
|
||||
subject: "Changement d’adresse électronique"
|
||||
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 e-mail de réinitialisation de mot de passe. Si vous êtes passé par un e-mail de ce type, assurez-vous d'utiliser l'URL complète."
|
||||
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."
|
||||
send_instructions: "Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants"
|
||||
send_paranoid_instructions: "Si votre e-mail existe dans notre base de données, vous allez recevoir un lien de réinitialisation par e-mail"
|
||||
send_paranoid_instructions: "Si votre adresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel"
|
||||
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:
|
||||
|
@ -39,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 email. 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 emails et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse."
|
||||
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."
|
||||
updated: "Votre compte a été modifié avec succès."
|
||||
sessions:
|
||||
signed_in: "Connecté."
|
||||
|
@ -48,7 +50,7 @@ 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 email contenant les instructions pour le déverrouiller."
|
||||
send_paranoid_instructions: "Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller."
|
||||
unlocked: "Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté."
|
||||
errors:
|
||||
messages:
|
||||
|
|
|
@ -89,6 +89,10 @@ fr:
|
|||
messages:
|
||||
blank: "doit être rempli"
|
||||
not_a_number: 'doit être un nombre'
|
||||
greater_than: "doit être supérieur à %{count}"
|
||||
greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
|
||||
less_than: "doit être inférieur à %{count}"
|
||||
less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
|
||||
models:
|
||||
attestation_template:
|
||||
attributes:
|
||||
|
@ -125,54 +129,6 @@ fr:
|
|||
password:
|
||||
too_short: ': Le mot de passe est trop court'
|
||||
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: 'Votre compte a été confirmé avec succès.'
|
||||
send_instructions: 'Vous allez recevoir un e-mail avec les instructions nécessaires à la confirmation de votre compte dans quelques minutes.'
|
||||
send_paranoid_instructions: 'Si votre e-mail existe dans notre base de données, vous allez bientôt recevoir un e-mail contenant les instructions de confirmation de votre compte.'
|
||||
failure:
|
||||
already_authenticated: "Vous êtes déjà connecté"
|
||||
inactive: "Votre compte n'est pas encore activé."
|
||||
invalid: "%{authentication_keys} ou mot de passe incorrect."
|
||||
locked: "Votre compte est verrouillé."
|
||||
last_attempt: "Vous avez droit à une tentative avant que votre compte ne soit verrouillé."
|
||||
locked: "Votre compte est verrouillé."
|
||||
not_found_in_database: "%{authentication_keys} ou mot de passe incorrect."
|
||||
timeout: "Votre session est expirée. Veuillez vous reconnecter pour continuer."
|
||||
unauthenticated: "Vous devez vous connecter ou vous inscrire pour continuer."
|
||||
unconfirmed: "Vous devez confirmer votre compte pour continuer."
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Instructions de confirmation"
|
||||
reset_password_instructions:
|
||||
subject: "Instructions pour changer le mot de passe"
|
||||
unlock_instructions:
|
||||
subject: "Instructions pour déverrouiller le compte"
|
||||
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 e-mail de réinitialisation de mot de passe. Si vous êtes passé par un e-mail 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 e-mail existe dans notre base de données, vous allez recevoir un lien de réinitialisation par e-mail"
|
||||
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:
|
||||
destroyed: 'Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.'
|
||||
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 email. Ouvrez ce lien pour confirmer 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 emails et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse."
|
||||
updated: 'Votre compte a été modifié avec succès.'
|
||||
sessions:
|
||||
signed_in: "Connecté avec succès."
|
||||
signed_out: "Déconnecté avec succès."
|
||||
already_signed_out: "Déconnecté avec succès."
|
||||
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 email contenant les instructions pour le déverrouiller.'
|
||||
unlocked: 'Votre compte a été déverrouillé avec succès, veuillez vous connecter pour continuer.'
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: "a déjà été validé(e), veuillez essayer de vous connecter"
|
||||
|
|
|
@ -12,7 +12,10 @@ Rails.application.routes.draw do
|
|||
end
|
||||
|
||||
resources :users, only: [:index, :show]
|
||||
resources :gestionnaires, only: [:index, :show]
|
||||
resources :gestionnaires, only: [:index, :show] do
|
||||
post 'reinvite', on: :member
|
||||
end
|
||||
|
||||
resources :dossiers, only: [:show]
|
||||
|
||||
resources :demandes, only: [:index]
|
||||
|
|
14
db/seeds.rb
14
db/seeds.rb
|
@ -1,7 +1,15 @@
|
|||
# This file should contain all the record creation needed to seed the database with its default values.
|
||||
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
|
||||
|
||||
#
|
||||
# Examples:
|
||||
# Create an initial user who can use all roles
|
||||
#
|
||||
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
|
||||
# Mayor.create(name: 'Emanuel', city: cities.first)
|
||||
|
||||
default_user = "test@exemple.fr"
|
||||
default_password = "testpassword"
|
||||
|
||||
puts "Create test user '#{default_user}'"
|
||||
Administration.create!(email: default_user, password: default_password)
|
||||
Administrateur.create!(email: default_user, password: default_password)
|
||||
Gestionnaire.create!(email: default_user, password: default_password)
|
||||
User.create!(email: default_user, password: default_password, confirmed_at: DateTime.now)
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2017_07_26_clean_birthdate_on_individual' do
|
||||
task clean: :environment do
|
||||
# remove duplicates
|
||||
|
@ -10,13 +12,13 @@ namespace :'2017_07_26_clean_birthdate_on_individual' do
|
|||
individuals_with_date = Individual.where.not(birthdate: nil)
|
||||
# Match 31/12/2017 => 2017-12-31
|
||||
individuals_with_date.select { |i| /^\d{2}\/\d{2}\/\d{4}$/.match(i.birthdate) }.each do |i|
|
||||
puts "cleaning #{i.birthdate}"
|
||||
rake_puts "cleaning #{i.birthdate}"
|
||||
i.update(birthdate: Date.parse(i.birthdate).iso8601) rescue nil
|
||||
end
|
||||
|
||||
# Match 31/12/17 => 2017-12-31
|
||||
individuals_with_date.select { |i| /^\d{2}\/\d{2}\/\d{2}$/.match(i.birthdate) }.each do |i|
|
||||
puts "cleaning #{i.birthdate}"
|
||||
rake_puts "cleaning #{i.birthdate}"
|
||||
new_date = Date.strptime(i.birthdate, "%d/%m/%y")
|
||||
if new_date.year > 2017
|
||||
new_date = new_date - 100.years
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2017_10_18_regenerate_attestation' do
|
||||
task set: :environment do
|
||||
include ActiveSupport::Testing::TimeHelpers
|
||||
|
@ -15,7 +17,7 @@ namespace :'2017_10_18_regenerate_attestation' do
|
|||
dossier = attestation.dossier
|
||||
procedure = dossier.procedure
|
||||
|
||||
puts "processing dossier #{dossier.id}"
|
||||
rake_puts "processing dossier #{dossier.id}"
|
||||
|
||||
travel_to(dossier.processed_at) do
|
||||
new_attestation = procedure.attestation_template.attestation_for(dossier)
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2017_10_30_copy_commentaire_piece_justificative_to_file' do
|
||||
task set: :environment do
|
||||
commentaires_to_process = Commentaire.where(file: nil).where.not(piece_justificative_id: nil).reorder(id: :desc)
|
||||
|
||||
puts "#{commentaires_to_process.count} commentaires to process..."
|
||||
rake_puts "#{commentaires_to_process.count} commentaires to process..."
|
||||
|
||||
commentaires_to_process.each do |c|
|
||||
process_commentaire(c)
|
||||
|
@ -12,7 +14,7 @@ namespace :'2017_10_30_copy_commentaire_piece_justificative_to_file' do
|
|||
task fix: :environment do
|
||||
commentaires_to_fix = Commentaire.where.not(file: nil).where.not(piece_justificative_id: nil).reorder(id: :desc)
|
||||
|
||||
puts "#{commentaires_to_fix.count} commentaires to fix..."
|
||||
rake_puts "#{commentaires_to_fix.count} commentaires to fix..."
|
||||
|
||||
commentaires_to_fix.each do |c|
|
||||
process_commentaire(c)
|
||||
|
@ -27,7 +29,7 @@ namespace :'2017_10_30_copy_commentaire_piece_justificative_to_file' do
|
|||
end
|
||||
|
||||
def process_commentaire(commentaire)
|
||||
puts "Processing commentaire #{commentaire.id}"
|
||||
rake_puts "Processing commentaire #{commentaire.id}"
|
||||
if commentaire.piece_justificative.present?
|
||||
# https://github.com/carrierwaveuploader/carrierwave#uploading-files-from-a-remote-location
|
||||
commentaire.remote_file_url = commentaire.piece_justificative.content_url
|
||||
|
@ -42,7 +44,7 @@ namespace :'2017_10_30_copy_commentaire_piece_justificative_to_file' do
|
|||
|
||||
commentaire.save
|
||||
if commentaire.file.blank?
|
||||
puts "Failed to save file for commentaire #{commentaire.id}"
|
||||
rake_puts "Failed to save file for commentaire #{commentaire.id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2017_12_05_initialize_timestamps_for_entreprises' do
|
||||
task set: :environment do
|
||||
entreprises = Entreprise.where(created_at: nil).includes(:dossier)
|
||||
|
||||
puts "#{entreprises.count} to initialize..."
|
||||
rake_puts "#{entreprises.count} to initialize..."
|
||||
|
||||
entreprises.each { |e| initialize_entreprise(e) }
|
||||
end
|
||||
|
||||
def initialize_entreprise(entreprise)
|
||||
puts "initializing entreprise #{entreprise.id}"
|
||||
rake_puts "initializing entreprise #{entreprise.id}"
|
||||
if entreprise.dossier.present?
|
||||
entreprise.update_columns(created_at: entreprise.dossier.created_at, updated_at: entreprise.dossier.created_at)
|
||||
else
|
||||
puts "dossier #{entreprise.dossier_id} is missing for entreprise #{entreprise.id}"
|
||||
rake_puts "dossier #{entreprise.dossier_id} is missing for entreprise #{entreprise.id}"
|
||||
entreprise.update_columns(created_at: DateTime.now, updated_at: DateTime.now)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2017_12_20_delete_old_administration' do
|
||||
task set: :environment do
|
||||
Administration.all.each do |a|
|
||||
puts "Deleting #{a.email}"
|
||||
rake_puts "Deleting #{a.email}"
|
||||
a.destroy
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2018_01_18_clean_datetime_in_champs' do
|
||||
task clean: :environment do
|
||||
datetime_champs = TypeDeChamp.where(type_champ: "datetime").flat_map{ |t| t.champ }
|
||||
|
||||
# Match " HH:MM" => nil a datetime is not valid if not composed by date AND time
|
||||
datetime_champs.select { |c| /^\s\d{2}:\d{2}$/.match(c.value) }.each do |c|
|
||||
puts "cleaning #{c.value} => nil"
|
||||
rake_puts "cleaning #{c.value} => nil"
|
||||
c.update_columns(value: nil)
|
||||
end
|
||||
|
||||
# Match "dd/mm/YYYY HH:MM" => "YYYY-mm-dd HH:MM"
|
||||
datetime_champs.select { |c| /^\d{2}\/\d{2}\/\d{4}\s\d{2}:\d{2}$/ =~ c.value }.each do |c|
|
||||
formated_date = DateTime.parse(c.value, "%d/%m/%Y %H:%M").strftime("%Y-%m-%d %H:%M")
|
||||
puts "cleaning #{c.value} => #{formated_date}"
|
||||
rake_puts "cleaning #{c.value} => #{formated_date}"
|
||||
c.update_columns(value: formated_date)
|
||||
end
|
||||
|
||||
|
@ -23,7 +25,7 @@ namespace :'2018_01_18_clean_datetime_in_champs' do
|
|||
hours = c.value[9,2]
|
||||
minutes = c.value[12,2]
|
||||
formated_date = "#{year}-#{month}-#{day} #{hours}:#{minutes}"
|
||||
puts "cleaning #{c.value} => #{formated_date}"
|
||||
rake_puts "cleaning #{c.value} => #{formated_date}"
|
||||
c.update_columns(value: formated_date)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
require Rails.root.join("app", "helpers", "html_to_string_helper")
|
||||
|
||||
namespace :'2018_03_06_clean_html_textareas' do
|
||||
|
@ -5,6 +6,8 @@ namespace :'2018_03_06_clean_html_textareas' do
|
|||
include ActionView::Helpers::TextHelper
|
||||
include HtmlToStringHelper
|
||||
|
||||
rake_puts "PUTS Will migrate champs"
|
||||
|
||||
champs = Champ.joins(:type_de_champ)
|
||||
.where(types_de_champ: { type_champ: "textarea" })
|
||||
.where("value LIKE '%<%'")
|
||||
|
@ -13,7 +16,7 @@ namespace :'2018_03_06_clean_html_textareas' do
|
|||
|
||||
champs.find_each(batch_size: 100).with_index do |c, i|
|
||||
if (i % 100) == 0
|
||||
print "Champ #{i}/#{total}\n"
|
||||
rake_puts "Champ #{i}/#{total}\n"
|
||||
end
|
||||
c.update_column(:value, html_to_string(c.value))
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2018_03_29_remove_code_tags_from_mail_templates' do
|
||||
task clean: :environment do
|
||||
remove_code_tag_from_body(Mails::ClosedMail)
|
||||
|
@ -9,9 +11,9 @@ namespace :'2018_03_29_remove_code_tags_from_mail_templates' do
|
|||
|
||||
def remove_code_tag_from_body(model_class)
|
||||
mails = model_class.where("body LIKE ?", "%<code>%")
|
||||
puts "#{mails.count} #{model_class.name} to clean"
|
||||
rake_puts "#{mails.count} #{model_class.name} to clean"
|
||||
mails.each do |m|
|
||||
puts "cleaning #{model_class.name} ##{m.id}"
|
||||
rake_puts "cleaning #{model_class.name} ##{m.id}"
|
||||
m.update(body: m.body.gsub("<code>", "").gsub("</code>", ""))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2018_04_04_fetch_etablissement_with_no_entreprise' do
|
||||
task fetch: :environment do
|
||||
dossiers = Entreprise.joins('LEFT JOIN etablissements et ON entreprises.id = et.entreprise_id')
|
||||
|
@ -7,7 +9,7 @@ namespace :'2018_04_04_fetch_etablissement_with_no_entreprise' do
|
|||
dossiers.each do |dossier|
|
||||
siret = dossier.entreprise.siret_siege_social
|
||||
|
||||
puts "Fetch siret: #{siret} for dossier: #{dossier.id}"
|
||||
rake_puts "Fetch siret: #{siret} for dossier: #{dossier.id}"
|
||||
|
||||
if siret
|
||||
EtablissementUpdateJob.perform_later(dossier, siret)
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2018_06_05_resend_attestations' do
|
||||
task set: :environment do
|
||||
procedure = Procedure.find(4247)
|
||||
|
@ -12,7 +14,7 @@ namespace :'2018_06_05_resend_attestations' do
|
|||
dossier.attestation = dossier.build_attestation
|
||||
|
||||
ResendAttestationMailer.resend_attestation(dossier).deliver_later
|
||||
puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
|
||||
rake_puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2018_06_05_send_new_attestation' do
|
||||
task set: :environment do
|
||||
ids = [
|
||||
|
@ -37,14 +39,14 @@ namespace :'2018_06_05_send_new_attestation' do
|
|||
if attestation
|
||||
id = attestation.id
|
||||
attestation.destroy
|
||||
puts "Attestation #{id} détruite"
|
||||
rake_puts "Attestation #{id} détruite"
|
||||
end
|
||||
|
||||
dossier.attestation = dossier.build_attestation
|
||||
|
||||
NewAttestationMailer.new_attestation(dossier).deliver_later
|
||||
puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
|
||||
puts
|
||||
rake_puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
|
||||
rake_puts
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require Rails.root.join("lib", "tasks", "task_helper")
|
||||
|
||||
namespace :'2018_06_06_users_for_admins_and_gestionnaires' do
|
||||
task preactivate: :environment do
|
||||
preactivate_users(Gestionnaire, 'accompagnateur') { |g| g.reset_password_token.nil? }
|
||||
|
@ -14,7 +16,7 @@ namespace :'2018_06_06_users_for_admins_and_gestionnaires' do
|
|||
.to_a
|
||||
.select(&block)
|
||||
|
||||
puts("Sending emails to #{already_activated.count} #{table_name} that were already confirmed")
|
||||
rake_puts "Sending emails to #{already_activated.count} #{table_name} that were already confirmed"
|
||||
|
||||
already_activated.each { |m| PreactivateUsersMailer.reinvite(m, role_name).deliver_later }
|
||||
|
||||
|
@ -24,6 +26,6 @@ namespace :'2018_06_06_users_for_admins_and_gestionnaires' do
|
|||
.where(confirmed_at: nil)
|
||||
.update_all(confirmed_at: DateTime.now)
|
||||
|
||||
puts("Fixed #{count} #{table_name} with unconfirmed user")
|
||||
rake_puts "Fixed #{count} #{table_name} with unconfirmed user"
|
||||
end
|
||||
end
|
||||
|
|
10
lib/tasks/task_helper.rb
Normal file
10
lib/tasks/task_helper.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Write the given objects to the standard output – except if Rake is configured
|
||||
# to be quiet.
|
||||
#
|
||||
# This is useful when running tests (when Rake is configured to be quiet),
|
||||
# to avoid spamming the output with extra informations.
|
||||
def rake_puts(*args)
|
||||
if Rake.verbose
|
||||
puts(*args)
|
||||
end
|
||||
end
|
|
@ -118,6 +118,8 @@ RSpec.configure do |config|
|
|||
end
|
||||
|
||||
config.before(:all) {
|
||||
Rake.verbose false
|
||||
|
||||
Warden.test_mode!
|
||||
|
||||
Typhoeus::Expectation.clear
|
||||
|
|
Loading…
Reference in a new issue