From be5849a7f54ea371a8d4d6a34d35eda2d5656ea0 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 5 Mar 2018 17:33:02 +0100 Subject: [PATCH 01/41] Remove unneeded quotes --- app/mailers/application_mailer.rb | 2 +- config/initializers/devise.rb | 2 +- config/locales/dynamics/fr.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 477bc8657..498633860 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -1,4 +1,4 @@ class ApplicationMailer < ActionMailer::Base - default from: "'demarches-simplifiees.fr' <#{I18n.t('dynamics.contact_email')}>" + default from: "demarches-simplifiees.fr <#{I18n.t('dynamics.contact_email')}>" layout 'mailer' end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index e649f0f9e..68eebcf50 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -10,7 +10,7 @@ Devise.setup do |config| # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - config.mailer_sender = "'demarches-simplifiees.fr' <#{I18n.t('dynamics.contact_email')}>" + config.mailer_sender = "demarches-simplifiees.fr <#{I18n.t('dynamics.contact_email')}>" # Configure the class responsible to send e-mails. # config.mailer = 'Devise::Mailer' diff --git a/config/locales/dynamics/fr.yml b/config/locales/dynamics/fr.yml index b64b48445..fdc533e38 100644 --- a/config/locales/dynamics/fr.yml +++ b/config/locales/dynamics/fr.yml @@ -1,6 +1,6 @@ fr: dynamics: - page_title: 'demarches-simplifiees.fr' + page_title: demarches-simplifiees.fr contact_email: contact@demarches-simplifiees.fr users: connexion_title: Connexion From 1030a4ae7d9b35d12f8061ac349c4542c9c3b675 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Fri, 2 Mar 2018 16:26:41 +0100 Subject: [PATCH 02/41] Bump default gems - openid_connect - openstack - chartkick - browser --- Gemfile.lock | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 521d9f5cd..839f36379 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,6 +93,7 @@ GEM momentjs-rails (~> 2.8) sass-rails (~> 5.0) selectize-rails (~> 0.6) + aes_key_wrap (1.0.1) apipie-rails (0.5.6) rails (>= 4.1) archive-zip (0.11.0) @@ -115,7 +116,7 @@ GEM bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) brakeman (4.1.1) - browser (2.5.2) + browser (2.5.3) builder (3.2.3) byebug (10.0.0) capybara (2.18.0) @@ -137,7 +138,7 @@ GEM carrierwave-i18n (0.2.0) case_transform (0.2) activesupport - chartkick (2.2.5) + chartkick (2.3.2) childprocess (0.8.0) ffi (~> 1.0, >= 1.0.11) chromedriver-helper (1.2.0) @@ -424,8 +425,9 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (2.1.0) - json-jwt (1.8.3) + json-jwt (1.9.2) activesupport + aes_key_wrap bindata securecompare url_safe_base64 @@ -511,10 +513,9 @@ GEM oauth2 (~> 1.1) omniauth (~> 1.2) open4 (1.3.4) - openid_connect (1.1.4) + openid_connect (1.1.5) activemodel attr_required (>= 1.0.0) - json (>= 1.4.3) json-jwt (>= 1.5.0) rack-oauth2 (>= 1.6.1) swd (>= 1.0.0) @@ -522,7 +523,7 @@ GEM validate_email validate_url webfinger (>= 1.0.1) - openstack (3.3.15) + openstack (3.3.17) json orm_adapter (0.5.0) parallel (1.12.1) @@ -549,11 +550,11 @@ GEM rack rack-mini-profiler (0.10.7) rack (>= 1.2.0) - rack-oauth2 (1.8.2) + rack-oauth2 (1.9.0) activesupport attr_required httpclient - json-jwt + json-jwt (>= 1.9.0) rack rack-protection (2.0.1) rack From d6ad3fc3fd3a1dc6026bad0f8bdd6bd2296ef639 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Fri, 2 Mar 2018 16:27:03 +0100 Subject: [PATCH 03/41] Bump development gems - brakeman - rubocop - scss_lint --- .rubocop.yml | 40 +++++++++++-------- Gemfile.lock | 12 +++--- Rakefile | 2 +- .../admin/attestation_templates_controller.rb | 2 +- .../admin/mail_templates_controller.rb | 2 +- .../admin/pieces_justificatives_controller.rb | 2 +- .../admin/procedures_controller.rb | 2 +- .../admin/types_de_champ_controller.rb | 2 +- .../types_de_champ_private_controller.rb | 2 +- .../new_gestionnaire/avis_controller.rb | 2 +- .../new_gestionnaire/dossiers_controller.rb | 6 +-- .../new_gestionnaire/procedures_controller.rb | 11 +++-- app/controllers/users/carte_controller.rb | 2 +- app/controllers/users/dossiers_controller.rb | 4 +- app/controllers/users/sessions_controller.rb | 4 +- app/models/administrateur.rb | 2 +- app/models/procedure.rb | 10 ++--- app/models/user.rb | 2 +- bin/bundle | 2 +- bin/setup | 2 +- bin/update | 2 +- config/application.rb | 2 +- config/boot.rb | 2 +- config/environment.rb | 2 +- ...08_link_type_piece_jointe_to_formulaire.rb | 2 +- ...94750_create_france_connect_information.rb | 2 +- .../attestation_templates_controller_spec.rb | 2 +- spec/controllers/invites_controller_spec.rb | 2 +- .../dossiers_controller_spec.rb | 2 +- .../new_user/dossiers_controller_spec.rb | 4 +- .../users/sessions_controller_spec.rb | 2 +- .../procedure_filters_spec.rb | 2 +- spec/models/administrateur_spec.rb | 4 +- spec/models/attestation_template_spec.rb | 4 +- .../concern/tags_substitution_concern_spec.rb | 14 +++---- spec/models/dossier_spec.rb | 2 +- spec/models/gestionnaire_spec.rb | 4 +- spec/models/procedure_spec.rb | 16 ++++---- spec/models/user_spec.rb | 4 +- spec/rails_helper.rb | 2 +- spec/spec_helper.rb | 2 +- .../_identite_entreprise.html.haml_spec.rb | 2 +- 42 files changed, 99 insertions(+), 94 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index d356d2312..10c9c3ced 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -24,6 +24,9 @@ Layout/AlignParameters: Enabled: true EnforcedStyle: with_fixed_indentation +Layout/BlockAlignment: + Enabled: false + Layout/BlockEndNewline: Enabled: true @@ -37,6 +40,12 @@ Layout/ClosingParenthesisIndentation: Layout/CommentIndentation: Enabled: true +Layout/ConditionPosition: + Enabled: false + +Layout/DefEndAlignment: + Enabled: false + Layout/DotPosition: Enabled: true @@ -73,6 +82,10 @@ Layout/EmptyLinesAroundMethodBody: Layout/EmptyLinesAroundModuleBody: Enabled: true +Layout/EndAlignment: + Enabled: true + EnforcedStyleAlignWith: variable + Layout/EndOfLine: Enabled: true EnforcedStyle: lf @@ -248,21 +261,12 @@ Lint/AmbiguousRegexpLiteral: Lint/AssignmentInCondition: Enabled: false -Lint/BlockAlignment: - Enabled: false - Lint/CircularArgumentReference: Enabled: false -Lint/ConditionPosition: - Enabled: false - Lint/Debugger: Enabled: false -Lint/DefEndAlignment: - Enabled: false - Lint/DeprecatedClassMethods: Enabled: false @@ -293,10 +297,6 @@ Lint/EmptyInterpolation: Lint/EmptyWhen: Enabled: false -Lint/EndAlignment: - Enabled: true - EnforcedStyleAlignWith: variable - Lint/EndInMethod: Enabled: false @@ -480,12 +480,18 @@ Naming/FileName: Naming/HeredocDelimiterNaming: Enabled: false +Naming/MemoizedInstanceVariableName: + Enabled: false + Naming/MethodName: Enabled: false Naming/PredicateName: Enabled: false +Naming/UncommunicativeMethodParamName: + Enabled: false + Naming/VariableName: Enabled: false @@ -522,9 +528,6 @@ Performance/FixedSize: Performance/FlatMap: Enabled: true -Performance/HashEachMethods: - Enabled: false - Performance/LstripRstrip: Enabled: true @@ -1080,7 +1083,10 @@ Style/TernaryParentheses: Style/TrailingCommaInArguments: Enabled: false -Style/TrailingCommaInLiteral: +Style/TrailingCommaInArrayLiteral: + Enabled: false + +Style/TrailingCommaInHashLiteral: Enabled: false Style/TrailingUnderscoreVariable: diff --git a/Gemfile.lock b/Gemfile.lock index 839f36379..c61a5d107 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,7 +115,7 @@ GEM sass (>= 3.3.4) bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) - brakeman (4.1.1) + brakeman (4.2.0) browser (2.5.3) builder (3.2.3) byebug (10.0.0) @@ -527,7 +527,7 @@ GEM json orm_adapter (0.5.0) parallel (1.12.1) - parser (2.5.0.1) + parser (2.5.0.3) ast (~> 2.4.0) pdf-core (0.7.0) pg (0.19.0) @@ -642,9 +642,9 @@ GEM rspec-support (3.7.1) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (0.52.1) + rubocop (0.53.0) parallel (~> 1.10) - parser (>= 2.4.0.2, < 3.0) + parser (>= 2.5) powerpack (~> 0.1) rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) @@ -672,9 +672,9 @@ GEM scenic (1.4.1) activerecord (>= 4.0.0) railties (>= 4.0.0) - scss_lint (0.56.0) + scss_lint (0.57.0) rake (>= 0.9, < 13) - sass (~> 3.5.3) + sass (~> 3.5.5) securecompare (1.0.0) select2-rails (4.0.3) thor (~> 0.14) diff --git a/Rakefile b/Rakefile index bdb67ab62..186e5b1ed 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,7 @@ # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. -require File.expand_path('../config/application', __FILE__) +require File.expand_path('config/application', __dir__) Rails.application.load_tasks diff --git a/app/controllers/admin/attestation_templates_controller.rb b/app/controllers/admin/attestation_templates_controller.rb index 10fdb2994..0cdff87c5 100644 --- a/app/controllers/admin/attestation_templates_controller.rb +++ b/app/controllers/admin/attestation_templates_controller.rb @@ -8,7 +8,7 @@ class Admin::AttestationTemplatesController < AdminController def update attestation_template = @procedure.attestation_template - if attestation_template.update_attributes(activated_attestation_params) + if attestation_template.update(activated_attestation_params) flash.notice = "L'attestation a bien été modifiée" else flash.alert = attestation_template.errors.full_messages.join('
') diff --git a/app/controllers/admin/mail_templates_controller.rb b/app/controllers/admin/mail_templates_controller.rb index 7ec106986..3ef952fae 100644 --- a/app/controllers/admin/mail_templates_controller.rb +++ b/app/controllers/admin/mail_templates_controller.rb @@ -11,7 +11,7 @@ class Admin::MailTemplatesController < AdminController def update mail_template = find_mail_template_by_slug(params[:id]) - mail_template.update_attributes(update_params) + mail_template.update(update_params) redirect_to admin_procedure_mail_templates_path end diff --git a/app/controllers/admin/pieces_justificatives_controller.rb b/app/controllers/admin/pieces_justificatives_controller.rb index 0f6d14987..99012c304 100644 --- a/app/controllers/admin/pieces_justificatives_controller.rb +++ b/app/controllers/admin/pieces_justificatives_controller.rb @@ -6,7 +6,7 @@ class Admin::PiecesJustificativesController < AdminController end def update - if @procedure.update_attributes(update_params) + if @procedure.update(update_params) flash.now.notice = 'Modifications sauvegardées' else flash.now.notice = 'Une erreur est survenue' diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index 85801ee28..511024182 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -105,7 +105,7 @@ class Admin::ProceduresController < AdminController def update @procedure = current_administrateur.procedures.find(params[:id]) - if !@procedure.update_attributes(procedure_params) + if !@procedure.update(procedure_params) flash.now.alert = @procedure.errors.full_messages return render 'edit' end diff --git a/app/controllers/admin/types_de_champ_controller.rb b/app/controllers/admin/types_de_champ_controller.rb index b05c52fdd..256e06220 100644 --- a/app/controllers/admin/types_de_champ_controller.rb +++ b/app/controllers/admin/types_de_champ_controller.rb @@ -15,7 +15,7 @@ class Admin::TypesDeChampController < AdminController end def update - @procedure.update_attributes(TypesDeChampService.create_update_procedure_params params) + @procedure.update(TypesDeChampService.create_update_procedure_params params) create_facade flash.now.notice = 'Modifications sauvegardées' render 'show', format: :js diff --git a/app/controllers/admin/types_de_champ_private_controller.rb b/app/controllers/admin/types_de_champ_private_controller.rb index a4cea0946..320e0064e 100644 --- a/app/controllers/admin/types_de_champ_private_controller.rb +++ b/app/controllers/admin/types_de_champ_private_controller.rb @@ -16,7 +16,7 @@ class Admin::TypesDeChampPrivateController < AdminController end def update - @procedure.update_attributes(TypesDeChampService.create_update_procedure_params params, true) + @procedure.update(TypesDeChampService.create_update_procedure_params params, true) create_facade flash.now.notice = 'Modifications sauvegardées' render 'admin/types_de_champ/show', format: :js diff --git a/app/controllers/new_gestionnaire/avis_controller.rb b/app/controllers/new_gestionnaire/avis_controller.rb index 9e1257063..814f3c4ba 100644 --- a/app/controllers/new_gestionnaire/avis_controller.rb +++ b/app/controllers/new_gestionnaire/avis_controller.rb @@ -32,7 +32,7 @@ module NewGestionnaire end def update - avis.update_attributes(avis_params) + avis.update(avis_params) flash.notice = 'Votre réponse est enregistrée.' redirect_to instruction_gestionnaire_avis_path(avis) end diff --git a/app/controllers/new_gestionnaire/dossiers_controller.rb b/app/controllers/new_gestionnaire/dossiers_controller.rb index f1a130b41..c91e0d2b5 100644 --- a/app/controllers/new_gestionnaire/dossiers_controller.rb +++ b/app/controllers/new_gestionnaire/dossiers_controller.rb @@ -57,13 +57,13 @@ module NewGestionnaire end def archive - dossier.update_attributes(archived: true) + dossier.update(archived: true) current_gestionnaire.unfollow(dossier) redirect_back(fallback_location: gestionnaire_procedures_url) end def unarchive - dossier.update_attributes(archived: false) + dossier.update(archived: false) redirect_back(fallback_location: gestionnaire_procedures_url) end @@ -166,7 +166,7 @@ module NewGestionnaire def update_annotations dossier = current_gestionnaire.dossiers.includes(champs_private: :type_de_champ).find(params[:dossier_id]) # FIXME: add attachements validation, cf. Champ#piece_justificative_file_errors - dossier.update_attributes(champs_private_params) + dossier.update(champs_private_params) redirect_to annotations_privees_gestionnaire_dossier_path(procedure, dossier) end diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb index 7b4d958a6..a7b557d54 100644 --- a/app/controllers/new_gestionnaire/procedures_controller.rb +++ b/app/controllers/new_gestionnaire/procedures_controller.rb @@ -109,11 +109,11 @@ module NewGestionnaire c.to_json end - procedure_presentation.update_attributes(displayed_fields: fields) + procedure_presentation.update(displayed_fields: fields) current_sort = procedure_presentation.sort if !values.include?("#{current_sort['table']}/#{current_sort['column']}") - procedure_presentation.update_attributes(sort: Procedure.default_sort) + procedure_presentation.update(sort: Procedure.default_sort) end redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) @@ -136,7 +136,7 @@ module NewGestionnaire 'order' => order }.to_json - procedure_presentation.update_attributes(sort: sort) + procedure_presentation.update(sort: sort) redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) end @@ -154,7 +154,7 @@ module NewGestionnaire 'value' => params[:value] } - procedure_presentation.update_attributes(filters: filters.to_json) + procedure_presentation.update(filters: filters.to_json) end redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) @@ -168,7 +168,7 @@ module NewGestionnaire filters[statut] = filters[statut] - [filter_to_remove] - procedure_presentation.update_attributes(filters: filters.to_json) + procedure_presentation.update(filters: filters.to_json) redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) end @@ -245,7 +245,6 @@ module NewGestionnaire .includes(filter['table']) .where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%") end - end.pluck(:id) end.reduce(:&) end diff --git a/app/controllers/users/carte_controller.rb b/app/controllers/users/carte_controller.rb index 8ef350893..f41d55bf2 100644 --- a/app/controllers/users/carte_controller.rb +++ b/app/controllers/users/carte_controller.rb @@ -22,7 +22,7 @@ class Users::CarteController < UsersController ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs] end - dossier.update_attributes(json_latlngs: params[:json_latlngs]) + dossier.update(json_latlngs: params[:json_latlngs]) redirect_to modifier_dossier_path(dossier) end diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 121693b89..7af0fc9e0 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -156,7 +156,7 @@ class Users::DossiersController < UsersController flash.alert = individual_errors redirect_to users_dossier_path(id: @facade.dossier.id) else - if !Dossier.find(@facade.dossier.id).update_attributes update_params_with_formatted_birthdate + if !Dossier.find(@facade.dossier.id).update update_params_with_formatted_birthdate flash.alert = @facade.dossier.errors.full_messages return redirect_to users_dossier_path(id: @facade.dossier.id) @@ -259,7 +259,7 @@ class Users::DossiersController < UsersController end def update_current_user_siret! siret - current_user.update_attributes(siret: siret) + current_user.update(siret: siret) end def facade id = params[:id] diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index b2b6f3391..0ac64ed65 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -20,7 +20,7 @@ class Users::SessionsController < Sessions::SessionsController try_to_authenticate(Administrateur, remember_me) if user_signed_in? - current_user.update_attributes(loged_in_with_france_connect: '') + current_user.update(loged_in_with_france_connect: '') end if user_signed_in? @@ -44,7 +44,7 @@ class Users::SessionsController < Sessions::SessionsController if user_signed_in? connected_with_france_connect = current_user.loged_in_with_france_connect - current_user.update_attributes(loged_in_with_france_connect: '') + current_user.update(loged_in_with_france_connect: '') sign_out :user diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index 7048cb473..f1f2e379b 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -26,7 +26,7 @@ class Administrateur < ActiveRecord::Base end def renew_api_token - update_attributes(api_token: generate_api_token) + update(api_token: generate_api_token) end def registration_state diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 5441fbc3d..e750d7a21 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -42,7 +42,7 @@ class Procedure < ActiveRecord::Base def hide! now = DateTime.now - self.update_attributes(hidden_at: now) + self.update(hidden_at: now) self.dossiers.update_all(hidden_at: now) end @@ -89,8 +89,8 @@ class Procedure < ActiveRecord::Base false else - list[index_of_first_element].update_attributes(order_place: index_of_first_element + 1) - list[index_of_first_element + 1].update_attributes(order_place: index_of_first_element) + list[index_of_first_element].update(order_place: index_of_first_element + 1) + list[index_of_first_element + 1].update(order_place: index_of_first_element) true end @@ -129,7 +129,7 @@ class Procedure < ActiveRecord::Base end def publish!(path) - self.update_attributes!({ published_at: Time.now, archived_at: nil }) + self.update!({ published_at: Time.now, archived_at: nil }) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) end @@ -138,7 +138,7 @@ class Procedure < ActiveRecord::Base end def archive - self.update_attributes!(archived_at: Time.now) + self.update!(archived_at: Time.now) end def archivee? diff --git a/app/models/user.rb b/app/models/user.rb index 16d5edca6..362eba6b7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -25,7 +25,7 @@ class User < ActiveRecord::Base if user.nil? return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret) else - user.update_attributes(siret: siret) + user.update(siret: siret) user end end diff --git a/bin/bundle b/bin/bundle index 66e9889e8..f19acf5b5 100755 --- a/bin/bundle +++ b/bin/bundle @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) load Gem.bin_path('bundler', 'bundle') diff --git a/bin/setup b/bin/setup index 468646cd1..04e288aec 100755 --- a/bin/setup +++ b/bin/setup @@ -4,7 +4,7 @@ require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = Pathname.new File.expand_path('../', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") diff --git a/bin/update b/bin/update index a8e4462f2..f02dfd611 100755 --- a/bin/update +++ b/bin/update @@ -4,7 +4,7 @@ require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = Pathname.new File.expand_path('../', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") diff --git a/config/application.rb b/config/application.rb index 1d381b4b1..7d54fd628 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,4 +1,4 @@ -require File.expand_path('../boot', __FILE__) +require File.expand_path('boot', __dir__) require 'rails/all' diff --git a/config/boot.rb b/config/boot.rb index 6b750f00b..30f5120df 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,3 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/environment.rb b/config/environment.rb index ee8d90dc6..0b8bdd828 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require File.expand_path('../application', __FILE__) +require File.expand_path('application', __dir__) # Initialize the Rails application. Rails.application.initialize! diff --git a/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb b/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb index db9d9289a..e1392c812 100644 --- a/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb +++ b/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb @@ -2,7 +2,7 @@ class LinkTypePieceJointeToFormulaire < ActiveRecord::Migration # def up # TypePieceJointe.find_each do |type_piece_jointe| # forms = Formulaire.find_by_demarche_id(type_piece_jointe.CERFA) - # type_piece_jointe.update_attributes(formulaire_id: forms.id) if forms.present? + # type_piece_jointe.update(formulaire_id: forms.id) if forms.present? # end # end end diff --git a/db/migrate/20160120094750_create_france_connect_information.rb b/db/migrate/20160120094750_create_france_connect_information.rb index 88f7f1128..2178c02eb 100644 --- a/db/migrate/20160120094750_create_france_connect_information.rb +++ b/db/migrate/20160120094750_create_france_connect_information.rb @@ -46,7 +46,7 @@ class CreateFranceConnectInformation < ActiveRecord::Migration add_column :users, :france_connect_particulier_id, :string FranceConnectInformation.all.each do |fci| - User.find(fci.user_id).update_attributes({ + User.find(fci.user_id).update({ gender: fci.gender, given_name: fci.given_name, family_name: fci.family_name, diff --git a/spec/controllers/admin/attestation_templates_controller_spec.rb b/spec/controllers/admin/attestation_templates_controller_spec.rb index ed545032e..6939e477e 100644 --- a/spec/controllers/admin/attestation_templates_controller_spec.rb +++ b/spec/controllers/admin/attestation_templates_controller_spec.rb @@ -140,7 +140,7 @@ describe Admin::AttestationTemplatesController, type: :controller do context 'when something wrong happens in the attestation template creation' do before do - expect_any_instance_of(AttestationTemplate).to receive(:update_attributes).and_return(false) + expect_any_instance_of(AttestationTemplate).to receive(:update).and_return(false) expect_any_instance_of(AttestationTemplate).to receive(:errors) .and_return(double(full_messages: ['nop'])) diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index f32dbaf68..2e6c47bfd 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -145,7 +145,7 @@ describe InvitesController, type: :controller do context 'when user has access to dossier' do before do - dossier.update_attributes(user: signed_in_profile) + dossier.update(user: signed_in_profile) end it { expect { subject }.to change(InviteUser, :count).by(1) } diff --git a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb index c6338051f..6f8c67cb4 100644 --- a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb +++ b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb @@ -94,7 +94,7 @@ describe NewGestionnaire::DossiersController, type: :controller do describe '#unarchive' do before do - dossier.update_attributes(archived: true) + dossier.update(archived: true) patch :unarchive, params: { procedure_id: procedure.id, dossier_id: dossier.id } dossier.reload end diff --git a/spec/controllers/new_user/dossiers_controller_spec.rb b/spec/controllers/new_user/dossiers_controller_spec.rb index 68c68a9b1..2557d79ec 100644 --- a/spec/controllers/new_user/dossiers_controller_spec.rb +++ b/spec/controllers/new_user/dossiers_controller_spec.rb @@ -122,7 +122,7 @@ describe NewUser::DossiersController, type: :controller do end context 'when the dossier is for an personne physique' do - before { dossier.procedure.update_attributes(for_individual: true) } + before { dossier.procedure.update(for_individual: true) } it { is_expected.to redirect_to(identite_dossier_path(dossier)) } end @@ -215,7 +215,7 @@ describe NewUser::DossiersController, type: :controller do let(:value) { nil } before do - first_champ.type_de_champ.update_attributes(mandatory: true, libelle: 'l') + first_champ.type_de_champ.update(mandatory: true, libelle: 'l') allow(PiecesJustificativesService).to receive(:missing_pj_error_messages).and_return(['pj']) subject diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb index cb0daa0de..2f581ec7f 100644 --- a/spec/controllers/users/sessions_controller_spec.rb +++ b/spec/controllers/users/sessions_controller_spec.rb @@ -158,7 +158,7 @@ describe Users::SessionsController, type: :controller do end it 'signs user out from france connect' do - user.update_attributes(loged_in_with_france_connect: 'particulier') + user.update(loged_in_with_france_connect: 'particulier') sign_in user delete :destroy expect(@response.headers["Location"]).to eq(FRANCE_CONNECT[:particulier][:logout_endpoint]) diff --git a/spec/features/new_gestionnaire/procedure_filters_spec.rb b/spec/features/new_gestionnaire/procedure_filters_spec.rb index 332142f19..dcbc3481c 100644 --- a/spec/features/new_gestionnaire/procedure_filters_spec.rb +++ b/spec/features/new_gestionnaire/procedure_filters_spec.rb @@ -9,7 +9,7 @@ feature "procedure filters" do let!(:new_unfollow_dossier_2) { create(:dossier, procedure: procedure, state: "en_instruction") } before do - champ.update_attributes(value: "Mon champ rempli") + champ.update(value: "Mon champ rempli") login_as gestionnaire, scope: :gestionnaire visit gestionnaire_procedure_path(procedure) end diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index 6fb94c9fc..5b5b1160a 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -32,7 +32,7 @@ describe Administrateur, type: :model do administrateur = create(:administrateur) user = create(:user, email: administrateur.email) - administrateur.update_attributes(email: 'whoami@plop.com', password: 'super secret') + administrateur.update(email: 'whoami@plop.com', password: 'super secret') user.reload expect(user.email).to eq('whoami@plop.com') @@ -43,7 +43,7 @@ describe Administrateur, type: :model do administrateur = create(:administrateur) gestionnaire = create(:gestionnaire, email: administrateur.email) - administrateur.update_attributes(email: 'whoami@plop.com', password: 'super secret') + administrateur.update(email: 'whoami@plop.com', password: 'super secret') gestionnaire.reload expect(gestionnaire.email).to eq('whoami@plop.com') diff --git a/spec/models/attestation_template_spec.rb b/spec/models/attestation_template_spec.rb index 680c72ef2..1cd889aa5 100644 --- a/spec/models/attestation_template_spec.rb +++ b/spec/models/attestation_template_spec.rb @@ -163,12 +163,12 @@ describe AttestationTemplate, type: :model do dossier.champs .select { |champ| champ.libelle == 'libelleA' } .first - .update_attributes(value: 'libelle1') + .update(value: 'libelle1') dossier.champs .select { |champ| champ.libelle == 'libelleB' } .first - .update_attributes(value: 'libelle2') + .update(value: 'libelle2') end it { expect(view_args[:title]).to eq('title libelle1') } diff --git a/spec/models/concern/tags_substitution_concern_spec.rb b/spec/models/concern/tags_substitution_concern_spec.rb index 42cc2bd44..7a2d2e52e 100644 --- a/spec/models/concern/tags_substitution_concern_spec.rb +++ b/spec/models/concern/tags_substitution_concern_spec.rb @@ -99,12 +99,12 @@ describe TagsSubstitutionConcern, type: :model do dossier.champs .select { |champ| champ.libelle == 'libelleA' } .first - .update_attributes(value: 'libelle1') + .update(value: 'libelle1') dossier.champs .select { |champ| champ.libelle == 'libelleB' } .first - .update_attributes(value: 'libelle2') + .update(value: 'libelle2') end it { is_expected.to eq('libelle1 libelle2') } @@ -129,7 +129,7 @@ describe TagsSubstitutionConcern, type: :model do let(:template) { '--libelleA--' } context 'and its value in the dossier is not nil' do - before { dossier.champs_private.first.update_attributes(value: 'libelle1') } + before { dossier.champs_private.first.update(value: 'libelle1') } it { is_expected.to eq('libelle1') } end @@ -152,7 +152,7 @@ describe TagsSubstitutionConcern, type: :model do context 'champs publics are valid tags' do let(:types_de_champ) { [create(:type_de_champ, libelle: 'libelleA')] } - before { dossier.champs.first.update_attributes(value: 'libelle1') } + before { dossier.champs.first.update(value: 'libelle1') } it { is_expected.to eq('libelle1') } end @@ -174,12 +174,12 @@ describe TagsSubstitutionConcern, type: :model do dossier.champs .select { |champ| champ.type_champ == 'date' } .first - .update_attributes(value: '2017-04-15') + .update(value: '2017-04-15') dossier.champs .select { |champ| champ.type_champ == 'datetime' } .first - .update_attributes(value: '2017-09-13 09:00') + .update(value: '2017-09-13 09:00') end it { is_expected.to eq('15/04/2017 2017-09-13 09:00') } @@ -220,7 +220,7 @@ describe TagsSubstitutionConcern, type: :model do end context "match breaking and non breaking spaces" do - before { dossier.champs.first.update_attributes(value: 'valeur') } + before { dossier.champs.first.update(value: 'valeur') } shared_examples "treat all kinds of space as equivalent" do context 'and the champ has a non breaking space' do diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 4dc9e35f0..47bcd0a16 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -112,7 +112,7 @@ describe Dossier do it 'does not create default champs' do expect(subject).not_to receive(:build_default_champs) - subject.update_attributes(state: 'en_construction') + subject.update(state: 'en_construction') end end end diff --git a/spec/models/gestionnaire_spec.rb b/spec/models/gestionnaire_spec.rb index 5f94afe50..9d13d1042 100644 --- a/spec/models/gestionnaire_spec.rb +++ b/spec/models/gestionnaire_spec.rb @@ -116,7 +116,7 @@ describe Gestionnaire, type: :model do gestionnaire = create(:gestionnaire) user = create(:user, email: gestionnaire.email) - gestionnaire.update_attributes(email: 'whoami@plop.com', password: 'super secret') + gestionnaire.update(email: 'whoami@plop.com', password: 'super secret') user.reload expect(user.email).to eq('whoami@plop.com') @@ -127,7 +127,7 @@ describe Gestionnaire, type: :model do gestionnaire = create(:gestionnaire) admin = create(:administrateur, email: gestionnaire.email) - gestionnaire.update_attributes(email: 'whoami@plop.com', password: 'super secret') + gestionnaire.update(email: 'whoami@plop.com', password: 'super secret') admin.reload expect(admin.email).to eq('whoami@plop.com') diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 827205514..4cd13e70f 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -352,16 +352,16 @@ describe Procedure do procedure.types_de_champ_private << tcp_2 << tcp_1 dossier.build_default_champs - dossier.champs.find_by(type_de_champ: tc_1).update_attributes(value: "value 1") - dossier.champs.find_by(type_de_champ: tc_2).update_attributes(value: "value 2") - dossier.champs_private.find_by(type_de_champ: tcp_1).update_attributes(value: "private value 1") - dossier.champs_private.find_by(type_de_champ: tcp_2).update_attributes(value: "private value 2") + dossier.champs.find_by(type_de_champ: tc_1).update(value: "value 1") + dossier.champs.find_by(type_de_champ: tc_2).update(value: "value 2") + dossier.champs_private.find_by(type_de_champ: tcp_1).update(value: "private value 1") + dossier.champs_private.find_by(type_de_champ: tcp_2).update(value: "private value 2") dossier2.build_default_champs - dossier2.champs.find_by(type_de_champ: tc_1).update_attributes(value: "value 1") - dossier2.champs.find_by(type_de_champ: tc_2).update_attributes(value: "value 2") - dossier2.champs_private.find_by(type_de_champ: tcp_1).update_attributes(value: "private value 1") - dossier2.champs_private.find_by(type_de_champ: tcp_2).update_attributes(value: "private value 2") + dossier2.champs.find_by(type_de_champ: tc_1).update(value: "value 1") + dossier2.champs.find_by(type_de_champ: tc_2).update(value: "value 2") + dossier2.champs_private.find_by(type_de_champ: tcp_1).update(value: "private value 1") + dossier2.champs_private.find_by(type_de_champ: tcp_2).update(value: "private value 2") end it { expect(subject[:headers].index(tc_1.libelle.parameterize.underscore.to_sym)).to be < subject[:headers].index(tc_2.libelle.parameterize.underscore.to_sym) } diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 58bd78bc2..848909a51 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -55,7 +55,7 @@ describe User, type: :model do user = create(:user) gestionnaire = create(:gestionnaire, email: user.email) - user.update_attributes(email: 'whoami@plop.com', password: 'super secret') + user.update(email: 'whoami@plop.com', password: 'super secret') gestionnaire.reload expect(gestionnaire.email).to eq('whoami@plop.com') @@ -66,7 +66,7 @@ describe User, type: :model do user = create(:user) admin = create(:administrateur, email: user.email) - user.update_attributes(email: 'whoami@plop.com', password: 'super secret') + user.update(email: 'whoami@plop.com', password: 'super secret') admin.reload expect(admin.email).to eq('whoami@plop.com') diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 59725df09..da5f1b49d 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,7 +1,7 @@ # This file is copied to spec/ when you run 'rails generate rspec:install' ENV['RAILS_ENV'] ||= 'test' require 'spec_helper' -require File.expand_path('../../config/environment', __FILE__) +require File.expand_path('../config/environment', __dir__) require 'rspec/rails' # Add additional requires below this line. Rails is not loaded until this point! diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 266047f62..a0583ada3 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -19,7 +19,7 @@ ENV['RAILS_ENV'] ||= 'test' -require File.expand_path('../../config/environment', __FILE__) +require File.expand_path('../config/environment', __dir__) require 'rspec/rails' require 'capybara/rspec' require 'database_cleaner' diff --git a/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb b/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb index 73830217c..a28649fe1 100644 --- a/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb +++ b/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb @@ -6,7 +6,7 @@ describe 'new_gestionnaire/dossiers/identite_entreprise.html.haml', type: :view let(:entreprise) { rna_information.entreprise } context "date_publication is missing on rna" do - before { rna_information.update_attributes(date_publication: nil) } + before { rna_information.update(date_publication: nil) } it "can render without error" do expect(rendered).to include("Date de publication :") From fe7f8da636682181f6af196da65a3060f2f65c8b Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 15:11:26 +0100 Subject: [PATCH 04/41] Revert "Bump development gems" This reverts commit d6ad3fc3fd3a1dc6026bad0f8bdd6bd2296ef639. --- .rubocop.yml | 40 ++++++++----------- Gemfile.lock | 12 +++--- Rakefile | 2 +- .../admin/attestation_templates_controller.rb | 2 +- .../admin/mail_templates_controller.rb | 2 +- .../admin/pieces_justificatives_controller.rb | 2 +- .../admin/procedures_controller.rb | 2 +- .../admin/types_de_champ_controller.rb | 2 +- .../types_de_champ_private_controller.rb | 2 +- .../new_gestionnaire/avis_controller.rb | 2 +- .../new_gestionnaire/dossiers_controller.rb | 6 +-- .../new_gestionnaire/procedures_controller.rb | 11 ++--- app/controllers/users/carte_controller.rb | 2 +- app/controllers/users/dossiers_controller.rb | 4 +- app/controllers/users/sessions_controller.rb | 4 +- app/models/administrateur.rb | 2 +- app/models/procedure.rb | 10 ++--- app/models/user.rb | 2 +- bin/bundle | 2 +- bin/setup | 2 +- bin/update | 2 +- config/application.rb | 2 +- config/boot.rb | 2 +- config/environment.rb | 2 +- ...08_link_type_piece_jointe_to_formulaire.rb | 2 +- ...94750_create_france_connect_information.rb | 2 +- .../attestation_templates_controller_spec.rb | 2 +- spec/controllers/invites_controller_spec.rb | 2 +- .../dossiers_controller_spec.rb | 2 +- .../new_user/dossiers_controller_spec.rb | 4 +- .../users/sessions_controller_spec.rb | 2 +- .../procedure_filters_spec.rb | 2 +- spec/models/administrateur_spec.rb | 4 +- spec/models/attestation_template_spec.rb | 4 +- .../concern/tags_substitution_concern_spec.rb | 14 +++---- spec/models/dossier_spec.rb | 2 +- spec/models/gestionnaire_spec.rb | 4 +- spec/models/procedure_spec.rb | 16 ++++---- spec/models/user_spec.rb | 4 +- spec/rails_helper.rb | 2 +- spec/spec_helper.rb | 2 +- .../_identite_entreprise.html.haml_spec.rb | 2 +- 42 files changed, 94 insertions(+), 99 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 10c9c3ced..d356d2312 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -24,9 +24,6 @@ Layout/AlignParameters: Enabled: true EnforcedStyle: with_fixed_indentation -Layout/BlockAlignment: - Enabled: false - Layout/BlockEndNewline: Enabled: true @@ -40,12 +37,6 @@ Layout/ClosingParenthesisIndentation: Layout/CommentIndentation: Enabled: true -Layout/ConditionPosition: - Enabled: false - -Layout/DefEndAlignment: - Enabled: false - Layout/DotPosition: Enabled: true @@ -82,10 +73,6 @@ Layout/EmptyLinesAroundMethodBody: Layout/EmptyLinesAroundModuleBody: Enabled: true -Layout/EndAlignment: - Enabled: true - EnforcedStyleAlignWith: variable - Layout/EndOfLine: Enabled: true EnforcedStyle: lf @@ -261,12 +248,21 @@ Lint/AmbiguousRegexpLiteral: Lint/AssignmentInCondition: Enabled: false +Lint/BlockAlignment: + Enabled: false + Lint/CircularArgumentReference: Enabled: false +Lint/ConditionPosition: + Enabled: false + Lint/Debugger: Enabled: false +Lint/DefEndAlignment: + Enabled: false + Lint/DeprecatedClassMethods: Enabled: false @@ -297,6 +293,10 @@ Lint/EmptyInterpolation: Lint/EmptyWhen: Enabled: false +Lint/EndAlignment: + Enabled: true + EnforcedStyleAlignWith: variable + Lint/EndInMethod: Enabled: false @@ -480,18 +480,12 @@ Naming/FileName: Naming/HeredocDelimiterNaming: Enabled: false -Naming/MemoizedInstanceVariableName: - Enabled: false - Naming/MethodName: Enabled: false Naming/PredicateName: Enabled: false -Naming/UncommunicativeMethodParamName: - Enabled: false - Naming/VariableName: Enabled: false @@ -528,6 +522,9 @@ Performance/FixedSize: Performance/FlatMap: Enabled: true +Performance/HashEachMethods: + Enabled: false + Performance/LstripRstrip: Enabled: true @@ -1083,10 +1080,7 @@ Style/TernaryParentheses: Style/TrailingCommaInArguments: Enabled: false -Style/TrailingCommaInArrayLiteral: - Enabled: false - -Style/TrailingCommaInHashLiteral: +Style/TrailingCommaInLiteral: Enabled: false Style/TrailingUnderscoreVariable: diff --git a/Gemfile.lock b/Gemfile.lock index c61a5d107..839f36379 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,7 +115,7 @@ GEM sass (>= 3.3.4) bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) - brakeman (4.2.0) + brakeman (4.1.1) browser (2.5.3) builder (3.2.3) byebug (10.0.0) @@ -527,7 +527,7 @@ GEM json orm_adapter (0.5.0) parallel (1.12.1) - parser (2.5.0.3) + parser (2.5.0.1) ast (~> 2.4.0) pdf-core (0.7.0) pg (0.19.0) @@ -642,9 +642,9 @@ GEM rspec-support (3.7.1) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (0.53.0) + rubocop (0.52.1) parallel (~> 1.10) - parser (>= 2.5) + parser (>= 2.4.0.2, < 3.0) powerpack (~> 0.1) rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) @@ -672,9 +672,9 @@ GEM scenic (1.4.1) activerecord (>= 4.0.0) railties (>= 4.0.0) - scss_lint (0.57.0) + scss_lint (0.56.0) rake (>= 0.9, < 13) - sass (~> 3.5.5) + sass (~> 3.5.3) securecompare (1.0.0) select2-rails (4.0.3) thor (~> 0.14) diff --git a/Rakefile b/Rakefile index 186e5b1ed..bdb67ab62 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,7 @@ # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. -require File.expand_path('config/application', __dir__) +require File.expand_path('../config/application', __FILE__) Rails.application.load_tasks diff --git a/app/controllers/admin/attestation_templates_controller.rb b/app/controllers/admin/attestation_templates_controller.rb index 0cdff87c5..10fdb2994 100644 --- a/app/controllers/admin/attestation_templates_controller.rb +++ b/app/controllers/admin/attestation_templates_controller.rb @@ -8,7 +8,7 @@ class Admin::AttestationTemplatesController < AdminController def update attestation_template = @procedure.attestation_template - if attestation_template.update(activated_attestation_params) + if attestation_template.update_attributes(activated_attestation_params) flash.notice = "L'attestation a bien été modifiée" else flash.alert = attestation_template.errors.full_messages.join('
') diff --git a/app/controllers/admin/mail_templates_controller.rb b/app/controllers/admin/mail_templates_controller.rb index 3ef952fae..7ec106986 100644 --- a/app/controllers/admin/mail_templates_controller.rb +++ b/app/controllers/admin/mail_templates_controller.rb @@ -11,7 +11,7 @@ class Admin::MailTemplatesController < AdminController def update mail_template = find_mail_template_by_slug(params[:id]) - mail_template.update(update_params) + mail_template.update_attributes(update_params) redirect_to admin_procedure_mail_templates_path end diff --git a/app/controllers/admin/pieces_justificatives_controller.rb b/app/controllers/admin/pieces_justificatives_controller.rb index 99012c304..0f6d14987 100644 --- a/app/controllers/admin/pieces_justificatives_controller.rb +++ b/app/controllers/admin/pieces_justificatives_controller.rb @@ -6,7 +6,7 @@ class Admin::PiecesJustificativesController < AdminController end def update - if @procedure.update(update_params) + if @procedure.update_attributes(update_params) flash.now.notice = 'Modifications sauvegardées' else flash.now.notice = 'Une erreur est survenue' diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index 511024182..85801ee28 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -105,7 +105,7 @@ class Admin::ProceduresController < AdminController def update @procedure = current_administrateur.procedures.find(params[:id]) - if !@procedure.update(procedure_params) + if !@procedure.update_attributes(procedure_params) flash.now.alert = @procedure.errors.full_messages return render 'edit' end diff --git a/app/controllers/admin/types_de_champ_controller.rb b/app/controllers/admin/types_de_champ_controller.rb index 256e06220..b05c52fdd 100644 --- a/app/controllers/admin/types_de_champ_controller.rb +++ b/app/controllers/admin/types_de_champ_controller.rb @@ -15,7 +15,7 @@ class Admin::TypesDeChampController < AdminController end def update - @procedure.update(TypesDeChampService.create_update_procedure_params params) + @procedure.update_attributes(TypesDeChampService.create_update_procedure_params params) create_facade flash.now.notice = 'Modifications sauvegardées' render 'show', format: :js diff --git a/app/controllers/admin/types_de_champ_private_controller.rb b/app/controllers/admin/types_de_champ_private_controller.rb index 320e0064e..a4cea0946 100644 --- a/app/controllers/admin/types_de_champ_private_controller.rb +++ b/app/controllers/admin/types_de_champ_private_controller.rb @@ -16,7 +16,7 @@ class Admin::TypesDeChampPrivateController < AdminController end def update - @procedure.update(TypesDeChampService.create_update_procedure_params params, true) + @procedure.update_attributes(TypesDeChampService.create_update_procedure_params params, true) create_facade flash.now.notice = 'Modifications sauvegardées' render 'admin/types_de_champ/show', format: :js diff --git a/app/controllers/new_gestionnaire/avis_controller.rb b/app/controllers/new_gestionnaire/avis_controller.rb index 814f3c4ba..9e1257063 100644 --- a/app/controllers/new_gestionnaire/avis_controller.rb +++ b/app/controllers/new_gestionnaire/avis_controller.rb @@ -32,7 +32,7 @@ module NewGestionnaire end def update - avis.update(avis_params) + avis.update_attributes(avis_params) flash.notice = 'Votre réponse est enregistrée.' redirect_to instruction_gestionnaire_avis_path(avis) end diff --git a/app/controllers/new_gestionnaire/dossiers_controller.rb b/app/controllers/new_gestionnaire/dossiers_controller.rb index c91e0d2b5..f1a130b41 100644 --- a/app/controllers/new_gestionnaire/dossiers_controller.rb +++ b/app/controllers/new_gestionnaire/dossiers_controller.rb @@ -57,13 +57,13 @@ module NewGestionnaire end def archive - dossier.update(archived: true) + dossier.update_attributes(archived: true) current_gestionnaire.unfollow(dossier) redirect_back(fallback_location: gestionnaire_procedures_url) end def unarchive - dossier.update(archived: false) + dossier.update_attributes(archived: false) redirect_back(fallback_location: gestionnaire_procedures_url) end @@ -166,7 +166,7 @@ module NewGestionnaire def update_annotations dossier = current_gestionnaire.dossiers.includes(champs_private: :type_de_champ).find(params[:dossier_id]) # FIXME: add attachements validation, cf. Champ#piece_justificative_file_errors - dossier.update(champs_private_params) + dossier.update_attributes(champs_private_params) redirect_to annotations_privees_gestionnaire_dossier_path(procedure, dossier) end diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb index a7b557d54..7b4d958a6 100644 --- a/app/controllers/new_gestionnaire/procedures_controller.rb +++ b/app/controllers/new_gestionnaire/procedures_controller.rb @@ -109,11 +109,11 @@ module NewGestionnaire c.to_json end - procedure_presentation.update(displayed_fields: fields) + procedure_presentation.update_attributes(displayed_fields: fields) current_sort = procedure_presentation.sort if !values.include?("#{current_sort['table']}/#{current_sort['column']}") - procedure_presentation.update(sort: Procedure.default_sort) + procedure_presentation.update_attributes(sort: Procedure.default_sort) end redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) @@ -136,7 +136,7 @@ module NewGestionnaire 'order' => order }.to_json - procedure_presentation.update(sort: sort) + procedure_presentation.update_attributes(sort: sort) redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) end @@ -154,7 +154,7 @@ module NewGestionnaire 'value' => params[:value] } - procedure_presentation.update(filters: filters.to_json) + procedure_presentation.update_attributes(filters: filters.to_json) end redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) @@ -168,7 +168,7 @@ module NewGestionnaire filters[statut] = filters[statut] - [filter_to_remove] - procedure_presentation.update(filters: filters.to_json) + procedure_presentation.update_attributes(filters: filters.to_json) redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) end @@ -245,6 +245,7 @@ module NewGestionnaire .includes(filter['table']) .where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%") end + end.pluck(:id) end.reduce(:&) end diff --git a/app/controllers/users/carte_controller.rb b/app/controllers/users/carte_controller.rb index f41d55bf2..8ef350893 100644 --- a/app/controllers/users/carte_controller.rb +++ b/app/controllers/users/carte_controller.rb @@ -22,7 +22,7 @@ class Users::CarteController < UsersController ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs] end - dossier.update(json_latlngs: params[:json_latlngs]) + dossier.update_attributes(json_latlngs: params[:json_latlngs]) redirect_to modifier_dossier_path(dossier) end diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 7af0fc9e0..121693b89 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -156,7 +156,7 @@ class Users::DossiersController < UsersController flash.alert = individual_errors redirect_to users_dossier_path(id: @facade.dossier.id) else - if !Dossier.find(@facade.dossier.id).update update_params_with_formatted_birthdate + if !Dossier.find(@facade.dossier.id).update_attributes update_params_with_formatted_birthdate flash.alert = @facade.dossier.errors.full_messages return redirect_to users_dossier_path(id: @facade.dossier.id) @@ -259,7 +259,7 @@ class Users::DossiersController < UsersController end def update_current_user_siret! siret - current_user.update(siret: siret) + current_user.update_attributes(siret: siret) end def facade id = params[:id] diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 0ac64ed65..b2b6f3391 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -20,7 +20,7 @@ class Users::SessionsController < Sessions::SessionsController try_to_authenticate(Administrateur, remember_me) if user_signed_in? - current_user.update(loged_in_with_france_connect: '') + current_user.update_attributes(loged_in_with_france_connect: '') end if user_signed_in? @@ -44,7 +44,7 @@ class Users::SessionsController < Sessions::SessionsController if user_signed_in? connected_with_france_connect = current_user.loged_in_with_france_connect - current_user.update(loged_in_with_france_connect: '') + current_user.update_attributes(loged_in_with_france_connect: '') sign_out :user diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index f1f2e379b..7048cb473 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -26,7 +26,7 @@ class Administrateur < ActiveRecord::Base end def renew_api_token - update(api_token: generate_api_token) + update_attributes(api_token: generate_api_token) end def registration_state diff --git a/app/models/procedure.rb b/app/models/procedure.rb index e750d7a21..5441fbc3d 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -42,7 +42,7 @@ class Procedure < ActiveRecord::Base def hide! now = DateTime.now - self.update(hidden_at: now) + self.update_attributes(hidden_at: now) self.dossiers.update_all(hidden_at: now) end @@ -89,8 +89,8 @@ class Procedure < ActiveRecord::Base false else - list[index_of_first_element].update(order_place: index_of_first_element + 1) - list[index_of_first_element + 1].update(order_place: index_of_first_element) + list[index_of_first_element].update_attributes(order_place: index_of_first_element + 1) + list[index_of_first_element + 1].update_attributes(order_place: index_of_first_element) true end @@ -129,7 +129,7 @@ class Procedure < ActiveRecord::Base end def publish!(path) - self.update!({ published_at: Time.now, archived_at: nil }) + self.update_attributes!({ published_at: Time.now, archived_at: nil }) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) end @@ -138,7 +138,7 @@ class Procedure < ActiveRecord::Base end def archive - self.update!(archived_at: Time.now) + self.update_attributes!(archived_at: Time.now) end def archivee? diff --git a/app/models/user.rb b/app/models/user.rb index 362eba6b7..16d5edca6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -25,7 +25,7 @@ class User < ActiveRecord::Base if user.nil? return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret) else - user.update(siret: siret) + user.update_attributes(siret: siret) user end end diff --git a/bin/bundle b/bin/bundle index f19acf5b5..66e9889e8 100755 --- a/bin/bundle +++ b/bin/bundle @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) load Gem.bin_path('bundler', 'bundle') diff --git a/bin/setup b/bin/setup index 04e288aec..468646cd1 100755 --- a/bin/setup +++ b/bin/setup @@ -4,7 +4,7 @@ require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../', __dir__) +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") diff --git a/bin/update b/bin/update index f02dfd611..a8e4462f2 100755 --- a/bin/update +++ b/bin/update @@ -4,7 +4,7 @@ require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../', __dir__) +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") diff --git a/config/application.rb b/config/application.rb index 7d54fd628..1d381b4b1 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,4 +1,4 @@ -require File.expand_path('boot', __dir__) +require File.expand_path('../boot', __FILE__) require 'rails/all' diff --git a/config/boot.rb b/config/boot.rb index 30f5120df..6b750f00b 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,3 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/environment.rb b/config/environment.rb index 0b8bdd828..ee8d90dc6 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require File.expand_path('application', __dir__) +require File.expand_path('../application', __FILE__) # Initialize the Rails application. Rails.application.initialize! diff --git a/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb b/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb index e1392c812..db9d9289a 100644 --- a/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb +++ b/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb @@ -2,7 +2,7 @@ class LinkTypePieceJointeToFormulaire < ActiveRecord::Migration # def up # TypePieceJointe.find_each do |type_piece_jointe| # forms = Formulaire.find_by_demarche_id(type_piece_jointe.CERFA) - # type_piece_jointe.update(formulaire_id: forms.id) if forms.present? + # type_piece_jointe.update_attributes(formulaire_id: forms.id) if forms.present? # end # end end diff --git a/db/migrate/20160120094750_create_france_connect_information.rb b/db/migrate/20160120094750_create_france_connect_information.rb index 2178c02eb..88f7f1128 100644 --- a/db/migrate/20160120094750_create_france_connect_information.rb +++ b/db/migrate/20160120094750_create_france_connect_information.rb @@ -46,7 +46,7 @@ class CreateFranceConnectInformation < ActiveRecord::Migration add_column :users, :france_connect_particulier_id, :string FranceConnectInformation.all.each do |fci| - User.find(fci.user_id).update({ + User.find(fci.user_id).update_attributes({ gender: fci.gender, given_name: fci.given_name, family_name: fci.family_name, diff --git a/spec/controllers/admin/attestation_templates_controller_spec.rb b/spec/controllers/admin/attestation_templates_controller_spec.rb index 6939e477e..ed545032e 100644 --- a/spec/controllers/admin/attestation_templates_controller_spec.rb +++ b/spec/controllers/admin/attestation_templates_controller_spec.rb @@ -140,7 +140,7 @@ describe Admin::AttestationTemplatesController, type: :controller do context 'when something wrong happens in the attestation template creation' do before do - expect_any_instance_of(AttestationTemplate).to receive(:update).and_return(false) + expect_any_instance_of(AttestationTemplate).to receive(:update_attributes).and_return(false) expect_any_instance_of(AttestationTemplate).to receive(:errors) .and_return(double(full_messages: ['nop'])) diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index 2e6c47bfd..f32dbaf68 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -145,7 +145,7 @@ describe InvitesController, type: :controller do context 'when user has access to dossier' do before do - dossier.update(user: signed_in_profile) + dossier.update_attributes(user: signed_in_profile) end it { expect { subject }.to change(InviteUser, :count).by(1) } diff --git a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb index 6f8c67cb4..c6338051f 100644 --- a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb +++ b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb @@ -94,7 +94,7 @@ describe NewGestionnaire::DossiersController, type: :controller do describe '#unarchive' do before do - dossier.update(archived: true) + dossier.update_attributes(archived: true) patch :unarchive, params: { procedure_id: procedure.id, dossier_id: dossier.id } dossier.reload end diff --git a/spec/controllers/new_user/dossiers_controller_spec.rb b/spec/controllers/new_user/dossiers_controller_spec.rb index 2557d79ec..68c68a9b1 100644 --- a/spec/controllers/new_user/dossiers_controller_spec.rb +++ b/spec/controllers/new_user/dossiers_controller_spec.rb @@ -122,7 +122,7 @@ describe NewUser::DossiersController, type: :controller do end context 'when the dossier is for an personne physique' do - before { dossier.procedure.update(for_individual: true) } + before { dossier.procedure.update_attributes(for_individual: true) } it { is_expected.to redirect_to(identite_dossier_path(dossier)) } end @@ -215,7 +215,7 @@ describe NewUser::DossiersController, type: :controller do let(:value) { nil } before do - first_champ.type_de_champ.update(mandatory: true, libelle: 'l') + first_champ.type_de_champ.update_attributes(mandatory: true, libelle: 'l') allow(PiecesJustificativesService).to receive(:missing_pj_error_messages).and_return(['pj']) subject diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb index 2f581ec7f..cb0daa0de 100644 --- a/spec/controllers/users/sessions_controller_spec.rb +++ b/spec/controllers/users/sessions_controller_spec.rb @@ -158,7 +158,7 @@ describe Users::SessionsController, type: :controller do end it 'signs user out from france connect' do - user.update(loged_in_with_france_connect: 'particulier') + user.update_attributes(loged_in_with_france_connect: 'particulier') sign_in user delete :destroy expect(@response.headers["Location"]).to eq(FRANCE_CONNECT[:particulier][:logout_endpoint]) diff --git a/spec/features/new_gestionnaire/procedure_filters_spec.rb b/spec/features/new_gestionnaire/procedure_filters_spec.rb index dcbc3481c..332142f19 100644 --- a/spec/features/new_gestionnaire/procedure_filters_spec.rb +++ b/spec/features/new_gestionnaire/procedure_filters_spec.rb @@ -9,7 +9,7 @@ feature "procedure filters" do let!(:new_unfollow_dossier_2) { create(:dossier, procedure: procedure, state: "en_instruction") } before do - champ.update(value: "Mon champ rempli") + champ.update_attributes(value: "Mon champ rempli") login_as gestionnaire, scope: :gestionnaire visit gestionnaire_procedure_path(procedure) end diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index 5b5b1160a..6fb94c9fc 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -32,7 +32,7 @@ describe Administrateur, type: :model do administrateur = create(:administrateur) user = create(:user, email: administrateur.email) - administrateur.update(email: 'whoami@plop.com', password: 'super secret') + administrateur.update_attributes(email: 'whoami@plop.com', password: 'super secret') user.reload expect(user.email).to eq('whoami@plop.com') @@ -43,7 +43,7 @@ describe Administrateur, type: :model do administrateur = create(:administrateur) gestionnaire = create(:gestionnaire, email: administrateur.email) - administrateur.update(email: 'whoami@plop.com', password: 'super secret') + administrateur.update_attributes(email: 'whoami@plop.com', password: 'super secret') gestionnaire.reload expect(gestionnaire.email).to eq('whoami@plop.com') diff --git a/spec/models/attestation_template_spec.rb b/spec/models/attestation_template_spec.rb index 1cd889aa5..680c72ef2 100644 --- a/spec/models/attestation_template_spec.rb +++ b/spec/models/attestation_template_spec.rb @@ -163,12 +163,12 @@ describe AttestationTemplate, type: :model do dossier.champs .select { |champ| champ.libelle == 'libelleA' } .first - .update(value: 'libelle1') + .update_attributes(value: 'libelle1') dossier.champs .select { |champ| champ.libelle == 'libelleB' } .first - .update(value: 'libelle2') + .update_attributes(value: 'libelle2') end it { expect(view_args[:title]).to eq('title libelle1') } diff --git a/spec/models/concern/tags_substitution_concern_spec.rb b/spec/models/concern/tags_substitution_concern_spec.rb index 7a2d2e52e..42cc2bd44 100644 --- a/spec/models/concern/tags_substitution_concern_spec.rb +++ b/spec/models/concern/tags_substitution_concern_spec.rb @@ -99,12 +99,12 @@ describe TagsSubstitutionConcern, type: :model do dossier.champs .select { |champ| champ.libelle == 'libelleA' } .first - .update(value: 'libelle1') + .update_attributes(value: 'libelle1') dossier.champs .select { |champ| champ.libelle == 'libelleB' } .first - .update(value: 'libelle2') + .update_attributes(value: 'libelle2') end it { is_expected.to eq('libelle1 libelle2') } @@ -129,7 +129,7 @@ describe TagsSubstitutionConcern, type: :model do let(:template) { '--libelleA--' } context 'and its value in the dossier is not nil' do - before { dossier.champs_private.first.update(value: 'libelle1') } + before { dossier.champs_private.first.update_attributes(value: 'libelle1') } it { is_expected.to eq('libelle1') } end @@ -152,7 +152,7 @@ describe TagsSubstitutionConcern, type: :model do context 'champs publics are valid tags' do let(:types_de_champ) { [create(:type_de_champ, libelle: 'libelleA')] } - before { dossier.champs.first.update(value: 'libelle1') } + before { dossier.champs.first.update_attributes(value: 'libelle1') } it { is_expected.to eq('libelle1') } end @@ -174,12 +174,12 @@ describe TagsSubstitutionConcern, type: :model do dossier.champs .select { |champ| champ.type_champ == 'date' } .first - .update(value: '2017-04-15') + .update_attributes(value: '2017-04-15') dossier.champs .select { |champ| champ.type_champ == 'datetime' } .first - .update(value: '2017-09-13 09:00') + .update_attributes(value: '2017-09-13 09:00') end it { is_expected.to eq('15/04/2017 2017-09-13 09:00') } @@ -220,7 +220,7 @@ describe TagsSubstitutionConcern, type: :model do end context "match breaking and non breaking spaces" do - before { dossier.champs.first.update(value: 'valeur') } + before { dossier.champs.first.update_attributes(value: 'valeur') } shared_examples "treat all kinds of space as equivalent" do context 'and the champ has a non breaking space' do diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 47bcd0a16..4dc9e35f0 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -112,7 +112,7 @@ describe Dossier do it 'does not create default champs' do expect(subject).not_to receive(:build_default_champs) - subject.update(state: 'en_construction') + subject.update_attributes(state: 'en_construction') end end end diff --git a/spec/models/gestionnaire_spec.rb b/spec/models/gestionnaire_spec.rb index 9d13d1042..5f94afe50 100644 --- a/spec/models/gestionnaire_spec.rb +++ b/spec/models/gestionnaire_spec.rb @@ -116,7 +116,7 @@ describe Gestionnaire, type: :model do gestionnaire = create(:gestionnaire) user = create(:user, email: gestionnaire.email) - gestionnaire.update(email: 'whoami@plop.com', password: 'super secret') + gestionnaire.update_attributes(email: 'whoami@plop.com', password: 'super secret') user.reload expect(user.email).to eq('whoami@plop.com') @@ -127,7 +127,7 @@ describe Gestionnaire, type: :model do gestionnaire = create(:gestionnaire) admin = create(:administrateur, email: gestionnaire.email) - gestionnaire.update(email: 'whoami@plop.com', password: 'super secret') + gestionnaire.update_attributes(email: 'whoami@plop.com', password: 'super secret') admin.reload expect(admin.email).to eq('whoami@plop.com') diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 4cd13e70f..827205514 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -352,16 +352,16 @@ describe Procedure do procedure.types_de_champ_private << tcp_2 << tcp_1 dossier.build_default_champs - dossier.champs.find_by(type_de_champ: tc_1).update(value: "value 1") - dossier.champs.find_by(type_de_champ: tc_2).update(value: "value 2") - dossier.champs_private.find_by(type_de_champ: tcp_1).update(value: "private value 1") - dossier.champs_private.find_by(type_de_champ: tcp_2).update(value: "private value 2") + dossier.champs.find_by(type_de_champ: tc_1).update_attributes(value: "value 1") + dossier.champs.find_by(type_de_champ: tc_2).update_attributes(value: "value 2") + dossier.champs_private.find_by(type_de_champ: tcp_1).update_attributes(value: "private value 1") + dossier.champs_private.find_by(type_de_champ: tcp_2).update_attributes(value: "private value 2") dossier2.build_default_champs - dossier2.champs.find_by(type_de_champ: tc_1).update(value: "value 1") - dossier2.champs.find_by(type_de_champ: tc_2).update(value: "value 2") - dossier2.champs_private.find_by(type_de_champ: tcp_1).update(value: "private value 1") - dossier2.champs_private.find_by(type_de_champ: tcp_2).update(value: "private value 2") + dossier2.champs.find_by(type_de_champ: tc_1).update_attributes(value: "value 1") + dossier2.champs.find_by(type_de_champ: tc_2).update_attributes(value: "value 2") + dossier2.champs_private.find_by(type_de_champ: tcp_1).update_attributes(value: "private value 1") + dossier2.champs_private.find_by(type_de_champ: tcp_2).update_attributes(value: "private value 2") end it { expect(subject[:headers].index(tc_1.libelle.parameterize.underscore.to_sym)).to be < subject[:headers].index(tc_2.libelle.parameterize.underscore.to_sym) } diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 848909a51..58bd78bc2 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -55,7 +55,7 @@ describe User, type: :model do user = create(:user) gestionnaire = create(:gestionnaire, email: user.email) - user.update(email: 'whoami@plop.com', password: 'super secret') + user.update_attributes(email: 'whoami@plop.com', password: 'super secret') gestionnaire.reload expect(gestionnaire.email).to eq('whoami@plop.com') @@ -66,7 +66,7 @@ describe User, type: :model do user = create(:user) admin = create(:administrateur, email: user.email) - user.update(email: 'whoami@plop.com', password: 'super secret') + user.update_attributes(email: 'whoami@plop.com', password: 'super secret') admin.reload expect(admin.email).to eq('whoami@plop.com') diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index da5f1b49d..59725df09 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,7 +1,7 @@ # This file is copied to spec/ when you run 'rails generate rspec:install' ENV['RAILS_ENV'] ||= 'test' require 'spec_helper' -require File.expand_path('../config/environment', __dir__) +require File.expand_path('../../config/environment', __FILE__) require 'rspec/rails' # Add additional requires below this line. Rails is not loaded until this point! diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a0583ada3..266047f62 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -19,7 +19,7 @@ ENV['RAILS_ENV'] ||= 'test' -require File.expand_path('../config/environment', __dir__) +require File.expand_path('../../config/environment', __FILE__) require 'rspec/rails' require 'capybara/rspec' require 'database_cleaner' diff --git a/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb b/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb index a28649fe1..73830217c 100644 --- a/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb +++ b/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb @@ -6,7 +6,7 @@ describe 'new_gestionnaire/dossiers/identite_entreprise.html.haml', type: :view let(:entreprise) { rna_information.entreprise } context "date_publication is missing on rna" do - before { rna_information.update(date_publication: nil) } + before { rna_information.update_attributes(date_publication: nil) } it "can render without error" do expect(rendered).to include("Date de publication :") From dc3d1d10a1e8c5d9b02d1afaba0f9497cc24a594 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 15:32:29 +0100 Subject: [PATCH 05/41] Revert "Bump default gems" This reverts commit 1030a4ae7d9b35d12f8061ac349c4542c9c3b675. --- Gemfile.lock | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 839f36379..521d9f5cd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,6 @@ GEM momentjs-rails (~> 2.8) sass-rails (~> 5.0) selectize-rails (~> 0.6) - aes_key_wrap (1.0.1) apipie-rails (0.5.6) rails (>= 4.1) archive-zip (0.11.0) @@ -116,7 +115,7 @@ GEM bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) brakeman (4.1.1) - browser (2.5.3) + browser (2.5.2) builder (3.2.3) byebug (10.0.0) capybara (2.18.0) @@ -138,7 +137,7 @@ GEM carrierwave-i18n (0.2.0) case_transform (0.2) activesupport - chartkick (2.3.2) + chartkick (2.2.5) childprocess (0.8.0) ffi (~> 1.0, >= 1.0.11) chromedriver-helper (1.2.0) @@ -425,9 +424,8 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (2.1.0) - json-jwt (1.9.2) + json-jwt (1.8.3) activesupport - aes_key_wrap bindata securecompare url_safe_base64 @@ -513,9 +511,10 @@ GEM oauth2 (~> 1.1) omniauth (~> 1.2) open4 (1.3.4) - openid_connect (1.1.5) + openid_connect (1.1.4) activemodel attr_required (>= 1.0.0) + json (>= 1.4.3) json-jwt (>= 1.5.0) rack-oauth2 (>= 1.6.1) swd (>= 1.0.0) @@ -523,7 +522,7 @@ GEM validate_email validate_url webfinger (>= 1.0.1) - openstack (3.3.17) + openstack (3.3.15) json orm_adapter (0.5.0) parallel (1.12.1) @@ -550,11 +549,11 @@ GEM rack rack-mini-profiler (0.10.7) rack (>= 1.2.0) - rack-oauth2 (1.9.0) + rack-oauth2 (1.8.2) activesupport attr_required httpclient - json-jwt (>= 1.9.0) + json-jwt rack rack-protection (2.0.1) rack From 14bbce0b595641dff6903a0f8a299b608c571642 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 15:33:21 +0100 Subject: [PATCH 06/41] Bump openid_connect --- Gemfile.lock | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 521d9f5cd..3ed23468d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,6 +93,7 @@ GEM momentjs-rails (~> 2.8) sass-rails (~> 5.0) selectize-rails (~> 0.6) + aes_key_wrap (1.0.1) apipie-rails (0.5.6) rails (>= 4.1) archive-zip (0.11.0) @@ -424,8 +425,9 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (2.1.0) - json-jwt (1.8.3) + json-jwt (1.9.2) activesupport + aes_key_wrap bindata securecompare url_safe_base64 @@ -511,10 +513,9 @@ GEM oauth2 (~> 1.1) omniauth (~> 1.2) open4 (1.3.4) - openid_connect (1.1.4) + openid_connect (1.1.5) activemodel attr_required (>= 1.0.0) - json (>= 1.4.3) json-jwt (>= 1.5.0) rack-oauth2 (>= 1.6.1) swd (>= 1.0.0) @@ -549,11 +550,11 @@ GEM rack rack-mini-profiler (0.10.7) rack (>= 1.2.0) - rack-oauth2 (1.8.2) + rack-oauth2 (1.9.0) activesupport attr_required httpclient - json-jwt + json-jwt (>= 1.9.0) rack rack-protection (2.0.1) rack From 048c898b59a15931b551ba9643638431532fefd0 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 15:52:15 +0100 Subject: [PATCH 07/41] Bump openstack --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3ed23468d..653113281 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -523,7 +523,7 @@ GEM validate_email validate_url webfinger (>= 1.0.1) - openstack (3.3.15) + openstack (3.3.17) json orm_adapter (0.5.0) parallel (1.12.1) From 51988b7ccd3716f20c34258c29bb3bfeeaa94993 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 16:05:51 +0100 Subject: [PATCH 08/41] Bump browser --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 653113281..1a22f99e8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -116,7 +116,7 @@ GEM bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) brakeman (4.1.1) - browser (2.5.2) + browser (2.5.3) builder (3.2.3) byebug (10.0.0) capybara (2.18.0) From 06c34c49208c0845e55a8f3fec08707e508739f9 Mon Sep 17 00:00:00 2001 From: Guillaume RISCHARD Date: Tue, 6 Mar 2018 16:14:59 +0100 Subject: [PATCH 09/41] Optimisation des images --- .../images/browserstack-logo-600x315.png | Bin 31681 -> 13991 bytes app/assets/images/edit.png | Bin 542 -> 403 bytes .../images/footer/logo-beta-gouv-fr.svg | 2 +- app/assets/images/footer/logo-dinsic.svg | 2 +- app/assets/images/header/logo-ds.svg | 2 +- app/assets/images/icons/accept.svg | 2 +- app/assets/images/icons/attachment.svg | 2 +- app/assets/images/icons/edit-folder-blue.svg | 2 +- app/assets/images/icons/follow-folder.svg | 2 +- app/assets/images/icons/lock.svg | 2 +- app/assets/images/icons/printer.svg | 2 +- app/assets/images/icons/refuse.svg | 2 +- app/assets/images/icons/super-admin.svg | 2 +- .../images/icons/without-continuation.svg | 2 +- .../images/landing/features/collaborer.svg | 2 +- app/assets/images/landing/features/gerer.svg | 2 +- .../images/landing/features/messagerie.svg | 2 +- .../images/landing/hero/dematerialiser.svg | 2 +- .../images/landing/roles/administrations.svg | 2 +- app/assets/images/landing/roles/usagers.svg | 2 +- .../landing/testimonials/quotation-mark.svg | 2 +- app/assets/images/landing/users/ars-idf.jpg | Bin 35542 -> 31489 bytes app/assets/images/landing/users/cndp.jpg | Bin 29862 -> 25963 bytes .../images/landing/users/france-agrimer.jpg | Bin 23911 -> 20827 bytes app/assets/images/landing/users/mel.jpg | Bin 28424 -> 23792 bytes .../images/landing/users/prefecture-rhone.jpg | Bin 26707 -> 21776 bytes app/assets/images/login-with-fc-hover.svg | 2 +- app/assets/images/login-with-fc.svg | 2 +- app/assets/images/logo_mini_FC.png | Bin 25392 -> 25391 bytes app/assets/images/logos/logo-ds.png | Bin 37787 -> 9979 bytes .../mailer/gestionnaire_mailer/logo.png | Bin 4188 -> 2501 bytes app/assets/images/table/down_caret.svg | 2 +- app/assets/images/table/up_caret.svg | 2 +- spec/support/files/logo_test_procedure.png | Bin 53915 -> 35884 bytes 34 files changed, 23 insertions(+), 23 deletions(-) diff --git a/app/assets/images/browserstack-logo-600x315.png b/app/assets/images/browserstack-logo-600x315.png index 1aebf5c5030119535b1f750aa3ed0de22912dc18..9766b8fa437ce42c3bf9ff3815150cbb43830bec 100644 GIT binary patch literal 13991 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 delta 528 zcmV+r0`L8k1D*ts8Gi-<002AIl}Z2r0p&?VK~#7Fj8g-w98nZ~V|?4T{r@7Y?Wnd9 z)Q(xks_i(b+t_N{IH}#ncs(b1nXGqDa_8yt+&co$L=I?gZ+EyxB9Zw$Jw11Vhj2LD zUSD572!+1Z*4BaU?(Tv9{{BHI^*1&)MzJZ{n_5l}wlIF8hH zT^fcVP1BUNZA;!!;Pl<9RjUe%ii)<6jEro8vnO;gIXO9B;89jqR(>BE8oCT`*C>cg z&o??dJ1^4^%DW~eCSD_(SIA;lQ&ZDYp&$na2A+vDfZ_odK8i-8SA5@Rpf#}^NO*gr zbajZSMAX&Qoqqs94?>~PO_qi8+9gYt6gLAxfyS@ZUORpIw9XA`JA#OJ$H&L-xUMT( zT3R+QUAnXqWW6VevBt5HX}FK6f|UCt4~Dx1fPgpYXmD__KUHJ_qw3Pq($66BV}5?V zY-?-V8&m&vc7Sb+GnP_nJV1Gy=Xq?`KkTKZ|@tSfR?R6@3+sI zHLEg~L>2j(Wm%Ggl(yy==&>t}IYgYqz!;PBD%L`kkc5toj?0`vj?z?np4d~ S2QmNv00{s|MNUMnLSTZ$&H7vb diff --git a/app/assets/images/footer/logo-beta-gouv-fr.svg b/app/assets/images/footer/logo-beta-gouv-fr.svg index b393c3d34..9066bf73d 100644 --- a/app/assets/images/footer/logo-beta-gouv-fr.svg +++ b/app/assets/images/footer/logo-beta-gouv-fr.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/footer/logo-dinsic.svg b/app/assets/images/footer/logo-dinsic.svg index 85fa7e780..51700d0fb 100644 --- a/app/assets/images/footer/logo-dinsic.svg +++ b/app/assets/images/footer/logo-dinsic.svg @@ -1 +1 @@ -BM_DINSIC \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/header/logo-ds.svg b/app/assets/images/header/logo-ds.svg index 34edc3648..3fb67e18a 100644 --- a/app/assets/images/header/logo-ds.svg +++ b/app/assets/images/header/logo-ds.svg @@ -1 +1 @@ -logo vectorized copy \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/accept.svg b/app/assets/images/icons/accept.svg index 20d2da4e9..d79ff1e4c 100644 --- a/app/assets/images/icons/accept.svg +++ b/app/assets/images/icons/accept.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/attachment.svg b/app/assets/images/icons/attachment.svg index eb8c18b2c..ccbfdfed7 100644 --- a/app/assets/images/icons/attachment.svg +++ b/app/assets/images/icons/attachment.svg @@ -1 +1 @@ -ic_attach \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/edit-folder-blue.svg b/app/assets/images/icons/edit-folder-blue.svg index d4a5fa68e..6e6e63856 100644 --- a/app/assets/images/icons/edit-folder-blue.svg +++ b/app/assets/images/icons/edit-folder-blue.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/follow-folder.svg b/app/assets/images/icons/follow-folder.svg index b3ea05d70..6c91a9935 100644 --- a/app/assets/images/icons/follow-folder.svg +++ b/app/assets/images/icons/follow-folder.svg @@ -1 +1 @@ -ic_follow_folder \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/lock.svg b/app/assets/images/icons/lock.svg index 2ed46fdb7..759bc68bf 100644 --- a/app/assets/images/icons/lock.svg +++ b/app/assets/images/icons/lock.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/app/assets/images/icons/printer.svg b/app/assets/images/icons/printer.svg index 4f7ad96f3..af978e7a8 100644 --- a/app/assets/images/icons/printer.svg +++ b/app/assets/images/icons/printer.svg @@ -1 +1 @@ -printer \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/refuse.svg b/app/assets/images/icons/refuse.svg index f03174094..e3d109ff9 100644 --- a/app/assets/images/icons/refuse.svg +++ b/app/assets/images/icons/refuse.svg @@ -1 +1 @@ -close \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/super-admin.svg b/app/assets/images/icons/super-admin.svg index 698a7b108..c19386f60 100644 --- a/app/assets/images/icons/super-admin.svg +++ b/app/assets/images/icons/super-admin.svg @@ -1 +1 @@ -Shape \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icons/without-continuation.svg b/app/assets/images/icons/without-continuation.svg index 1be65ca77..1fdd67fec 100644 --- a/app/assets/images/icons/without-continuation.svg +++ b/app/assets/images/icons/without-continuation.svg @@ -1 +1 @@ -without-continuation \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/features/collaborer.svg b/app/assets/images/landing/features/collaborer.svg index f5fe6cf85..97decf2e5 100755 --- a/app/assets/images/landing/features/collaborer.svg +++ b/app/assets/images/landing/features/collaborer.svg @@ -1 +1 @@ -08D2E231-4C84-4B79-AC9D-982A43B5F62D \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/features/gerer.svg b/app/assets/images/landing/features/gerer.svg index 6372bf120..129f5ed39 100755 --- a/app/assets/images/landing/features/gerer.svg +++ b/app/assets/images/landing/features/gerer.svg @@ -1 +1 @@ -48989501-DD47-4082-8A9E-1AFAB7A24CFE \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/features/messagerie.svg b/app/assets/images/landing/features/messagerie.svg index dd1b15383..89b9f47f0 100644 --- a/app/assets/images/landing/features/messagerie.svg +++ b/app/assets/images/landing/features/messagerie.svg @@ -1 +1 @@ -Bubble \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/hero/dematerialiser.svg b/app/assets/images/landing/hero/dematerialiser.svg index e7e51acb7..7fd664d02 100755 --- a/app/assets/images/landing/hero/dematerialiser.svg +++ b/app/assets/images/landing/hero/dematerialiser.svg @@ -1 +1 @@ -0EA652BC-3A4A-4613-BA33-535DF72E7337 \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/roles/administrations.svg b/app/assets/images/landing/roles/administrations.svg index 56c94b594..15ba5ede6 100644 --- a/app/assets/images/landing/roles/administrations.svg +++ b/app/assets/images/landing/roles/administrations.svg @@ -1 +1 @@ -Bis \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/roles/usagers.svg b/app/assets/images/landing/roles/usagers.svg index 0ee29aa02..caf2a9926 100644 --- a/app/assets/images/landing/roles/usagers.svg +++ b/app/assets/images/landing/roles/usagers.svg @@ -1 +1 @@ -usager \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/testimonials/quotation-mark.svg b/app/assets/images/landing/testimonials/quotation-mark.svg index ed18e9e01..e391879e6 100644 --- a/app/assets/images/landing/testimonials/quotation-mark.svg +++ b/app/assets/images/landing/testimonials/quotation-mark.svg @@ -1 +1 @@ -Slice \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/landing/users/ars-idf.jpg b/app/assets/images/landing/users/ars-idf.jpg index 50a394266ac71de50dc0b8d060038225cf799eda..e3ca621695fa2ae391debdaa0eccf80017fe1ad1 100644 GIT binary patch delta 28759 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 JcHY00{{wj|`?ml9 literal 35542 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 literal 29862 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 mR1BsY9*&zJjDkb8WfwVAle&74&cXlrJULT& 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 HcH;j5L&m_} diff --git a/app/assets/images/landing/users/mel.jpg b/app/assets/images/landing/users/mel.jpg index f8ddb2d415b2ef1faba813d099d9d7d86681322f..4c27a98bcd1f0dbce00684babed13e3fc6ca2ecf 100644 GIT binary patch literal 23792 zcmeFZWk4OxvM4$W_uvk}-QC^YJp^00y9Wr6;O@cQ-3h_nAvhsu&;$>jx03JM`|N%0 zdH3Fb@5kFS!*oqeb#-;snwsja9)2zV`U;>c$jHk8AP@k^L3ZHR7BC|1ZDR=l%E|x( z000O8JO~qjhCm?54uA*&*gr4;n1P7?3EP6`{-%L~(69rLGw=fP=L+KZ17kzrkaso! z%-?lWA?5E4(&BHff0b%B-e7wNQ+Fp{|SHi&HC3C;+3_#yR!f*tD_r>sfCjnn8n=5fz{j8nU$S|jTI0Q^>#Kj zw*$MAnSrfr9EB-W?smcyddg~Kl1{E*GHw#fy{0$<>OLou8kdm5qaygM%4D!R+Sa=x*xG?C3`M4-Qgb zH*;4TXLlPXN3!1>P0gG<+=VG1E&nBwgY!Sx{*QhC2cd=eKk1x3T9YyHD6e-TN#f`402%gM=JnBw29 z`CD=ea{)IGGh48^``?O?FtuWZfUN&^gY|cZ{-uMz34Ws>TKf(DQ~e@j|JnYdf&XaW zKN|Rt2L7Xg|7hU6mB&=*JG` z0Wup@JwPK#lo$}xAs+;?6vPbz5pl&{-nblI?hIUbKP;NpTLbvU^`8k9RB%$ZWg9I* zV}EExJO}7KurD_OAS0WjlUs*VdG1=;@cN0+v}fnGwcj_O5wrR%w_2O2F3aQj$z5OH z_3hXXo6SI^$x4T*zv8_q%Fy;3Ryhf#!6te}Mx4e6U`?;gm3{#d=}xEeBImN-M&;Ac z!~k1q&nsPJkywlCQqeENsym$nX?I2d6we_I0Gobd0KhoRDFMj8TSQnZN(XR%i;K}J z&jv94ZjJkbJz{Z~K5v@~hzcgUU*FD$uh-cT1)nodzrj>?* z7!YSId;ChMF)-;+cWq0gajP{=f!%NzAyqRy9uSd5j(L8mBS@P)Xdbw;EAk7#NbR=@ zECW#O7M>@Eg@s?Vdv7pq7>6%!C_jA9URNIbZ5|Sc_J14aU(5rK01XQV1A;>QV;m@S zh|xeK8W7WXya%B8i}L`z2TTCQO;HS}zo7yU_EUpE<|lFh#w6pz_1*n#fd3OyKm-7d z)|yh>2#$}q(O@SnB1DWGUXBM~y|O)>pQjXSH~GuMWuHCGe{+CFv**u$`jAy2?uruk zcryH(84M~{PYc7#l~E6`Z{+4wzT~&LRwe+_?10Os8H6`hG#}tIA>%K8fxG_mFA?vu zuAES1gjbjq@&H+`CII=RnHUgjV-4Vn3Rm(su%|C+T*^ArFYV1*W}0nCTl836lIJr7X)Au9%G4$1-`)~A>Lk9PO| z$K{2uM^$l%0eH&w%e2DG)zXa3c?tri=K`mSfX_l&&H&T~!!MwCnO8o%rMJeaHr?yE z)Jv6{5CDz3bfuA)e5AqmYR-|m^*FBd`ppMq)BMTC1Ir|vhG^r{LQt8t#}TE6wue6e za!WLjxKpT8NkV>3EdB6~5b`)>pJpn_iO_Vr;o(G2{Q^3M1`yu@|0?B25=dttT>tJ2 zM4Z1mbFSV4fTIwWXm_68D!VT!8`xo*8begRo_gu_vvcJ<>-3w!w~p>#fa!?K2Yi6w zt$_RK()4N4&f<-!vY{UTzCvj zEFLj*Y#cUDZgLJhG72imzr7L&0s8sQOI1!6vob<^pkiCwg`q9QNTG)Mzagq~H+`uE zQ94VD1W|MSU9-bq&Cij9Pj~aH^s^iuqV-#C5|^5$U0sDawO(yHy%=#s8r7}0MG`O?Kd!cc5nE#Loj zjP;?GQR*zxp*xAgwFU@?q&zVGX~`a?_*M_gRAU zQ~bN~=)nxVZ@nty^IP7mH@bfW9Z!$7V(cA8pL1+w z(GSnM@cwQ9oH`ZlI+705HGw37f^ zy~=LXHa&~MMv18cJl=4uN^7jBRionG)~%Ml-XOum(`Rn1sMD2N?ZYg)cfmp4jWxSs z5o+Q9GxP^%aA8pI(^rxR9{YLmJtzKz=eMp2AO`g$61m;`9}U*01v3WRGR{Ej1QEsz zY*V%yd*G8f=Ce?Wp&9_Tf6z_9=RCM-fZG~W`8QGv8`;^DX7b?eORLKT(-6$+OuGvAP-37w#kk(G1M?l(i@1cu zL0mPbp`n}yH#hLk?eSa{*06At>vouwJ^{>!XjgJ9Zfq%cEwv2l%HxE<=251xBl z-|JdX?cW6a^kF`qlY4AQsp_QmZ@L?JZgz8UI`4@21!VfqRlD=b(l&H=(2Sw;rG30W4Q0*+z&1kVc1iV<>271UNW&_}}w@ z0OSe=1HdH5qF{%me4kb3 zUG|hBEP0mmq#Ppj3lNJF700KXhVl6tCxj8gCYxLOhXFz&rNJS^J4tgF54*Q!pqJj= zbk@HBM)=-HUvCCkepMS2l_g!&!x#<*^$jJeN+wEw!02tWT`lYm zLkWZ=X<>8?D)&<%`MIyQexLdW7hCV#!{i+&zK-j zFx9e6B%$b7@0nS6+(n%~etzL&)k`>f`a+j0KOtwSXjV;h93Vx$xkRVv|ryluJ~bxC!xbi_ zGeio}DL!u_Mo-g5NdZLkr{TJv99flULolZ86~6a8m6WFoNbfKDAM4z6e-@#!|7%Zn zB4K|4j#ankVxLYw=aSN+sLu<^kIHptAKZFYY(JL>U7^9vYE8+cuO~+jphqYoQS%57K;h1T@)n9Tlh3u@!ZD7d8*Y+AVhy;=#l>RnZVeMrRxZl znUWZD;`749ga^}5F(TDXqKD|4!s{a^i}Z7?hlx-5&kApTMv+{LT(fHFt?GI5>!>M^ z6icZSg)#WDIMfoE<-GkoeR)odV6!OwD##@uU&GDH>nzIPOB8OT+@6}ZWlVq6(-Pr! zZqk#{FF+JSqsUJy^{guYQq~Xk(8$p56+0@WG=?joR`Msly~&HQ!YG?k6wMjm_UAzQ z1L5CQu&+pK-sHZwUZh`O#Gg~!o~Z52v?SJTB9@e!mCmJ4p=O;DlygeeCe~Y1!7t6b zc6)sMxB3`8xw339%ZyQ{o~@JFn?1~Sp8vbYYe7gWa4aYPRyDBXh?GGTtg042(0KCw zt0kosmzy({%gS1uBfo@`S}rGXK5v<7My#GU&xDT9!q0Yfw^_?N!dJ0D@vJrc3OcfC zV{5RVRq~#!{+(VeYk_uRm`?c!Yu`MX<{I&meGJPt^e%l5@uP(Qglp)Rd=blkYv50X zLCNW>Bn@ukG^!nkmv(~>E`7t=Qj%i-Yf{7woazF6&MXy-2~A(OfOv{Ek+&~2|$ zSv)uj9aFD~vLdahrHK6@o61K$+z=ywEI%yi$#A)R)t-t`}=zoXgI@|qr5ZqH7D;w5O6%p9@2xx zGa&y|F#nMu##3mOvRTIP%VL7ARn{^0!S}6*q9jIe0{xgp($VEWkUXJChRW80ohM$} zK}qSMye6sMZd08-Y%K*()?Ly^Bg-WvqRx4V6Tg)L9oo)Veieip-(P??7xwl_b%&+a zMBvs+WEn%%`FjII8?g2Ue=k=DbOn*f$5jtNFG1A=cKT_Z*&VSsd>a5q(d<++ZXT65)O9a z4(qE}DV0`-o0zi;qknL{Q|d587tMVqi*`D$i>N5xHG1h3y?@d!?*MU?>?T!Ze8q|k4#z|4@X9G?I zDJz(#MDFG`h}0xiOhsOs4XfMyR7tkv4ZB1`(CU7jWp(0@ZZ?kVvNUVfv-Z54`&#<= z`_qjh7_(8|9>fFd_69gkTM~xr*C(ge3&W=y+2gCbh$0)}@iE?0t?hf?*qagPo9R1F zHjQajmJ=Wfxx)~Pozh3y_6U*Dp(aHsI;iA9EfOoA5l|z5_svH-jh;~|^HQ?K^H#KRyBbPM8xl$_ zjkJj+fmD+Yz4gu8*BA=aFEH&@l-BPkcwXdMsKu}K-d55Rgw+$oeP<@Zgx@4$`vrV} z8yP1GF0oTgV@YdW#aqH_a$+F*IWTCjde%0NG^lR|el@dxsPLajlG@Ti=F=F?z&7A1+!@h9ZQvs9ch8Ak5sM!ai4EpSNSg8;2LU);F9Rr=hcU zdB5B$3?R10VJ)X+7g!S?3a=VO5O|9tAvTqGW>p`s*p`%~G_|(U;il71#IT`7Mf57O zroF9`pE`nR-E~C@y>3;toxw`OfaFy(Y_3WIZwq}nk&Pn9$tux6FoQjhU6$ul#|M<+ zt^8#BpPm}_`Y8oFY4lruhaF2A;@v-KFYJu0wTCuRW@4ilo#=^0!_&iaT(212)Nuo( zrS^}_@+_G@I`A1RBY#j-xTzoYBw6~{+O&ie$EY<=Gnsm}8}9IVbZDi>%C4Qdx;jNH z62D<&JQZf-Bj9A$(y?WZh$BRx05{prg}~}*+8_HCnRK+`DBO-`-cRs+IxX(x>~g?) zHzW~WJ*Bn9wFmHPhm|`7U?0v=(0487U{>CylNfrhABZ0O`aO1}L;pR61%ih8=V%^; zK@PBstIwXJi~jeo|!oRW7H_h@i<3TI8oJg-0idEe_3<)?bYQ}=eKOHX@MU( z9-Bh{13H4k@g=%7V_*i#_c1KwhnDG4M58W+y__F9tSC05i_GORYw;-=+ z;72a`L-vIa{OWJ`WYR`sG?Cl}DoFoeSLI|kB9kFJK^K%KTioaEEf6a~icH3d0Lb~g zkQF$s1-B1iDzSeMAHy`s!<+%he%%{Sws|aiPp8F`P|Ektj|wCPLCc7&P50}@8;DW) z@*flLV7dh$dok@soozQ}Qa!`mNAPNVx6y$Lb&hWwF6LeB;x>3f)TuRwXor-mT3|Zo;=ROsDwoFCFJ5Hthr0)0f$7 zOdd%YF&oWZnv`%pJ*ORFQKIM6m5wtP&Sk~861ES)pB|_M?BnyEAfD=fvWhrPSF2z$ zpt}`kj+fEsv@dM>6o-@h$n8rR(g>TQKV+|61Ec=^;{06dFPGP|$@9WHbjH{We@xdWkw*dfOz zL`7+LODLq@UOFc)J(K^j5VTfkRPTH8c=r$^-vkN@g0nC9?scGaS`_t6%>MWui`oSW zsR&Fe>jX-v_bBcv!7tgBq$r*0a@Tz?g&hWz(g?iirI8T(XdO5y3eV;ap((@6nX&g% zku9JoIO;}G(()0mPx|!B`WJS2-;LuQMXhjJ7NC8VeWhDI3N~lq1j~)`mK9442q8-osiGYkp)*M4X#^;OGUr!v;G|D$v@}co^H3ln18s=okv&wkS&kzRO3aAl0- zRw%tD{%A;-uJNpItgTJ*0>z5+0b_CQ#IOkWGk&u!gCiU?%t>h-LCbqw8dGu@<(7ts zWch;7U=h@GYZn1LCy61mplDRt!~6r&8jvx{NYG2c*mB0t+Lb)%ALtu948m~)1<`h< z?#+diB9j@@hmx#pE-;YJ+4{^p#93r4dMm||0|ZU#*hX72(Z6EBhMUI^g$E+dZLN=> zkG(as260|c5a<*V)h#olw7huVX7r*0Kg|y_^_)u1RL|OC5{r@7be`uNbaPusyy5Qm zA{EcoKJh|6-fiSWpNPF;c92t}tXct~k-88`z(C%ZEM`r2ngNeqB0z~(Gvq@SPilB? zfw(U>`bmjCw$?JV{x(|=jwcir)o1AptE9k|ez*`Xu@GcaxKt=QC|h){AOcv!SK(AB zu3-l$UE(u&LfKpi4IdJd$qKHEJsPj|RvO_>(!feA3pl|xvL$ImSZ{CBkdPVpV~-j0 zBvBJ23@qLuBH}E5l7+ZACJX=snf8T+0m1w|MFtImf`J9Fa4<00xgaxSY~19yWRx77 z;u3#c9TW(J0QGdUY5WH2ZBZ@M+VS*PHTRUSh5;(ES4`l|<7&RK7pTQ5fXVt#SJ7nx@j=!DD&j?{e;lcLQ^x1== zyZF&C7TY6|Rh{bC;=`des_ght)#Ro0JJ!f=jcLijbQ&tPZ{IxaSO{WDA%+G&jv&?i zCBuz@C#Gv@-HQmm?=jdVmJh7dlT4q@((w1pGp{zmyOo^dxCxZ2BhfTrStnha;Qa^I z7Y-C+Ie5d(3HZv$yemH4Wjme<769%b@3jt9=NXJVNk3!3w96daWJ!q(+7&Q`b?8p(KOzh7AkC(@-`(3Ue7x)c`21oImeXSmwHP5?CoSqG;rmBWTTH)gM`^=8~Pga zB{NF>b|znn5k|YL$jI2PgI%$3vA(Eq?LO#My6UGG^cm$|3V$_jmbynCe@!hdHL|ww zG)}BMt_J?t7P~wZd>nuq4&i!j zF_f2-MyIx3F?yD9-~8H%hS76B<0$s}XzB}Cw%!l&K9*EG6TR2cJ={?m=C2;$eR=fl zqR>StBF310&;v^u@%@#S_8O!^YT_1#`A!0%G5jg$iaSVsGCvv0UP=Gn3-E@ccG zvw8m)fPDTwbYB}<{ZxfPMVTpH+FC}+?Q@T22R%333C6m(O(oi?)jJ~cAJD7yh-GoN zZy*nf3?#h;f`WpDLxzR@$5avq0F6lwLjeg2u*6Ig5@*plBs9!jf|KeS`#CkuT<5XL zC?)&YwA}I==FUQr3yQY>euNN3p`LyL(wEhd5T{g#HqZC$N<5>b1Zo+y4s+z$clY@*u3Y+9>rfY)KQcv#+SE;>83$JG`s)Kp^WS zMpzY2Zgl)o0bQT#6SD>XEPM7jO5{|qVxw88x$85IYDyPUvqSXyWP<#I%ol0B#_#hT zRr)_|HguRCn!Z=+Ec^mqa7)9V;(6oPuD#s0RR1U0Q}e(r-^%@miGWVn&R(J)s^aRo z+r$Q;3B;xMfRWxpx*c>#bS=~0Gy7TbCgw}pP+d;Z>KnYhvw-VQ zM>V{G=H5&%9{e`HSH8Ue*?BaD)1oNX=)&`UqUnz;gv?K+cgh zYWm|0y+tpmgu8~}8;qkPx8pGQ7od@XmxKZb_?N9Qd3*B|G9qr5*lxs@J}D@QyTB!* zatPb6+c4wkPrg;DXKo)RY&CEA1(fTYc)q@7*oYl}E~bvJAxn87C_ZL%wk2;}F@cN9 zpSbqHrP5Q7^*-gV7OIy|J{@TkT=;)5$z>#-NZP;rzxxTn(Z`|HVd1}eZS}-%pm>AV z-IR918emhEKEbp`Ftm|NlEtXtiZ3UWxsPhYx@>$u_qy)mbbV9ig&*0gdED*FMs>PL*ZnV_C5=g$+Fv0w{o|pIc>m zo#|jo%6W+p_@J^qDh;ZJNRsLhyrJgI+-HEzL8M?5^GXK>nuI;u)=+soNEXn4v=V|r z3)Z*6t=e$+1}5uV;Pj#u+`hVv)oiy~4W~4xKBZec(Cgm3b*X;AsVzyAaAd+Z9WyI+ zp$xC@uob>S2Y_|fEgVaBW2W?8>FK;{eaj3MvT(;RRBobO)FPa7h!*vE5dL_c;7n7q z)>+kt+S2qDT=jzbWNkv2boyMQ8KLXg*8Y`{uLfgPou5tckT?v8_AVY|L)Yb4}{hf>O`HnEjqx(`R!;|v7i zN;EI&)0qlc;%yYOsK?`2zP96M6^CQQld??QEHCk?M}{-?nsKuoB|+l`Xd$|~zw=(~ zd!6)oJP3NxvPth{e{&Sp$*7Ag?dh5U_jtcEIFyU-H=^X~niY@se+fd~7?TDdK|8>F4j^%wjq3 zXQ#9{rfAE~oKM>aS@PL$%1u^A*+$oM{4m|m)KEmvLs$*4q&LJa>rFnsEwMt>gy&zE zSv3;*EDB|75+*D#`;zcN5pDGCS)NH48CYPJXy*-~Mt4K$6V)Yv!d(c@elyyVg1y?t z7KUDm-sgh&b*<0?@KKzQ+o-gek*)Jsx?tIo|I!MDN#wJZaNaD{va=0LwcetNFgV0BN}>K4Geu|_6ev}KB#$N*Q{&ZK z7u-5|KJrM))gClUPedrSvvp&`edb>`eYgK=&4P><<8?hytw0Xt+yDHcu=veIM%B9) z@4bT#$ElL@)L|%^=0`po1n*IahGXrKAB$Whij;7$zopqiO`1p7f+h-!El_kWztJRr zw^Lg}Rz`}?2D3T!{xux7t=|CHeE{dL1Gy&@F&97D^_DJ)^9vp=LukdLU^Kj05c0`(YYej6hEe?3b9rcJLk`rb*!0dD!tbS1;K7C;+SIzg z52~gAe*PP&qna$3_yuSE;hc_L-hwh;d4%iyodud2XIr>165sK#zcC*M()&=((gSK5 zrh+XtbR$yB9uxr@L7>;@Eh^?&TXFs1&aw_GA)}SjmL#PzqL6==7hIG8emjXESf6m4 zy6!$e#IUE(d|7T6kB_fuKYrmZx|I{R|0~aY+&&X@>=icL!x@;GU#^($i_OSba+E8_ z$t{!VlGU^Mxb*NIO81m5jz+Wc(7K!>ktKO#|J$*Ibk+C;u|4TjG$H|8l-m*%l=t8H zW5mW97J;#M{ezc*?4whJ5s`4{uO<@oww8;hb~#pAgL@?{#th7ggyxAqsp+Mz=hrGd z?6CWwogJ#bDb-nX)@nJqxbv-k{$aYL`_Lfs3oz1t#$-t&X^hWSvQtzn++~}u)d=6{ zWcX1}6x*sPPh4!gq*%Rzq=268_{CsrK4EcnO?no?HnlAI(%Q+(?FUpWIZsxpY(AA? zXuIJIaTXyb&psx;t>og~4`EC;5qem3#o2c&x|F2F%xbp?_DSQh50MUSo+&<~b?Ig9 z$;-B890Uvr4n$GbNd(QMC}zY9T}^cRFChQAaZy;ONyl!Ak9t^QCWGS%Bd8)d~75 zV(5eK<-gB8BGHhmzmC7JNPlFcKP&`D$djiymB?imdbBavA4npXlP#aaL|gj2Ygu@l z(EhwI+ZtRMslS(QFDFxu@haW1&w&AB;E;ai8wx2ujxn#Mhr3HTiK=ZwyzKXZY7(#- zB=Hy#*@c~VK?WvIRY=3z8jyI`pdLNVcC(tB5jobr^O&o%N>iSxwSdCoz_M%PNo3a1 zfZwNKz*k`z1A9nLGZKq!bS@;|y~8;n+)}!4{%-|@)_SeGS(aIAj?y63l_hphIS#{R zei-L-{7^xXl8d$~A@XdGa)J?E`?mdm@t9C`_xej=t}bI+HV5KDpV^WeFC=^|yP7zI&t1<3O?i+a)Gbcdh>~3fOJs( z`O#8ss_9`V!loo9*AtQA>(nl?-6vUa{chm{Hpw)*aPRsbLzGk6N5IG^x<(+SA*g=P z)(<)b)(YEVsABvWqLPXg>z|P-^l}Daa=x9cPJcra8e^^RU!P$7SW~!f&Q^2N5tk8} z8PPY}qovH17$$r^2i>Um3qbLqdme;$n^1NByH7^AHr6e>&8vuu3`r=*4?9lyflc7~ z>$)rt?71clR`9SS{i&>>0Pis+bm-Z&KG;`{(S2CK2K++Zaj5*9QuH1~8M-mO(wsX* z?34W3{2d8Q)V)il=w0{gi}Sw=W17qw?$BWxQ+YKxnROx?beYe4=WU*zJEO8Ubb=X+ zy4$qR_N3O&&zxPgYbL*dKt>xop43jSk0tUg*Uc<3zKHXciZ-8=<20UUrGEiqrKrsf z+d@5Pa5XV3BSEndlHSbzLNM=Qw#BpXfP=AUq=zT{ISg^ zs>5KX&qR6s&icy}(VM0j~#+{0dteAK=^eVB24;IOXR4StsgzYsoB@-pH zIb=IDB{%KQIvlo6cDZ}ze=dyw?=JqX^EU&!ouVJ?d_=BY9X}_eHVvwqPCeZ>%cMUl zvzKkeX_i!DdtkD1*;g?glm?UF9t^xXMxLU-gjx52VJG?&SaaFvN@u+S+8!bTdGY1V z&3)6CCXTjc&@T!p$dl!0-kU>-+TjQzyUlcw%o;{DYg8oFzq2f$2hKb{%*oj=@_^n8 z$hSgAGDHSghS8Jd5Pu<%9Eqk{sFE!6vYy<1rXTlL#~0jjmn^=dZ^m~&e!{LUSzRhE zd1RNgNKA~`PnS0uEGmbVUyXddNLw$4znFc_Oel*i&p4=-GEXg}RPY8Bxhj#~M4piQ zB7`-B!M4JY7yP4iQD-dp=N!OUc2$rKo!#^!<7$lN|ClGZI>Gg5h&dp(eSS7gy=35 zb|biwC-A=)i)E4M;7PJ)N#Cw2i^1Jp!SvL|6H-n#j3c)AtnvLK_R?ssJ{SQ%&A8)rMCLZb%h$TQFbgQMDu-4GrxF7-*s_bo%2ZD%UE*kfO1Q5H&|Yh3EQ za+)>6A&HMhbRv#uULfWtqNB+EtEE9HS5+FTC%jBg4%xC!d7`oJpuK&n=F`$g_MBPp z0ZwQHH8ZzO!nkXlRYjEJ_;?X?;0N8o^hw^`m7?-Ugu}uuy7x5et`mh4QY;?lA5SAF z{X|Ry&}y9?9J6WP-EQ+SQpP6H#oC(9a#|-jP`MDncg2Ui(oTy)e&s8zEOZCP0aH6D zGtsck6$l73brI?GoTC`XtaZ7fyI)vl(ZJBTBkTs0m3OV?(?`?Yv9NMcS z;d2UoP#UKgXNFOifBq$2ejV+oAK0Kufi5y3%fxaD9 ziU^EW#1XJmpC5+4ZCZ$to3rmz#MGdLtOk1(7gq0z6JazfEzoq$Cd=3p-}4#iK7HZ) zt%W${DV>=AE9ujTqo#6PO+|&dh5>NwhecyUei%o=M!G{S`ZBn!=rh5JMO_3Kt;fk} zz9_W{+K9dGteeA=As5-Sw)%wK@SIi`&mIJfBl6kewxjk>()F3Wnex;^=iwo#4C+Xd z40Rgys(fZcp1f4S{<*D+y&aqqKRKBI)JN zoSTF6lS&4%mYoO6B2Ziv=GYQf(Sv)n3BG$EqlykK4xHf=^6&i!?$EphqjFga6OA*3 zt4O{?Kl++1P|q>;!dhPqO1aub{l$+q+^1XmjznbwUIA9Lk46rDu0+lkCe?efh`1ZL z**J5L0%DF%o3s8LjF1fLH+Atk;`Tj_U5Jwhw{P`hF)ba=C6?q?OMUzWbOz@AAZ=qz zGjb@A{s^nq!Ary&zwMi`Q&SkPa5+W_UQY5AE}dbv3Uvm1G>W1LktEo-9#F>o*b)-< z;Fb!D19|!&e9f~)0zQszb25O0_PlX&5*3nT^?Y?WbU4eo(*2n-Da8wAVM@nsX>^=P zRu%H$j)jNbjuXn{QIu&DbEleXs=c$!>XW2d3sZ|X+9hJ|fTV`|y^f1~jOwC=3JxHJ) zyN&T}D8sCesWx<*#S;s%vVSrcq1RK{m2j)&oiR-e*+z^@)fks34?j@?ti?Xk9ip*> zI*GPpdA(!UM9J40B;@KuMb4e1_&%+3;b9>gJncN&c!b=yU8FdWT z%F7JtO$O!~HKl`8&0Xnb6=fV$A8f%J4CvJ%*^H(Wj(=y=>Cyizj{lb_2FNEPp|vxP+SjRR-gH^;lf_)1z>B1%#wqoK{O z*`?Tv=qqUFStftnd+%JR}3X2!G%sgUp*)17ZSz*a7;I z2S}vBwv%~E))}^wJLdE-bB~nyozv^pm%;i@cvAsKksoY*nQm`v%#CYKdroJN%!qS) zuL4Pr9-)}v@A&1kIHa~1Tl6`$^vR=bY~Ew6&daoJXRJKkrY>f7S#XuLm$sqXZP(lN&AilS-c%aI0y^ zrSpDI?oajc2^H^r>+kHh+5P0~TbvGG6y|=PpITUqQt*lliuTNIsV2(H@=V#9HBUAw z7`ONtAy2Ai!}od^8g$7US9<^9P2nAA1Wn8pdU7W1@m*ig!V60!&E+9f=NK=u(Au5z zClqbC+?DZEr3`ke-UM3a6LHoKnVa4!yLEg5^q-Hgvn|P@UngMv-==&$Q)DOWKC-}w zS)Uo8t6KfQj1O;&u$l(6fb~OVM)*wEeZ&{ckm7_$08E-#EjHS3gx}qUg!!lW#GdY& zQrNiaZIDcm*_Y0Q_L^9sCBLy_7FkGtVDD_|g0(;ArU}OxC$ZhOz3P)}BjOjqalQ!b zc@SdA0)okBQ=HXb6^q|?vQJuxVSysj8bxo^2U+axzOkTl=! zSL-d1jL0G(LmbsBGfLw+bS_hD!z`7d+MtsV4E|Iu$G0pR3u=PPqkKzqY2d%iu1RDj zDp{g`b-4zm3{!BA{;A)5w6~Uy=23DrglI(cBTp574}z6-B(#=1wkiECj*}8_NtLLF zdnA(p{bN}tiTu<@uH6O$u7+luxb!XWj2 z!4b$BY%J%qjW10?Z~2|(@KbRlJbJ2wf)jjhm(;DT8&iuX3aB}gw>GQQI_yQrL!q@X z2!q6g*ic45%+#9J_VqI{fbx0W=K?QV3fzOn^;cp;b9qkehY8u&0>st}TR0@a*W!esd;kBvSO5ks#OC*F+Qs7BT5c$&g0CbORylo5z zQ4>?;yr4YKP!qDPe3bP33IQ>#?bp!Zke7)jTMQj)7p?a8*@-OX8xl5n`&W?&8Zss3 zBc1nQ4T@uiQ5rb@8p~{C^C3bda6RTy^kI_&sQ5nU+_bX!_rE7q=`kQK?{|J34*JhO zfq<+(|7#JEDf$_in3_v)K3hWX?AG}|QtP7R&rp?lH6a~H2aNw~0n@D8czT5zc(^pf z{ZRT^Z0UQpf2@FKU~_=Y%Kc}--@B+msnxO8$&+pNQFbN-T-p%0L*hG1*rtXtLyYOY zQt-?L@vw=@o5~l;Wmq}B&ryFVKpiWKlMx@Ov@;SXRzPhDxRP1L@E+?NNGtRcoxp8E zX_YH#_k1FS$~rrltS=cf2<+3ULi+{m%+fY^-usolrX9jnT0V0#bQLfoc*ywVp*$AA z^Ktn~Qjb;oIvvC4A>{j4=KesBhwiA&PG1N;^_JG)uDYxQ?3T)S(Ez^&0rW+lpxV{y zPxCEFIMiy4-EXkSUp{%w`u%iLbwA$i9CH_KnOWKTx`1zR>+P#Rj5yQ^yRc*TX1Ra1 z`TKAIQLw*&`+VIN@pW~kac+d5Cvz7h0KF)ZsN7>(Y(-1P01|pz4PRy5I zaYKbNM8+}fT^>Se4}`=23{*FXmdNH)*%r^}{t~hdhPFVa7$wMos4B3rd*#(Q8V-4D50hR430+1*_pm(w zJ?y_4DggR*hsOmLn-$bDGU`)KB`(6G9TJ|4Sg{&2KPq$x5>WVwwx`}~+UZT)n@`$N zxPE?Xo134_2E&LJPU!}DZW4WlFUNV$`(YUf_#ecw^hk+1gSE(-(W1?8G4~a+B&04R z$1)jx$27`TGEgP*#FrJY;jD(DRVT`)f*np<1&{fQ%m_+o;Erm);d>*Q%5UQvzvWiu z^ehA~Bi}+X&9z=XxwQf4DL8D)>jDx)pU=w*?O-Od>P}MkDJjj8c6}0KUFn@k%0m#G zVVRf-@(P!#z?3MCPt9HWmh>Tr-V6l(L+AwPWj(I@0p`0Wa>N;V`D_DI=@UMKkZDXi3{Cfe znuILXg8mpg0o)oJuovrzPSmQ5&c6dIErxs>+93{-P*`F9LhPlKkl3?5BN$b0%A#ki z26i#Z54C%ZM~H#NTgm|E-QyyLSS%xpgw9+1y!Kp*A{9=o$igc?t@jb)C5^b%fcH9R zVm2*k8|r;NFV63B$$P0YCn%E?th(?oqjc%jjVR!uNQMf%kyEr5B~|0eE$mApU5OGt zZ=fTzPegY$ulL9$Wqr2~*`e3JjmBL-aubC1{}gLUNc}Lw&(o9@LgAH(QbDi^H?`b1 zsB0b>S(j;#1%rlk5G~791kGpq^M|0y&i615%SvxJLps-^u_=EW_P7GJPDO{WR@E=C zOZaj9>UYXo9eTvA)$7uRato@?inN`7ioS#RJ-R=B4;mU8<{zH`|Lyl&&LE2?$@1%a zAvs4Gk%F5ATxHzt2AVZn=b zaJ6ZFbCrSG-@(NqBM>2U*;+NP6uax8{w;U89sh{xa_Y;J<7-@XQ%mMSY3!@HG|W%v zBtU-BelLrT796IC`jZiUu%ADL`b?C8-}XW;^VHWG_r`3eOMceLZ#JnrNgHZFS9xH#O~>%u9QnPY=er9-?5CnG#C^8wu{|Xc5vi_yed?#))A$ z-OVWkv;*N^fZS7~iWYG}nl|pPGTpkDC~fn@SoBRu%|X3_hnqBHWpgrdig*ReHB?E7 zl1Qs#UNJPHbbMbwyE(}}sNos!WZ^@oyK&olLArIgNMu3+{fKv+)gAbBcXZEj!(}*p z@h|8@(Y*V+-RT6k28ZJ~Yim5TUbb>E*|&jhWOmx`W`nt4)+ANax9+ZtJAlvIGDezk zW5X+<0Mb0Vkoj0Ybzwr>?duv458zUI6(|zK;N)~Rck>HC6%jRggwK5=OX^a~cO%5J zzP`m`i%x~=n3lz>rWw5dU97Yy-4;p;uyKZ!Aqj-cvZh+xqz9U#k$d>Xbi&wq<(XV> zbh?RB=WJC3`x7LKLsnt95vz#dhl|9lwc;kx?oT?q-i?T!Bk`+`#cH{(zvo^YGchYy z(>haKn(hw5Hi~|kTt%cqPFR>prWK6IzIgxzQVk0H63`t+h8=YFVr{y$AfD6V4S6ZZ zQr|xKgbezacHf-UqMVBm^IbM<*_D?VWQ_$Lta!>e zW^pk#M6yqPKaE~k-(#m6qv`N~mf}NEb9QqRt*&5D3^hgGBss^P6(tWIOmo9bl>Df1 zkWs@s>!})q$tDCQIXSc3DU_|YNqjy1Jd;9^eiiI4K@&SG8S?a_e3d-nuW~iP%_s9f ze2I}xSg#7k>R^LGsv)(-=k1PRIt?dCn2M>FAo-mq@6JbaP1QbEi-hwD3MqsoqvuVPp*@bPqz zguC9kh8tqGUYjKTwX2N~WomVy7jA^79CnpG3K?ZHPa68G8E~IM8xsj1ifdG=iJ-lY zLAQ6n;> zCWxC_vGKtF3=x}yi|4wVe1DJ(t43D=t3UfdH=^atS9aD>&QdO!2ZJa9KL&_ui@K@G zo?4IRqZyoipY%^O)q;*cZU`@#v|rhrd3v~#M#Jqq0nobC)Wj|N-5Y!l&*;q z$&{k-UJdZI`IDVHlc^2ENDR`^qYw>*gbk!)7QGV(!OkW+jPv0!wmKdM)bX!`4=%&c zTzR*Y<$^v9exiD-`L}S{dh5JinbuX>FFQfoJ9s8K)%I<0&d=F95+_!HXe)M ziTj`vACI-Gp~H4XhX`Y8SyrN=N0}l}*cB{}M!i|P{L(7D%Hh)OYhRLxwzgT9@U6A^ zWO*omS;1(fbx+d%?pv-oKMBv%nauaVN8afeQHa-lU8_|#OMnhwz`c*8kTSQ+{-SMs zaq8{h`S`Qz%Ancq{Pdu>1i947Czn;w&&d2WFH%km`QNvX;poy$WJ4Hes0c1Z zzN@vG#gLOCJyIm{&$bii`G@c0>7H5mb!c<5<^GtT<9_}>lc|K7=&d2`P=0iWu!`X2 z0wwt~h73}XMll#ARNnm46TD$Yf7!>_(|XT@C<5CKaB_n!4E`a{W^Dab_bPkM2H_~$ z+tb@Z78!IxQM#1gM6v0y*_EY~($r9Kxr^EYEGvw+lSUqtj|OHSxEPzjVm5Ou%G1IA zOWcUI>Vjto&b_cW&!6Qkp}R~gZaf;4aV`z}uttlen<#hRa6!8gC{k zSWJSwc(1}p%W;V4bszdN>pQx1dMzbe6Bgh~+s%lKVZkQ!u>jpN6CsH4_Ie46>?)p} zg4H?u7$VbiSOB2;i3VR$FffNJfd(};zWPZg6L?a4d8kPuGsp2V)8^!4#QWzjU`AoM0-w>M8v?kO{MiZqu<-QI>8G&tf;{pgvJZ9sz@4uS6+!sa(O zGjSYu*o8a*#z4TUz{Ka20P@K)l&w07g0v(jumsyfh$i+5CUh7uf(l2@=73NxIaho^ z=}D6XZJWx}mDDuEWDSXsGXAdHCYXZO6MKXxI%&r%k1$T@8h}YcxEPH#?~MUdHh#U@3pF8%zs7y!~iT20RaF40RsXB0|WyA000000TBQp zF+oxA5I`Vdal!F{k)be9vC&{~;s4qI2mt~C0Y4D<+9;#eDE)JPx8K-dh8SUn7-5DO zVTKxrCrduJ(EIWK004XY-apUIpWGh)ftDR_-p|co4+#Ac{{S9-&!Ww`K6&}937{{@ zKHh&ghLAm!`{(Ad`K*3x0%!}^PqrbX9?Dq3%6;wyQUM{{WJFIW|qLi#g|>f1g~Vnl{k`x)lC!Ds`SZ z4DR!{9+pJamZaAdgKdGx^mcfDjy1&>5-6~pi0i+nt3fcs8BJIu+LAq(>%|oSDZ++> zpkP;6s8foot+h+Lo_GHMU-`!6^vmMBzfarX@_t`WzqRev$ha??G(b}W=rtn%2H(1< zDiLjW=r7VUiBy<@3V~bC5BneAeeXCh3rr;1uDYm5VD8yYRNaJ!fZ6aGG-z23H!2GQ zLY*o&N+$L>-mReEH5cGCXw&hzL&49E-UhCp`a$pSe|!7i_(zeNsVNG&5>)l=*+r)G z^on3WAaMy^U;sK;f>UPouY5g|en!v6p(fFk^wP>Zl*qGz$H z@M`U+2y)tYa17$wIAp4EQ1*BiQ0li3(93{c{na2cf=t-Id$u$4xX~J{RO}tE;VRLxV|yPcU4wNXZpu zIK+97)KqneRGTZaDZ-}jC(ux#m9%U@kP{4xPN2<#&ylOp4)~(VsnTr#fu_(lih!7I z$HEjLgfs~w78oCpunE`f;94bZ~ zFsZ84)CSzvK^Ky(TpSV@ApoEPV}Z|TCW*xZ8mcB< zgeV<7HYg@*f&_{QH7(Vyqd;OxWThzI6uT{m91Ta0FoMP{)_*_04osz00IF51O)^F0{{R30000101+WE@DM>!ksv@}vB6MrfuS(b zVBzuq+5iXv0|5a)5b>g=n39mNMvzM|(~3NSg9Z#3Fkr!h1`HT5V=$H3Dyxt!tGc{7 zPoPb)d^_u}&?eZn-)%X4LSZaGV1%YUMJOMxy-~y}A46mmN z2eb6D@1?l6q!XgapJc`yV*dbD;7KHcUor+h>yGvD0(4n3?3lxhU+TQFK_DHU-auft zHhQjY0GwEP1X5(VgGOWpbt)Ai^1mb8`lH%%BYph+`@q-)PgDaFHk&1A3RHE=>MYA) z$_e4Tya*>6wrJn|;~EneVu45dVu;uUT49I-R+^-)7U6#yH?IMqp?5uOE93_i@R?O5 z*HcUfI&|yW;+ky&hzLL-SP0TQCmFrNwiwk^Bm^a-{nXX{R1;xh@DOisIT zI#2Nqux{LTjh*q|T_TGh;-ZJyM^Li1Cd7i~&;nak!RF5S`}dp6+#BL?~lK388&yv-@NE9?Vq^bUmtGV9y`<_ibYm|9zcu{hLHn0$5j+#B*7OOFq~4u zP%8fb>xi^XZh;Y8ywt6Mp*kIuCACdaI~P-m+aQZIdf{jdK$!*}`xwyO?X*z`2WL#1 zHmn&6K!o~OPg&vvloD~v3~d*2Fv~3cOFkaiF2M{!YHgnCvQvsy4fd3saWnz$lKmkY z9ImKm{{S~+QGdaxHo$$545g7qryyoB-Uh!YF_Mv9LFw`ZdB)O7v?f{FkT9A-k17q6 zFNl!WR<{Ivhxc42>*Zt+(xKhRCCGXM8^@KE+6j7QS}~x=O2{R(Ja0S5X-xrM-e3jx zcFIE)_g610nU-tLRL4PPDrON`%2vINq`I(7%p4Oq6c&vTXe)2fDqMtt=V$$7J^FGN z6enc`MC&e~mgr5~M&nt?YVe#v#IcmI=YB)LK$9XzaWI#!ylEzcLR-o}MLZxPieMWbp2b8!!p+R< zvDgFx@dwaAt$Zs&>9I}q;EPvTZOYj!znftZQD6#m0ZmVvaGD6RfU^oEj=RU0-6|L5 zYr#mGBrX7m0fS$sQoXYwm}M9-R(xO;2v7`yQ1TjtD@_NkTI~%71%qJ?Gy47;k*7Rk?~iCf6V6BV}Bp<@K?saw+nv^O~*6u-U|r{ zP?wYQ3zl_q^>=oYb@BI=gF6MtDagvpfi$7;04Eo3w~%wrZXTX~*Dh?eU@n~VbiH=L zTG>e6C_u;Up6AU6L2l*`j4fOqc)O^%UVv(y(}b(TeFJ>mLY&UQeSQ3b)#2AJ{64rk z(Ef2*?!vj>yM%aOyKu+o_BkE@Ah&bMvR7o~F93H3xw@;H{jB@fdx2lqF8pNmxIIoLY&~2{es2*Hp0(t!7f3b0U@6Le&>FS=;Z7l z8glId@Z`Tt$v5Ed!~R>^|JKpf;Fu*5;ALRH3s2lma zdb)@I>=fd5?ZS_Bxh$`ASzf{7Z|m}xPC7wuKUUAe-{0rjg+H$5kD0r=s0W8Sd%3xU z{FM>fP9AbVQ|=G{ko!T|8U^{ zJr4W>z`6MWs4WbDXCV3}NcHwT{}BJ+d;S3cjFbndYU>*v|A9M!&@l!^#$(4BPn`Ji7=|d||DfYsC%DfmTtCTU>cn&*@QmW4XC$72Idx)R@QfHY+YR4+&%7j zdIg7s-VcL^KZtn}8yBCDn3SH8nU$TBo0tDv>GQG|sF&pxZ))r68ycIM-*#bf-95eU z`uayk$HpfnKYgCU6Xq8dmzGyn*GSttyLtMWQJXdx^o)RsD1PL0@QPx07&MXXRt@!+Sm&L|~iI<%_H zpF|6a7v&o{+}qfF15Mo8bTFqqwx)x~{7^bb7)|&VP6rM3Bgu*-bdc_>HI@$gc=aqD z#JoZWZNH|Ck3&~3A?Tn-!E_L*Uu~HVf=VIg`XB8@LaB^S7-Df69VE^9$1zKb5j)!` z8rw_oe@6Sioo}^=wscSo!Vl8)5#e>U*z<)`1qIxhZ*xiPDuP=nModAlV^DpL<0ls6 z@C<{2Sy{LJNM^OQc%zcv%#z#eaC8fJesh-d{lrQC_$NKO`a_Rqx6{B=oU~Oa4b2%>e=w8`+xD-e zgO17&Yg?D0==Mj*?QGFAbkNrwI_TAO3MauBlWcOR{?8--T{D4;jE61&fl+{(!KmfX z4QXNo9dwg+adH>&5Zpz;93EvLRt58DnzV8M?^}$B4OW~9)nIPRWW9ZP*A6xeIS@Jn zy3O#@3DEB+Fn##Hch1ni&l$N#2eBd2p!IgtqmJ35VJ(z`7MK!^Duxb$+r^8qTy)S+z@ih4uCHF<7O5FJ{xoGX_1<$I z4wRR{GGlYEXsLjE8UJtT{(b1tLyCTu)NAV^sn>RnAToGp$tJ&Ga-jjehD`I%-JcOOE~nXUc}a z%W1P*M{Igj#z{J;Q<-to3c2$gVBRBn1nE$1oN?S1HvW@WZg+oe_t>yl=LW_$i7 z?X%D0ioXg}uCL%4jOyK z0sU=?mI!?}_YZKu0-}%oQIZuRb?_KYc#B>u@q5y)$XVRf$&!6U<4W=Qk&V!5(eE2M zw`Xms=v!mIHos{;Qr@g@`-&-IJW#PB+Uqskdp0So3+7BN)zp%T6*giiY~58jQ(~KP za7nPYxaej-_hO-o>Wu72ifh$~M``A=V1rJs(~eJ?()%EvQRdC)$~?C_UyL2nun`ZG z1IDRwN=#O%7t$KA6V=-2+H$a`Znc5=(vxML_XvCe9pr&LJP$sJAWp&oM3HH^L2_d_Qvs_ zFNeOcdqY7B5;@Fqf+yupJRI1jaJZe=D{SG4?{a$m!Fi>}_>9+BnL%MOm`Bhc_D;Vs z*YZ<8YxUdEphJx)Dfm_w=FGOJ7-8@-VGuI6ajV#<`?Ib;(*0mu%~dVdAP~1CAS@2$ zNkR!vLMmC*UYsnG(5}{tt$q}25m=uIOvuRGaBTOQiRo}?wbqvYL`anOcm46*B5l4# z%*dX@)ipa2L! z1(X|mmU)gA+Fz_DLE6#|)jC}Q!n0YK^4vaE2vAz&yYMv!(Hg9#mR<7!s{Qh~Ia01y zji0hSx$2s2=*ovki)DV-X;W$!9rRc+8u!4z2P(J@s|)KkVgIxaW7iV>;z0KAnBu^o zre{}Z^5mF6@5QyL>Y1Xb6WzsSrDX7}x2JnWa7O+rNy;~K{gBv6F4Sf*M}Vc~tRO6* z_SO|?x8_JxT*pWBsljYHu*6io&1fNnB{RTcu|G2-88>b>z$t-Tn%rbP)SK6Y;x{l| zvdkYyYGDE-2N|tET=NU-q{=6~3&PR{7%e779samVL#`+9RdWQdj}@*OD|@;&NhQ*@ zuD+P30xE=6p$$QIwYAvjAbd3uK+qDEhdNY8JRNk%wE&=7pH9Sf3rS(N`_#yz++SWOPt(i zlXVc!J@4nZPX(WGzo)q+1-q%V@4o)@pf&wY zyhMb7MTxAn8+>N4|NA)dD;-qZnAWtM82t^!<}=av4Gto+c#OZsb}Vgtb)sBJqOL8H~*dP zAF3R-{et+I1_74NofWVK;CKJ3{paYQIDcv}V&zGsAkfcY&Yxy#N<+JXcg6aEjqCGc zI%tuB4&sXFMjWcOpGOe9aTv-rC)u42`n*g_(Cb7}lxI!?op`}(``76pZA~N{#GWfh zyAA$VOS98LW2qrp&n-WJIzgY>evj4SiBuvEwzxsC!*12&hz`dy!=Vw^gGq8-S0^uw znvaH5dQbb;*%@AL?GgNCz+dKd-&;wCvpchAwtY&OJ3h~dv1Yk7c@b$t3)S%*_-AC0pTJ0exJehD3v71j^mKjoAPN^-dHD0(jwjWaRS7`{&St&%; z#&7Jt#6_MWEB#WXN3q>HMvA?Ncz#tP zAk4R~VcKuA;p?>0y3$KpF5pDWA`bZJATN_67K$hxGy+Xjrh?~~h)rl(`@-y@t~(+P z{72ZVN=x=WyhsO$J^q_h|HE~lkNRXQ&H26WU`+_ z_9e;9X(gDA&Tl38Xo`{Cy}eD8jEE{pb9LEk{z>`I`BpTGI4y{;@}gwl9tju`o^tdn ziFt|2{6q&0(k{V0Q$DC>$i9Cgbu}(35%uIlq04sy_n!`x~YokKFIVq#j2--lO{?b4lVza2-}V#MVVgAB6py24zK%PldUd3S4D z-Gv0bmeXqcf@O@1Z#;R2>N^@Iy5J!(?Z+c86QNylpic-7vU$gY6E9-RddS`drKddo z>wUF3y`!27=BUOLEl0abzM6hSO>XmJ3Y>5sC0WC;@=e@zU;k^JKXn==oDVmMJNNL8xFTGz zZ%}@=3{a=c>gYSoc5PXkJ2e#VxZg;;D<91kLn}s}KOaAEuziO5;5vGLsV#fIA*U5l ztOxj;+h6FoG9UxkkZDK)C9_8LE!+}R-k?t&3|&!2B&YE-Fn z_dXqjG(?Eg^bR}0pG~?`6>=!LY%wz_ZgkK^6D~|51T&fSee=7$2jyo7afkL4-3@G% zA&~$T{rNDGydZ+gb7zR6HitR5LkAHuzu3@0dNF`a#)&1+K?h9-Y5PA!76;eZucj77 zB8YPOWD$b@sabMgtL#T|>i6Dg!HJE!*$qyCUe+dZ@Oa66ar!ml%F>e(4NWmI|4d46ZPi8X4}pI$jk$ zv>SB@B5^*Nxg3B_%-!M+@;PF~R;pPlra;*|)cnK*sg=*%)qb{=aa0mCi-l;zS0;0m z)poiHSD%+j3_{<4i8nb90DgAL9UhT$00au{9zWuIg519DiX^-T)-(k=ghUNd%Akqh zz2z9pUh=!Nk%Q=Y#9IJLFj}u{d8`c0zl8}Sx;d$`kb|yu=r;d2X5(@tVs-EvX0U&@ zr{Kd%lVS7UD{@Gl^`Mo68)2~yj_{1&T5}xv3 z+PtK#^i<8#^lO(g2xXxuV5%m-+j3C$IUJ zb6!@~DGJK3b0c*xJeAyjTldmBOUvIySp>5~Lkw;6)+_;3PVODl^57gVevG{I+;bprQx1Vo-9n+OW&4Q;m;Pc_-b&@5>B25 z?c!Au!!eJu4AM=LLLou{*7v`o%mSZqPnc&qznao3%XB>`j!G-dS|AG>yW~2HIfew} z8kki(K9_Iu`t;uD#;Hvc&L`MO++;aKz!W=NY5P3$JVfMmFfB?|tBpzrsejtZZ`_-; zoJQq*i3S2moxzxeei_6@QzYP%k05v^=V>Z*P#-V&NW^XS&=|1w*AebHl;`eZv=0~o zVD-Ob?wOFq(3D)J&eGG$jh_VA9N*Vmm zxBi5{nUhp#sbCQV0fvK8wxLYWxfU3wCc_*e4q5x2#!6I)X%*8dA<1>Wh7IA5^|zXa?~^NB{w$Y9SUSDK~*-(i8!Vy5rB$IRoF%QYV3E_*n{I2r75OYIi+IW9z z;T%v8ZLwngl0g%>H&WTkMSDR#PLaZI2}N=p>X5^6Nmq!?gT9?g1GSe-rkoXpkC?Ma zm+g_)x}?h^>@jCH6HtPB>*1k3_fHyOc`inOpW|`_DpY%?=W3e5hkND}6q4c~ClX3*`BO%r4A8l<*#+^mhk3y}x{dn1mM{ljy(`~XiQ5(O8MG&i4cf(&GIH(E8+YUgMP1kFAs zXY?Q)2!+Y9iffZyca^^U_R3#X*^5keA&!*BEZL28LN>i25roB4S7wBI4|8@k4%HEr zqD*MU6ZQ#8n3ApbUu`I_M3a zI0{^+n84D0T)$|6*a*!*tg2>Ek5ltu+s|^-j;>Mw7=;QlABWDRVz%#snGhS7Ng9AA z!IHd3iSe|Xnn+sv66UbB8_aX`6QD?~KhZ(2MFB5wLgNzjRy}iBLrrV(2~N$cIf`Ae zHdwfFW z%QBW!Rdp>rE7&J16GA;-+Uo1wIr<>$Yc03SH2l4jv-JC;16rtE7fq|I$U_sB;}qm| zaNmi*#2m=}U^hUZd?{qY?qR>@T~aV^r^~FezlQntll(GPMOA_W~1EYht`i{rPV6 zFEobU6OU6UUc?5TRMr!M-J}NXLO0<{0{xdYgS<@B1JfJQjWn+GgNfb922QHbpZ)AQESqK&al!~;Mz#@;2d73#SCXCf5_YHk6PRDN=f16OYi={-Z>zOyhzWS~sv1`i zxxjw3_1H$%KVy_&vgv~cXSW*ND*Je6y2d>AjM}whU)mbQ|d*z^(46&O4rLLsS~_3SYf&C)7G) zs)E;EE%V~gj5_rb;0^rI|NK*e?1xW!5D&N(kDv?D)I7w75gAx()E499j$Rsa>x(kr z)8rv(#hu`dr8!HM_MYRFs(r6~G|Mqn5m(A+d29fJ>^xmBsazoO)HZ-?%o?O6O7QDiIbIS>Gix~ z@eT_wO^GZL6;V$6ID4}GvcdMc=~yT@6~R`|u6MgV@0(mbyY>;m_)%CCA|g2Fe=LqW5#Y{8k$Fc|D?*-H3Gyrs}+0sjMd^8esqwVg6Imw z8&Bs3F*Bv=UVjJi?|=jHcM;5u_{1wmHR_^+Y@<8uA0nkVNs{u&+1CkJX?2; zY9iL#pTZ1f{eav6fLg>EiRPF?58PlBg0KRA+uRBO-*i^si_Zmc@HCyiMQK5ST?m*6 zTKKPUF3)I@(O z^QWAx)=lc$c1?22zAH7WT{6<2C|iW5+I2fJ(?L(fj-*XUMs3uY*g&9$0)q2D1=l^= zoH%r&kk3D_y+pMB7^5suRsq#Y0dk*3$&(2Et0W-m^0I zt*~;c!W`#t%j4+OTv5mXS?($!aw3g)KB(&cHIl5fOt(dewIp^v;1hgqF?%u3`H7T{ zh^=MTy~&Jp)W+he@}J2g?W(jGbtn@#|ESYZmWWEJd*|z?3_S%$VrQgBtG7mMWIV<+ zm8(8`- zz*@!L(~WG%h{@zmPc{pDYbgj?k&G8ZrFj2JP3H^Lp{EaP5VRhjzW) z2_h#6c4IY57$+d3vD%H?m3;>#>O$$DVtwl2_x9z3ZH&9zBgsp&M)-@3^p+1zE_Tu| zV?IO2J|F;k$z=&S)ktHBBF*k&$adf^lSEN2vh{E92XeeCj&gQeCs!RM-b_I2BDHc> zJ^kFqDdtr+1(I>43eB)L;S0~T1)W8m5CsG@Pw1ymsb0k zXU4=Hd}{q!4O|yFv#j){uGBL)x_b`s5sL+b$Pw0+ZLKEyZ3n(r@lzTz#B6>qc4waI5@S8c_dBuy-Cde?5uC=$@~0OsxZkq zLDfY9>)OP|XKu|Nn-#A8LMmG}^f`%l%^5Pd>T<7hD)eIMz=?04H9l>(!VcNt=JVFz zWi7ElJ+8oSjOv3ciy?t`Zl%e;d+C;03dHyA(Hz9xnr03a?ji#LgW#$)=NCmDYUZ&L z%BPMRDbVEo20G}sFd`$M{ab+P*@<%eH(CW)&u)dtQ$WwgZYV_~pchD0;Qx(EngS?u zG#R?$@CyR3^<%LC#XQqZ6r&~00@_F1#Db};@&E3jdjF!yO#hxurZj0=%02)(VZlx1H_Yf4f-4m*0S_(i1PzDw$_D=uvyxQ^4lu=ktoE zFZ`#Jo2H}hhFa|ivgi91KFg{wW{h^tuj*!b<$B$DXZ^&*s>ous|Hak1GtK4Q5n~I@ zcEb&Y(SX63{T22knwtbvppc(pTlEMWD(ZM2Hy=Mn)5lp zC{i{QGz;8Ut>Cs4JGnGh#=IOo2qjwiPo3R&CSSw*KQ3k@dUUY^h?hIZA;%a)GEO5* zw*}oNoostaj@xh?dO>cvRTId&gbL(s%y472b4|RYbhBF81KTbg$jP=SV4uVIxZm69 zb!rRBoY#H63UJZpe@A46mJ$}$ZiY_7g!u$qDC{jlz zPL4I*U67ZpA-(@itGKz&+HOtWNhKbBbI!+QX6QQHxN%*DYEb9P;`x8G!q$K#{^Jts zEzOc{!Hz*!s!1jQg8Blu79X1sSTe@j{}6%zL5amAz)e#bL*POPLx=pXV6q9Y3orkI z_&+95NC5f~4bjs`LgOa7EYhuwT#DafxW^Nz-bNH@NYP|RtxqtAfs@XWLK=I`g=R3X z1cmrM`kp|2j_yBW7`V)wtZTl9W>Z~Op1*O&T@!EC@)`hd9zBktq$gUIS=}F=D@9cx zIJ@1%j}j`Qgnb^X{!)vaT_f)M??F8d`WNm}J6qn(l zMqgK+PqpZ+i!#B>lZYnWqWmO{6B$lTF+5o4bo78kkMsImz$eURvB-y}=;%@2xH89j zxysQGZb|W%BzFd%NDgFkXO@z;03&vsd=IgNk8}ZMCYyrDNrVo~d6QVO|}H3X;$?W~HMGw83X^E5uW9gKW#(ok;Hr zM^7!`jN9Zek*(=(bw?I0?axX_lpVC~?9N`vAJJ$tSX1@!{U+z*yVR6w_l}XQwj3)A z!3K62YRpIK9#dVbEsYBeS~K6zK#4xcH_KcUxNaZ?AP8f{B4tU4#LrYH7KSoOosqW~ zx<~fi_34LKpxNgF4&nmY_yy))wq9nl42#F!FcgXF(r$-vsaj>Ri7*@TT4kT*wJMS{ z$ByN#zvZNyPM+IJx?%*uJz&~|5ZX+1CPR*l>~4sl#Q=dv7ci7H?W^{M@2MIUMDAios`H3wSWbMYK=wVG(bgbsHB^;Ww=^(K3F?&mKF@_SLm4pyQgPwyD;m}VI0 zSGL@lpo8L%QGk3%X&fn@c6v&V4!V-nNcl;IiF&4Ki*gQ&*v7`tq)NJ>yY5ZiKw#|4 z4joi<9uR;NWT3oHkA0q#a=s2m^OOKU?1_f}{K)|z(h~uH+8r>-k^{I}s*Ht^vzL*S zH3V`-j-twgNB>xN1Tl6P2vj8g>wR+MiZmWNXt)56q!& zG2mk>*aLC~g=T@kF?NI!e1hnpW;VcozMQuFJqiVg+-*W?F?+!1-$c$H1I28h|McjC z=iOiu=rwrPY#u|50g@vFfENk~E8a_I}n4x{jM7KkiM(E9vYZV*&UPe-MhjtQ-AVsWx= zJGPhNH=Z4M_1NTNbmkn7m2?o_&+90nbLk+@0Vc_}pB`9<$W`d^@D6M&%SI!rGH$X*kD8-+_DdYVkD? zZ{_nfWvlx=pSWB>xk-$UkG_$O_C%nJ_Mb{ywAVpB>k4%tO1i(fKAj{`bUp+gK$tw# zift0$_V@Wz!A=h5D9h2%S{YH%(uHc4%*77|Rr6anrt{Z6+~_@2TFL34Tqfv^@L=0n z=IyIJ>=lY82&zkYt~Gbwb9d`8c2acm@aDKha*C{M&YRx5uj}ccV8?=-H~Ya$D9H|r z6Ezhv_l71l45Vr*Cih>ESmBf1LUM6_k#@u!Gl#PV!waO77{Ax6iNu+0DEsPtzSrF^ z9lqT0=F6|!fBxCV4xX{865KpeRY`iqNy^}l>s-D~sM6^r+{3%2^sVW}3Mt~8#k~Aw z^08(pBdLrm_1#JXg#eVWS(bj#@FQ9h^&HeA`+7kjQ@lVL#X&#jr>`1p;Q|k$-k*ATC_SqKYBbEwT#!UM_K>P78(Vq}} zkq)GOr~t**dzzCy`U9d4ii2@_PS7}sMp-X12xt~E1W1%AMETt%9)2C-i$$E#9UR>M zwlqUHvt54$^ToFH+Zhr#CHR(KsIZ^knhqycSU>M}nXu@|)1}Fsb6+E6@B?w?fhFd1 zvHF9GNe1Y;*5+t*FYGtY;pNBhFl_!8wGOBS&b|E#{Cel-Vp+^-k}QNLcR~0%E@b=t z7JGtau&2|i)q7%Mm97}G4yV;qn|?SX_Kn`)3@3U0$elKBy+3<86qz(z+fYsb$4yS$ z7ZsiOk+sHNfx{e!mx@g`6Wod8=(OFotNPXRZ|mch2uuAFclh?D1Ct+BO?J=DR4E%o1|h%P9$uxz%%wkfb!nu(On1anJ7u0 zEuY`AyY{10OlrnAyW0~W*_YF=S9}|5O{m;`(1he)Tga7(hUMR_DehORw(k{;=??fN z%_$Y)H5zgTa!TFul0lX_Y4O*>3}arqa#sX+E(r0N`iKNcY=R{b8kG*n}7#XT}K8J+OHDLqR9 zzb=E8{186Bm%ryS#3JAo@)8mzAW;{A+CTu=yvx**Ryopq?`-YzX4PA_-F8+$&2hda zHYDZjykGCEw{wlr_{jb?r281}aJg7bB!~B*<+rq7*Y58JT|f0!J!5s~WZC7yp%W32 zU;>QGDR=`L-!%Ez5-y|VX4Ni!CSaE&p#Is4@72{dwSiL;XL$_DSd=YQPVGeK8IRk$ z&PBWIK0XwJ>lcyjy4q!;gsoIgh>CrHt1xA|ek#N&_qb{5J)EyvKY?v_gs_`jix~{M zb)QG+y?mC!mG#MTT_8PUL9AOhjrAlK=N-8qI!&N{L&D_m*3|UPG9na1uqZ^D*->#Za5o=bS7m%R%CAu=Dh2RAZg z%$c*zd5xuNrK@(h!`_X{%jQMemwaa(VWoxG?HunUfngQ;h3!QQ2Ybl9dBEeBu)8! zj~gbu@SsD6^6Lwp`}?-BS=nWt<*Uye?>wJE)nm0F%efoqB*m2Z?D*4*YU2K>9WGfc zAzlXUcDkqu3Fp_Z3VyAD+a_9AJ&_!LBGnU8s=8yclP1_68!bqjJPU{Pwu@FYBcHT} z6Ra5mCV7Y-ZcXy$;w2VaopPOut@9Ra7Nkbsd%3DDahrD;D+ekE<_h146!E!w)gsU= zj%UF?4$%-s;q@TMbs-YLqOD+(F&0K->TLE|APr4xsu8nizRk=KndnCHks*oJe;P zF`l6-&qRdqV(nu&u0pNHKX2iaF>6`cVeN104#Y5OytntdL9cYW@j zd0A2yo+R9Vr6R&W$$ocBwYk%9KLyjd^?9%Ni%lV%2dn1JohG{Q@qIu#I@A4&OZKqn1ZZ!&f)}QCc>_r* z-H#;MV_3GL#Z5@o+T;r4th_>>;@%h2N;uiTC0ONW!3Bp-58wTzpA z+Eow0L-49LWHe+-D^bt##MgXc)9xC#Krs(}U&lMPRl<|;OxQFYZx#0~`^o6DWT?Zq ze`~IjitQ^D-a*5(y=D7css=n|GGjm`i_NsFpg~XQR}0t*TSc3_u}LeR&k;D`bssc@(to{iAnMEMKk->(Sm}Yob3W)@BSVjE~ykJ5>sLwjD9771)aKwn61NiMcV5Of1! zTzbs7<|w9kW8WonJmn2{a>Z)5S^3ivV`cX$^eHt1h3{n{qd7;VJ+K?-lJ6k5JYA<^ zvU0c0b0vK}PGe1QEXgE=WU)TlY2IyF{Zf!;FWlfq}{K|Vx#^qCO2fiMe_^FY|0jX zxz`Bun7HKqCjB70KO4tK9l}P!cwOW_S38P-P^1j^a>d25ynrS5*JQ3<(hb6ymur?w zX#4i3GL51_YxLhrncdE3tOIIb+y z`E`?@DΞ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 diff --git a/app/assets/images/landing/users/prefecture-rhone.jpg b/app/assets/images/landing/users/prefecture-rhone.jpg index b4cff51bca75c78f40c0dc6c2bcbeb14543a76ec..7ef43e9c39de1eef466d920845c4479e77399439 100644 GIT binary patch literal 21776 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 diff --git a/app/assets/images/login-with-fc-hover.svg b/app/assets/images/login-with-fc-hover.svg index e3e0ef572..2a580527e 100644 --- a/app/assets/images/login-with-fc-hover.svg +++ b/app/assets/images/login-with-fc-hover.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/login-with-fc.svg b/app/assets/images/login-with-fc.svg index 258e58174..afc1e8d89 100644 --- a/app/assets/images/login-with-fc.svg +++ b/app/assets/images/login-with-fc.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/logo_mini_FC.png b/app/assets/images/logo_mini_FC.png index f52981879c6861cf2131ae5f5c396571949996b7..b388bc6927f9036ced708f0f35c4d3c21f63e505 100644 GIT binary patch delta 16780 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 diff --git a/app/assets/images/logos/logo-ds.png b/app/assets/images/logos/logo-ds.png index bbbd381d5af5e41ed45445ef4c734efd34ae92bd..6e197dc98863c3706221b84220c4252287545d9d 100644 GIT binary patch literal 9979 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 ~q{M3{Y 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

Ju{h`Ro+IR~^9Wh==J}3l#@O#| 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 \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/table/up_caret.svg b/app/assets/images/table/up_caret.svg index b685e98e5..a20b0a550 100644 --- a/app/assets/images/table/up_caret.svg +++ b/app/assets/images/table/up_caret.svg @@ -1 +1 @@ -ic_dropdown \ No newline at end of file + \ No newline at end of file diff --git a/spec/support/files/logo_test_procedure.png b/spec/support/files/logo_test_procedure.png index f69cbb86b67505e9bfdf57efee64165328654253..ac12a67508a8b532b03bd56966617017846fd38b 100644 GIT binary patch literal 35884 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%0A2kFeqO7nh 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 m0!)AjFaajO1ek#P5cnHGNUGhu#I|(+0000 Date: Fri, 2 Mar 2018 16:27:03 +0100 Subject: [PATCH 10/41] Bump development gems - brakeman - rubocop - scss_lint --- .rubocop.yml | 40 +++++++++++-------- Gemfile.lock | 12 +++--- Rakefile | 2 +- .../admin/attestation_templates_controller.rb | 2 +- .../admin/mail_templates_controller.rb | 2 +- .../admin/pieces_justificatives_controller.rb | 2 +- .../admin/procedures_controller.rb | 2 +- .../admin/types_de_champ_controller.rb | 2 +- .../types_de_champ_private_controller.rb | 2 +- .../new_gestionnaire/avis_controller.rb | 2 +- .../new_gestionnaire/dossiers_controller.rb | 6 +-- .../new_gestionnaire/procedures_controller.rb | 11 +++-- app/controllers/users/carte_controller.rb | 2 +- app/controllers/users/dossiers_controller.rb | 4 +- app/controllers/users/sessions_controller.rb | 4 +- app/models/administrateur.rb | 2 +- app/models/procedure.rb | 10 ++--- app/models/user.rb | 2 +- bin/bundle | 2 +- bin/setup | 2 +- bin/update | 2 +- config/application.rb | 2 +- config/boot.rb | 2 +- config/environment.rb | 2 +- ...08_link_type_piece_jointe_to_formulaire.rb | 2 +- ...94750_create_france_connect_information.rb | 2 +- .../attestation_templates_controller_spec.rb | 2 +- spec/controllers/invites_controller_spec.rb | 2 +- .../dossiers_controller_spec.rb | 2 +- .../new_user/dossiers_controller_spec.rb | 4 +- .../users/sessions_controller_spec.rb | 2 +- .../procedure_filters_spec.rb | 2 +- spec/models/administrateur_spec.rb | 4 +- spec/models/attestation_template_spec.rb | 4 +- .../concern/tags_substitution_concern_spec.rb | 14 +++---- spec/models/dossier_spec.rb | 2 +- spec/models/gestionnaire_spec.rb | 4 +- spec/models/procedure_spec.rb | 16 ++++---- spec/models/user_spec.rb | 4 +- spec/rails_helper.rb | 2 +- spec/spec_helper.rb | 2 +- .../_identite_entreprise.html.haml_spec.rb | 2 +- 42 files changed, 99 insertions(+), 94 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index d356d2312..10c9c3ced 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -24,6 +24,9 @@ Layout/AlignParameters: Enabled: true EnforcedStyle: with_fixed_indentation +Layout/BlockAlignment: + Enabled: false + Layout/BlockEndNewline: Enabled: true @@ -37,6 +40,12 @@ Layout/ClosingParenthesisIndentation: Layout/CommentIndentation: Enabled: true +Layout/ConditionPosition: + Enabled: false + +Layout/DefEndAlignment: + Enabled: false + Layout/DotPosition: Enabled: true @@ -73,6 +82,10 @@ Layout/EmptyLinesAroundMethodBody: Layout/EmptyLinesAroundModuleBody: Enabled: true +Layout/EndAlignment: + Enabled: true + EnforcedStyleAlignWith: variable + Layout/EndOfLine: Enabled: true EnforcedStyle: lf @@ -248,21 +261,12 @@ Lint/AmbiguousRegexpLiteral: Lint/AssignmentInCondition: Enabled: false -Lint/BlockAlignment: - Enabled: false - Lint/CircularArgumentReference: Enabled: false -Lint/ConditionPosition: - Enabled: false - Lint/Debugger: Enabled: false -Lint/DefEndAlignment: - Enabled: false - Lint/DeprecatedClassMethods: Enabled: false @@ -293,10 +297,6 @@ Lint/EmptyInterpolation: Lint/EmptyWhen: Enabled: false -Lint/EndAlignment: - Enabled: true - EnforcedStyleAlignWith: variable - Lint/EndInMethod: Enabled: false @@ -480,12 +480,18 @@ Naming/FileName: Naming/HeredocDelimiterNaming: Enabled: false +Naming/MemoizedInstanceVariableName: + Enabled: false + Naming/MethodName: Enabled: false Naming/PredicateName: Enabled: false +Naming/UncommunicativeMethodParamName: + Enabled: false + Naming/VariableName: Enabled: false @@ -522,9 +528,6 @@ Performance/FixedSize: Performance/FlatMap: Enabled: true -Performance/HashEachMethods: - Enabled: false - Performance/LstripRstrip: Enabled: true @@ -1080,7 +1083,10 @@ Style/TernaryParentheses: Style/TrailingCommaInArguments: Enabled: false -Style/TrailingCommaInLiteral: +Style/TrailingCommaInArrayLiteral: + Enabled: false + +Style/TrailingCommaInHashLiteral: Enabled: false Style/TrailingUnderscoreVariable: diff --git a/Gemfile.lock b/Gemfile.lock index 1a22f99e8..b7d569deb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,7 +115,7 @@ GEM sass (>= 3.3.4) bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) - brakeman (4.1.1) + brakeman (4.2.0) browser (2.5.3) builder (3.2.3) byebug (10.0.0) @@ -527,7 +527,7 @@ GEM json orm_adapter (0.5.0) parallel (1.12.1) - parser (2.5.0.1) + parser (2.5.0.3) ast (~> 2.4.0) pdf-core (0.7.0) pg (0.19.0) @@ -642,9 +642,9 @@ GEM rspec-support (3.7.1) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (0.52.1) + rubocop (0.53.0) parallel (~> 1.10) - parser (>= 2.4.0.2, < 3.0) + parser (>= 2.5) powerpack (~> 0.1) rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) @@ -672,9 +672,9 @@ GEM scenic (1.4.1) activerecord (>= 4.0.0) railties (>= 4.0.0) - scss_lint (0.56.0) + scss_lint (0.57.0) rake (>= 0.9, < 13) - sass (~> 3.5.3) + sass (~> 3.5.5) securecompare (1.0.0) select2-rails (4.0.3) thor (~> 0.14) diff --git a/Rakefile b/Rakefile index bdb67ab62..186e5b1ed 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,7 @@ # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. -require File.expand_path('../config/application', __FILE__) +require File.expand_path('config/application', __dir__) Rails.application.load_tasks diff --git a/app/controllers/admin/attestation_templates_controller.rb b/app/controllers/admin/attestation_templates_controller.rb index 10fdb2994..0cdff87c5 100644 --- a/app/controllers/admin/attestation_templates_controller.rb +++ b/app/controllers/admin/attestation_templates_controller.rb @@ -8,7 +8,7 @@ class Admin::AttestationTemplatesController < AdminController def update attestation_template = @procedure.attestation_template - if attestation_template.update_attributes(activated_attestation_params) + if attestation_template.update(activated_attestation_params) flash.notice = "L'attestation a bien été modifiée" else flash.alert = attestation_template.errors.full_messages.join('
') diff --git a/app/controllers/admin/mail_templates_controller.rb b/app/controllers/admin/mail_templates_controller.rb index 7ec106986..3ef952fae 100644 --- a/app/controllers/admin/mail_templates_controller.rb +++ b/app/controllers/admin/mail_templates_controller.rb @@ -11,7 +11,7 @@ class Admin::MailTemplatesController < AdminController def update mail_template = find_mail_template_by_slug(params[:id]) - mail_template.update_attributes(update_params) + mail_template.update(update_params) redirect_to admin_procedure_mail_templates_path end diff --git a/app/controllers/admin/pieces_justificatives_controller.rb b/app/controllers/admin/pieces_justificatives_controller.rb index 0f6d14987..99012c304 100644 --- a/app/controllers/admin/pieces_justificatives_controller.rb +++ b/app/controllers/admin/pieces_justificatives_controller.rb @@ -6,7 +6,7 @@ class Admin::PiecesJustificativesController < AdminController end def update - if @procedure.update_attributes(update_params) + if @procedure.update(update_params) flash.now.notice = 'Modifications sauvegardées' else flash.now.notice = 'Une erreur est survenue' diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index 85801ee28..511024182 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -105,7 +105,7 @@ class Admin::ProceduresController < AdminController def update @procedure = current_administrateur.procedures.find(params[:id]) - if !@procedure.update_attributes(procedure_params) + if !@procedure.update(procedure_params) flash.now.alert = @procedure.errors.full_messages return render 'edit' end diff --git a/app/controllers/admin/types_de_champ_controller.rb b/app/controllers/admin/types_de_champ_controller.rb index b05c52fdd..256e06220 100644 --- a/app/controllers/admin/types_de_champ_controller.rb +++ b/app/controllers/admin/types_de_champ_controller.rb @@ -15,7 +15,7 @@ class Admin::TypesDeChampController < AdminController end def update - @procedure.update_attributes(TypesDeChampService.create_update_procedure_params params) + @procedure.update(TypesDeChampService.create_update_procedure_params params) create_facade flash.now.notice = 'Modifications sauvegardées' render 'show', format: :js diff --git a/app/controllers/admin/types_de_champ_private_controller.rb b/app/controllers/admin/types_de_champ_private_controller.rb index a4cea0946..320e0064e 100644 --- a/app/controllers/admin/types_de_champ_private_controller.rb +++ b/app/controllers/admin/types_de_champ_private_controller.rb @@ -16,7 +16,7 @@ class Admin::TypesDeChampPrivateController < AdminController end def update - @procedure.update_attributes(TypesDeChampService.create_update_procedure_params params, true) + @procedure.update(TypesDeChampService.create_update_procedure_params params, true) create_facade flash.now.notice = 'Modifications sauvegardées' render 'admin/types_de_champ/show', format: :js diff --git a/app/controllers/new_gestionnaire/avis_controller.rb b/app/controllers/new_gestionnaire/avis_controller.rb index 9e1257063..814f3c4ba 100644 --- a/app/controllers/new_gestionnaire/avis_controller.rb +++ b/app/controllers/new_gestionnaire/avis_controller.rb @@ -32,7 +32,7 @@ module NewGestionnaire end def update - avis.update_attributes(avis_params) + avis.update(avis_params) flash.notice = 'Votre réponse est enregistrée.' redirect_to instruction_gestionnaire_avis_path(avis) end diff --git a/app/controllers/new_gestionnaire/dossiers_controller.rb b/app/controllers/new_gestionnaire/dossiers_controller.rb index f1a130b41..c91e0d2b5 100644 --- a/app/controllers/new_gestionnaire/dossiers_controller.rb +++ b/app/controllers/new_gestionnaire/dossiers_controller.rb @@ -57,13 +57,13 @@ module NewGestionnaire end def archive - dossier.update_attributes(archived: true) + dossier.update(archived: true) current_gestionnaire.unfollow(dossier) redirect_back(fallback_location: gestionnaire_procedures_url) end def unarchive - dossier.update_attributes(archived: false) + dossier.update(archived: false) redirect_back(fallback_location: gestionnaire_procedures_url) end @@ -166,7 +166,7 @@ module NewGestionnaire def update_annotations dossier = current_gestionnaire.dossiers.includes(champs_private: :type_de_champ).find(params[:dossier_id]) # FIXME: add attachements validation, cf. Champ#piece_justificative_file_errors - dossier.update_attributes(champs_private_params) + dossier.update(champs_private_params) redirect_to annotations_privees_gestionnaire_dossier_path(procedure, dossier) end diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb index 7b4d958a6..a7b557d54 100644 --- a/app/controllers/new_gestionnaire/procedures_controller.rb +++ b/app/controllers/new_gestionnaire/procedures_controller.rb @@ -109,11 +109,11 @@ module NewGestionnaire c.to_json end - procedure_presentation.update_attributes(displayed_fields: fields) + procedure_presentation.update(displayed_fields: fields) current_sort = procedure_presentation.sort if !values.include?("#{current_sort['table']}/#{current_sort['column']}") - procedure_presentation.update_attributes(sort: Procedure.default_sort) + procedure_presentation.update(sort: Procedure.default_sort) end redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) @@ -136,7 +136,7 @@ module NewGestionnaire 'order' => order }.to_json - procedure_presentation.update_attributes(sort: sort) + procedure_presentation.update(sort: sort) redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) end @@ -154,7 +154,7 @@ module NewGestionnaire 'value' => params[:value] } - procedure_presentation.update_attributes(filters: filters.to_json) + procedure_presentation.update(filters: filters.to_json) end redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) @@ -168,7 +168,7 @@ module NewGestionnaire filters[statut] = filters[statut] - [filter_to_remove] - procedure_presentation.update_attributes(filters: filters.to_json) + procedure_presentation.update(filters: filters.to_json) redirect_back(fallback_location: gestionnaire_procedure_url(procedure)) end @@ -245,7 +245,6 @@ module NewGestionnaire .includes(filter['table']) .where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%") end - end.pluck(:id) end.reduce(:&) end diff --git a/app/controllers/users/carte_controller.rb b/app/controllers/users/carte_controller.rb index 8ef350893..f41d55bf2 100644 --- a/app/controllers/users/carte_controller.rb +++ b/app/controllers/users/carte_controller.rb @@ -22,7 +22,7 @@ class Users::CarteController < UsersController ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs] end - dossier.update_attributes(json_latlngs: params[:json_latlngs]) + dossier.update(json_latlngs: params[:json_latlngs]) redirect_to modifier_dossier_path(dossier) end diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 121693b89..7af0fc9e0 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -156,7 +156,7 @@ class Users::DossiersController < UsersController flash.alert = individual_errors redirect_to users_dossier_path(id: @facade.dossier.id) else - if !Dossier.find(@facade.dossier.id).update_attributes update_params_with_formatted_birthdate + if !Dossier.find(@facade.dossier.id).update update_params_with_formatted_birthdate flash.alert = @facade.dossier.errors.full_messages return redirect_to users_dossier_path(id: @facade.dossier.id) @@ -259,7 +259,7 @@ class Users::DossiersController < UsersController end def update_current_user_siret! siret - current_user.update_attributes(siret: siret) + current_user.update(siret: siret) end def facade id = params[:id] diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index b2b6f3391..0ac64ed65 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -20,7 +20,7 @@ class Users::SessionsController < Sessions::SessionsController try_to_authenticate(Administrateur, remember_me) if user_signed_in? - current_user.update_attributes(loged_in_with_france_connect: '') + current_user.update(loged_in_with_france_connect: '') end if user_signed_in? @@ -44,7 +44,7 @@ class Users::SessionsController < Sessions::SessionsController if user_signed_in? connected_with_france_connect = current_user.loged_in_with_france_connect - current_user.update_attributes(loged_in_with_france_connect: '') + current_user.update(loged_in_with_france_connect: '') sign_out :user diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index 7048cb473..f1f2e379b 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -26,7 +26,7 @@ class Administrateur < ActiveRecord::Base end def renew_api_token - update_attributes(api_token: generate_api_token) + update(api_token: generate_api_token) end def registration_state diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 5441fbc3d..e750d7a21 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -42,7 +42,7 @@ class Procedure < ActiveRecord::Base def hide! now = DateTime.now - self.update_attributes(hidden_at: now) + self.update(hidden_at: now) self.dossiers.update_all(hidden_at: now) end @@ -89,8 +89,8 @@ class Procedure < ActiveRecord::Base false else - list[index_of_first_element].update_attributes(order_place: index_of_first_element + 1) - list[index_of_first_element + 1].update_attributes(order_place: index_of_first_element) + list[index_of_first_element].update(order_place: index_of_first_element + 1) + list[index_of_first_element + 1].update(order_place: index_of_first_element) true end @@ -129,7 +129,7 @@ class Procedure < ActiveRecord::Base end def publish!(path) - self.update_attributes!({ published_at: Time.now, archived_at: nil }) + self.update!({ published_at: Time.now, archived_at: nil }) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) end @@ -138,7 +138,7 @@ class Procedure < ActiveRecord::Base end def archive - self.update_attributes!(archived_at: Time.now) + self.update!(archived_at: Time.now) end def archivee? diff --git a/app/models/user.rb b/app/models/user.rb index 16d5edca6..362eba6b7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -25,7 +25,7 @@ class User < ActiveRecord::Base if user.nil? return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret) else - user.update_attributes(siret: siret) + user.update(siret: siret) user end end diff --git a/bin/bundle b/bin/bundle index 66e9889e8..f19acf5b5 100755 --- a/bin/bundle +++ b/bin/bundle @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) load Gem.bin_path('bundler', 'bundle') diff --git a/bin/setup b/bin/setup index 468646cd1..04e288aec 100755 --- a/bin/setup +++ b/bin/setup @@ -4,7 +4,7 @@ require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = Pathname.new File.expand_path('../', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") diff --git a/bin/update b/bin/update index a8e4462f2..f02dfd611 100755 --- a/bin/update +++ b/bin/update @@ -4,7 +4,7 @@ require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = Pathname.new File.expand_path('../', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") diff --git a/config/application.rb b/config/application.rb index 1d381b4b1..7d54fd628 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,4 +1,4 @@ -require File.expand_path('../boot', __FILE__) +require File.expand_path('boot', __dir__) require 'rails/all' diff --git a/config/boot.rb b/config/boot.rb index 6b750f00b..30f5120df 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,3 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/environment.rb b/config/environment.rb index ee8d90dc6..0b8bdd828 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require File.expand_path('../application', __FILE__) +require File.expand_path('application', __dir__) # Initialize the Rails application. Rails.application.initialize! diff --git a/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb b/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb index db9d9289a..e1392c812 100644 --- a/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb +++ b/db/migrate/20150814122208_link_type_piece_jointe_to_formulaire.rb @@ -2,7 +2,7 @@ class LinkTypePieceJointeToFormulaire < ActiveRecord::Migration # def up # TypePieceJointe.find_each do |type_piece_jointe| # forms = Formulaire.find_by_demarche_id(type_piece_jointe.CERFA) - # type_piece_jointe.update_attributes(formulaire_id: forms.id) if forms.present? + # type_piece_jointe.update(formulaire_id: forms.id) if forms.present? # end # end end diff --git a/db/migrate/20160120094750_create_france_connect_information.rb b/db/migrate/20160120094750_create_france_connect_information.rb index 88f7f1128..2178c02eb 100644 --- a/db/migrate/20160120094750_create_france_connect_information.rb +++ b/db/migrate/20160120094750_create_france_connect_information.rb @@ -46,7 +46,7 @@ class CreateFranceConnectInformation < ActiveRecord::Migration add_column :users, :france_connect_particulier_id, :string FranceConnectInformation.all.each do |fci| - User.find(fci.user_id).update_attributes({ + User.find(fci.user_id).update({ gender: fci.gender, given_name: fci.given_name, family_name: fci.family_name, diff --git a/spec/controllers/admin/attestation_templates_controller_spec.rb b/spec/controllers/admin/attestation_templates_controller_spec.rb index ed545032e..6939e477e 100644 --- a/spec/controllers/admin/attestation_templates_controller_spec.rb +++ b/spec/controllers/admin/attestation_templates_controller_spec.rb @@ -140,7 +140,7 @@ describe Admin::AttestationTemplatesController, type: :controller do context 'when something wrong happens in the attestation template creation' do before do - expect_any_instance_of(AttestationTemplate).to receive(:update_attributes).and_return(false) + expect_any_instance_of(AttestationTemplate).to receive(:update).and_return(false) expect_any_instance_of(AttestationTemplate).to receive(:errors) .and_return(double(full_messages: ['nop'])) diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index f32dbaf68..2e6c47bfd 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -145,7 +145,7 @@ describe InvitesController, type: :controller do context 'when user has access to dossier' do before do - dossier.update_attributes(user: signed_in_profile) + dossier.update(user: signed_in_profile) end it { expect { subject }.to change(InviteUser, :count).by(1) } diff --git a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb index c6338051f..6f8c67cb4 100644 --- a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb +++ b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb @@ -94,7 +94,7 @@ describe NewGestionnaire::DossiersController, type: :controller do describe '#unarchive' do before do - dossier.update_attributes(archived: true) + dossier.update(archived: true) patch :unarchive, params: { procedure_id: procedure.id, dossier_id: dossier.id } dossier.reload end diff --git a/spec/controllers/new_user/dossiers_controller_spec.rb b/spec/controllers/new_user/dossiers_controller_spec.rb index 68c68a9b1..2557d79ec 100644 --- a/spec/controllers/new_user/dossiers_controller_spec.rb +++ b/spec/controllers/new_user/dossiers_controller_spec.rb @@ -122,7 +122,7 @@ describe NewUser::DossiersController, type: :controller do end context 'when the dossier is for an personne physique' do - before { dossier.procedure.update_attributes(for_individual: true) } + before { dossier.procedure.update(for_individual: true) } it { is_expected.to redirect_to(identite_dossier_path(dossier)) } end @@ -215,7 +215,7 @@ describe NewUser::DossiersController, type: :controller do let(:value) { nil } before do - first_champ.type_de_champ.update_attributes(mandatory: true, libelle: 'l') + first_champ.type_de_champ.update(mandatory: true, libelle: 'l') allow(PiecesJustificativesService).to receive(:missing_pj_error_messages).and_return(['pj']) subject diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb index cb0daa0de..2f581ec7f 100644 --- a/spec/controllers/users/sessions_controller_spec.rb +++ b/spec/controllers/users/sessions_controller_spec.rb @@ -158,7 +158,7 @@ describe Users::SessionsController, type: :controller do end it 'signs user out from france connect' do - user.update_attributes(loged_in_with_france_connect: 'particulier') + user.update(loged_in_with_france_connect: 'particulier') sign_in user delete :destroy expect(@response.headers["Location"]).to eq(FRANCE_CONNECT[:particulier][:logout_endpoint]) diff --git a/spec/features/new_gestionnaire/procedure_filters_spec.rb b/spec/features/new_gestionnaire/procedure_filters_spec.rb index 332142f19..dcbc3481c 100644 --- a/spec/features/new_gestionnaire/procedure_filters_spec.rb +++ b/spec/features/new_gestionnaire/procedure_filters_spec.rb @@ -9,7 +9,7 @@ feature "procedure filters" do let!(:new_unfollow_dossier_2) { create(:dossier, procedure: procedure, state: "en_instruction") } before do - champ.update_attributes(value: "Mon champ rempli") + champ.update(value: "Mon champ rempli") login_as gestionnaire, scope: :gestionnaire visit gestionnaire_procedure_path(procedure) end diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index 6fb94c9fc..5b5b1160a 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -32,7 +32,7 @@ describe Administrateur, type: :model do administrateur = create(:administrateur) user = create(:user, email: administrateur.email) - administrateur.update_attributes(email: 'whoami@plop.com', password: 'super secret') + administrateur.update(email: 'whoami@plop.com', password: 'super secret') user.reload expect(user.email).to eq('whoami@plop.com') @@ -43,7 +43,7 @@ describe Administrateur, type: :model do administrateur = create(:administrateur) gestionnaire = create(:gestionnaire, email: administrateur.email) - administrateur.update_attributes(email: 'whoami@plop.com', password: 'super secret') + administrateur.update(email: 'whoami@plop.com', password: 'super secret') gestionnaire.reload expect(gestionnaire.email).to eq('whoami@plop.com') diff --git a/spec/models/attestation_template_spec.rb b/spec/models/attestation_template_spec.rb index 680c72ef2..1cd889aa5 100644 --- a/spec/models/attestation_template_spec.rb +++ b/spec/models/attestation_template_spec.rb @@ -163,12 +163,12 @@ describe AttestationTemplate, type: :model do dossier.champs .select { |champ| champ.libelle == 'libelleA' } .first - .update_attributes(value: 'libelle1') + .update(value: 'libelle1') dossier.champs .select { |champ| champ.libelle == 'libelleB' } .first - .update_attributes(value: 'libelle2') + .update(value: 'libelle2') end it { expect(view_args[:title]).to eq('title libelle1') } diff --git a/spec/models/concern/tags_substitution_concern_spec.rb b/spec/models/concern/tags_substitution_concern_spec.rb index 42cc2bd44..7a2d2e52e 100644 --- a/spec/models/concern/tags_substitution_concern_spec.rb +++ b/spec/models/concern/tags_substitution_concern_spec.rb @@ -99,12 +99,12 @@ describe TagsSubstitutionConcern, type: :model do dossier.champs .select { |champ| champ.libelle == 'libelleA' } .first - .update_attributes(value: 'libelle1') + .update(value: 'libelle1') dossier.champs .select { |champ| champ.libelle == 'libelleB' } .first - .update_attributes(value: 'libelle2') + .update(value: 'libelle2') end it { is_expected.to eq('libelle1 libelle2') } @@ -129,7 +129,7 @@ describe TagsSubstitutionConcern, type: :model do let(:template) { '--libelleA--' } context 'and its value in the dossier is not nil' do - before { dossier.champs_private.first.update_attributes(value: 'libelle1') } + before { dossier.champs_private.first.update(value: 'libelle1') } it { is_expected.to eq('libelle1') } end @@ -152,7 +152,7 @@ describe TagsSubstitutionConcern, type: :model do context 'champs publics are valid tags' do let(:types_de_champ) { [create(:type_de_champ, libelle: 'libelleA')] } - before { dossier.champs.first.update_attributes(value: 'libelle1') } + before { dossier.champs.first.update(value: 'libelle1') } it { is_expected.to eq('libelle1') } end @@ -174,12 +174,12 @@ describe TagsSubstitutionConcern, type: :model do dossier.champs .select { |champ| champ.type_champ == 'date' } .first - .update_attributes(value: '2017-04-15') + .update(value: '2017-04-15') dossier.champs .select { |champ| champ.type_champ == 'datetime' } .first - .update_attributes(value: '2017-09-13 09:00') + .update(value: '2017-09-13 09:00') end it { is_expected.to eq('15/04/2017 2017-09-13 09:00') } @@ -220,7 +220,7 @@ describe TagsSubstitutionConcern, type: :model do end context "match breaking and non breaking spaces" do - before { dossier.champs.first.update_attributes(value: 'valeur') } + before { dossier.champs.first.update(value: 'valeur') } shared_examples "treat all kinds of space as equivalent" do context 'and the champ has a non breaking space' do diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 4dc9e35f0..47bcd0a16 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -112,7 +112,7 @@ describe Dossier do it 'does not create default champs' do expect(subject).not_to receive(:build_default_champs) - subject.update_attributes(state: 'en_construction') + subject.update(state: 'en_construction') end end end diff --git a/spec/models/gestionnaire_spec.rb b/spec/models/gestionnaire_spec.rb index 5f94afe50..9d13d1042 100644 --- a/spec/models/gestionnaire_spec.rb +++ b/spec/models/gestionnaire_spec.rb @@ -116,7 +116,7 @@ describe Gestionnaire, type: :model do gestionnaire = create(:gestionnaire) user = create(:user, email: gestionnaire.email) - gestionnaire.update_attributes(email: 'whoami@plop.com', password: 'super secret') + gestionnaire.update(email: 'whoami@plop.com', password: 'super secret') user.reload expect(user.email).to eq('whoami@plop.com') @@ -127,7 +127,7 @@ describe Gestionnaire, type: :model do gestionnaire = create(:gestionnaire) admin = create(:administrateur, email: gestionnaire.email) - gestionnaire.update_attributes(email: 'whoami@plop.com', password: 'super secret') + gestionnaire.update(email: 'whoami@plop.com', password: 'super secret') admin.reload expect(admin.email).to eq('whoami@plop.com') diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 827205514..4cd13e70f 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -352,16 +352,16 @@ describe Procedure do procedure.types_de_champ_private << tcp_2 << tcp_1 dossier.build_default_champs - dossier.champs.find_by(type_de_champ: tc_1).update_attributes(value: "value 1") - dossier.champs.find_by(type_de_champ: tc_2).update_attributes(value: "value 2") - dossier.champs_private.find_by(type_de_champ: tcp_1).update_attributes(value: "private value 1") - dossier.champs_private.find_by(type_de_champ: tcp_2).update_attributes(value: "private value 2") + dossier.champs.find_by(type_de_champ: tc_1).update(value: "value 1") + dossier.champs.find_by(type_de_champ: tc_2).update(value: "value 2") + dossier.champs_private.find_by(type_de_champ: tcp_1).update(value: "private value 1") + dossier.champs_private.find_by(type_de_champ: tcp_2).update(value: "private value 2") dossier2.build_default_champs - dossier2.champs.find_by(type_de_champ: tc_1).update_attributes(value: "value 1") - dossier2.champs.find_by(type_de_champ: tc_2).update_attributes(value: "value 2") - dossier2.champs_private.find_by(type_de_champ: tcp_1).update_attributes(value: "private value 1") - dossier2.champs_private.find_by(type_de_champ: tcp_2).update_attributes(value: "private value 2") + dossier2.champs.find_by(type_de_champ: tc_1).update(value: "value 1") + dossier2.champs.find_by(type_de_champ: tc_2).update(value: "value 2") + dossier2.champs_private.find_by(type_de_champ: tcp_1).update(value: "private value 1") + dossier2.champs_private.find_by(type_de_champ: tcp_2).update(value: "private value 2") end it { expect(subject[:headers].index(tc_1.libelle.parameterize.underscore.to_sym)).to be < subject[:headers].index(tc_2.libelle.parameterize.underscore.to_sym) } diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 58bd78bc2..848909a51 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -55,7 +55,7 @@ describe User, type: :model do user = create(:user) gestionnaire = create(:gestionnaire, email: user.email) - user.update_attributes(email: 'whoami@plop.com', password: 'super secret') + user.update(email: 'whoami@plop.com', password: 'super secret') gestionnaire.reload expect(gestionnaire.email).to eq('whoami@plop.com') @@ -66,7 +66,7 @@ describe User, type: :model do user = create(:user) admin = create(:administrateur, email: user.email) - user.update_attributes(email: 'whoami@plop.com', password: 'super secret') + user.update(email: 'whoami@plop.com', password: 'super secret') admin.reload expect(admin.email).to eq('whoami@plop.com') diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 59725df09..da5f1b49d 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,7 +1,7 @@ # This file is copied to spec/ when you run 'rails generate rspec:install' ENV['RAILS_ENV'] ||= 'test' require 'spec_helper' -require File.expand_path('../../config/environment', __FILE__) +require File.expand_path('../config/environment', __dir__) require 'rspec/rails' # Add additional requires below this line. Rails is not loaded until this point! diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 266047f62..a0583ada3 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -19,7 +19,7 @@ ENV['RAILS_ENV'] ||= 'test' -require File.expand_path('../../config/environment', __FILE__) +require File.expand_path('../config/environment', __dir__) require 'rspec/rails' require 'capybara/rspec' require 'database_cleaner' diff --git a/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb b/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb index 73830217c..a28649fe1 100644 --- a/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb +++ b/spec/views/new_gestionnaire/dossiers/_identite_entreprise.html.haml_spec.rb @@ -6,7 +6,7 @@ describe 'new_gestionnaire/dossiers/identite_entreprise.html.haml', type: :view let(:entreprise) { rna_information.entreprise } context "date_publication is missing on rna" do - before { rna_information.update_attributes(date_publication: nil) } + before { rna_information.update(date_publication: nil) } it "can render without error" do expect(rendered).to include("Date de publication :") From 0544ac3ffe6fb0e0d7ab983ff841a508fe9eade1 Mon Sep 17 00:00:00 2001 From: Guillaume RISCHARD Date: Tue, 6 Mar 2018 15:52:18 +0100 Subject: [PATCH 11/41] =?UTF-8?q?Modifications=20d'accessibilit=C3=A9=20au?= =?UTF-8?q?=20template=20de=20base?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/new_application.html.haml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/layouts/new_application.html.haml b/app/views/layouts/new_application.html.haml index d18b6d224..8190bc41e 100644 --- a/app/views/layouts/new_application.html.haml +++ b/app/views/layouts/new_application.html.haml @@ -1,4 +1,5 @@ -%html +!!! 5 +%html{ lang: "fr" } %head %meta{ "http-equiv": "Content-Type", content: "text/html; charset=UTF-8" } %meta{ "http-equiv": "X-UA-Compatible", content: "IE=edge" } From 3894fc48f6a7fd402a72341c005f4a317ef84352 Mon Sep 17 00:00:00 2001 From: Frederic Merizen Date: Tue, 6 Mar 2018 14:37:20 +0100 Subject: [PATCH 12/41] [Fix #1543] Strip html tags from textarea champs --- .../2018_03_06_clean_html_textareas.rake | 16 +++++++++++ .../2018_03_06_clean_html_textareas_spec.rb | 27 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 lib/tasks/2018_03_06_clean_html_textareas.rake create mode 100644 spec/lib/rake/2018_03_06_clean_html_textareas_spec.rb diff --git a/lib/tasks/2018_03_06_clean_html_textareas.rake b/lib/tasks/2018_03_06_clean_html_textareas.rake new file mode 100644 index 000000000..37ff84579 --- /dev/null +++ b/lib/tasks/2018_03_06_clean_html_textareas.rake @@ -0,0 +1,16 @@ +require Rails.root.join("app", "helpers", "html_to_string_helper") + +namespace :'2018_03_06_clean_html_textareas' do + task clean: :environment do + include ActionView::Helpers::TextHelper + include HtmlToStringHelper + + types_de_champ = TypeDeChamp.joins(:champ) + .where(type_champ: "textarea") + .where("champs.value LIKE '%<%'") + + types_de_champ.find_each do |tdc| + tdc.champ.each { |c| c.update_column(:value, html_to_string(c.value)) } + end + end +end diff --git a/spec/lib/rake/2018_03_06_clean_html_textareas_spec.rb b/spec/lib/rake/2018_03_06_clean_html_textareas_spec.rb new file mode 100644 index 000000000..86bcd3a91 --- /dev/null +++ b/spec/lib/rake/2018_03_06_clean_html_textareas_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +describe '2018_03_06_clean_html_textareas#clean' do + let(:procedure) { create(:procedure) } + let(:type_champ) { create(:type_de_champ, procedure: procedure, type_champ: :textarea) } + let(:champ) { type_champ.champ.create(value: "

Gnahar
greu bouahaha

") } + let(:champ_date) { Time.local(1995) } + let(:rake_date) { Time.local(2018) } + let(:rake_task) { Rake::Task['2018_03_06_clean_html_textareas:clean'] } + + before do + Timecop.freeze(champ_date) { champ } + TPS::Application.load_tasks + Timecop.freeze(rake_date) { rake_task.invoke } + champ.reload + end + + after { rake_task.reenable } + + it 'cleans up html tags' do + expect(champ.value).to eq("Gnahar\ngreu bouahaha\n") + end + + it 'does not change the model’s dates' do + expect(champ.updated_at).to eq(champ_date) + end +end From 4205f147421e5aa72d494055b4b188b279fac3f8 Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Tue, 6 Mar 2018 17:11:42 +0100 Subject: [PATCH 13/41] fix old navbar --- app/assets/stylesheets/navbar.scss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 4976c82e2..2af3216e1 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -34,10 +34,10 @@ #tps-title { font-family: Arial; - font-size: 24px; + font-size: 16px; font-weight: bold; - line-height: 28px; - margin-top: 17px; + line-height: 20px; + margin-top: 10px; } } From 24120ddc8cc6b53ba47194fe5998e06e028ce328 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 10:42:49 +0100 Subject: [PATCH 14/41] Fix rubocop warnings --- .rubocop.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 10c9c3ced..f6f6cfa7a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -219,9 +219,6 @@ Layout/SpaceInsideArrayPercentLiteral: Layout/SpaceInsideBlockBraces: Enabled: true -Layout/SpaceInsideBrackets: - Enabled: true - Layout/SpaceInsideHashLiteralBraces: Enabled: true @@ -237,6 +234,9 @@ Layout/SpaceInsidePercentLiteralDelimiters: Layout/SpaceInsideRangeLiteral: Enabled: true +Layout/SpaceInsideReferenceBrackets: + Enabled: true + Layout/SpaceInsideStringInterpolation: Enabled: true @@ -321,7 +321,7 @@ Lint/IneffectiveAccessModifier: Lint/InheritException: Enabled: false -Lint/LiteralInCondition: +Lint/LiteralAsCondition: Enabled: false Lint/LiteralInInterpolation: @@ -390,7 +390,7 @@ Lint/UnderscorePrefixedVariableName: Lint/UnifiedInteger: Enabled: false -Lint/UnneededDisable: +Lint/UnneededCopDisableDirective: Enabled: false Lint/UnneededSplatExpansion: @@ -843,7 +843,7 @@ Style/GuardClause: Style/HashSyntax: Enabled: false -Style/HeredocDelimiters: +Style/HeredocDelimiterNaming: Enabled: false Style/IdenticalConditionalBranches: From 536226d01e8bb129099d9c60804895e5017c8fe4 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 11:50:50 +0100 Subject: [PATCH 15/41] Add missing default configuration to Rubocop --- .rubocop.yml | 132 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 3 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index f6f6cfa7a..5d112a4ec 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,9 +8,21 @@ AllCops: Bundler/DuplicatedGem: Enabled: true +Bundler/InsecureProtocolSource: + Enabled: true + Bundler/OrderedGems: Enabled: false +Gemspec/DuplicatedAssignment: + Enabled: true + +Gemspec/OrderedDependencies: + Enabled: true + +Gemspec/RequiredRubyVersion: + Enabled: true + Layout/AccessModifierIndentation: Enabled: true @@ -34,6 +46,9 @@ Layout/CaseIndentation: Enabled: true EnforcedStyle: end +Layout/ClassStructure: + Enabled: false + Layout/ClosingParenthesisIndentation: Enabled: true @@ -52,6 +67,9 @@ Layout/DotPosition: Layout/ElseAlignment: Enabled: true +Layout/EmptyComment: + Enabled: true + Layout/EmptyLineAfterMagicComment: Enabled: true @@ -64,6 +82,9 @@ Layout/EmptyLines: Layout/EmptyLinesAroundAccessModifier: Enabled: true +Layout/EmptyLinesAroundArguments: + Enabled: true + Layout/EmptyLinesAroundBeginBody: Enabled: true @@ -261,6 +282,12 @@ Lint/AmbiguousRegexpLiteral: Lint/AssignmentInCondition: Enabled: false +Lint/BigDecimalNew: + Enabled: true + +Lint/BooleanSymbol: + Enabled: true + Lint/CircularArgumentReference: Enabled: false @@ -321,6 +348,9 @@ Lint/IneffectiveAccessModifier: Lint/InheritException: Enabled: false +Lint/InterpolationCheck: + Enabled: true + Lint/LiteralAsCondition: Enabled: false @@ -330,18 +360,30 @@ Lint/LiteralInInterpolation: Lint/Loop: Enabled: false +Lint/MissingCopEnableDirective: + Enabled: true + Lint/MultipleCompare: Enabled: false Lint/NestedMethodDefinition: Enabled: false +Lint/NestedPercentLiteral: + Enabled: true + Lint/NextWithoutAccumulator: Enabled: false Lint/NonLocalExitFromIterator: Enabled: false +Lint/NumberConversion: + Enabled: false + +Lint/OrderedMagicComments: + Enabled: true + Lint/ParenthesesAsGroupedExpression: Enabled: false @@ -354,6 +396,15 @@ Lint/PercentSymbolArray: Lint/RandOne: Enabled: false +Lint/RedundantWithIndex: + Enabled: true + +Lint/RedundantWithObject: + Enabled: true + +Lint/RegexpAsCondition: + Enabled: true + Lint/RequireParentheses: Enabled: false @@ -372,6 +423,9 @@ Lint/SafeNavigationChain: Lint/ScriptPermission: Enabled: false +Lint/ShadowedArgument: + Enabled: true + Lint/ShadowedException: Enabled: false @@ -393,6 +447,12 @@ Lint/UnifiedInteger: Lint/UnneededCopDisableDirective: Enabled: false +Lint/UnneededCopEnableDirective: + Enabled: true + +Lint/UnneededRequireStatement: + Enabled: true + Lint/UnneededSplatExpansion: Enabled: false @@ -477,6 +537,9 @@ Naming/ConstantName: Naming/FileName: Enabled: false +Naming/HeredocDelimiterCase: + Enabled: true + Naming/HeredocDelimiterNaming: Enabled: false @@ -489,6 +552,9 @@ Naming/MethodName: Naming/PredicateName: Enabled: false +Naming/UncommunicativeBlockParamName: + Enabled: true + Naming/UncommunicativeMethodParamName: Enabled: false @@ -567,9 +633,18 @@ Performance/StringReplacement: Performance/TimesMap: Enabled: true +Performance/UnfreezeString: + Enabled: true + +Performance/UriDefaultParser: + Enabled: true + Rails/ActionFilter: Enabled: false +Rails/ActiveRecordAliases: + Enabled: true + Rails/ActiveSupportAliases: Enabled: false @@ -651,6 +726,9 @@ Rails/Present: Rails/ReadWriteAttribute: Enabled: false +Rails/RedundantReceiverInWithOptions: + Enabled: true + Rails/RelativeDateConstant: Enabled: false @@ -699,6 +777,9 @@ Security/JSONLoad: Security/MarshalLoad: Enabled: false +Security/Open: + Enabled: true + Security/YAMLLoad: Enabled: false @@ -759,6 +840,9 @@ Style/CollectionMethods: Style/ColonMethodCall: Enabled: false +Style/ColonMethodDefinition: + Enabled: true + Style/CommandLiteral: Enabled: false @@ -780,6 +864,9 @@ Style/DateTime: Style/DefWithParentheses: Enabled: false +Style/Dir: + Enabled: true + Style/Documentation: Enabled: false @@ -795,12 +882,21 @@ Style/EachForSimpleLoop: Style/EachWithObject: Enabled: false +Style/EmptyBlockParameter: + Enabled: true + Style/EmptyCaseCondition: Enabled: false Style/EmptyElse: Enabled: false +Style/EmptyLambdaParameter: + Enabled: true + +Style/EmptyLineAfterGuardClause: + Enabled: false + Style/EmptyLiteral: Enabled: false @@ -819,6 +915,9 @@ Style/EvalWithLocation: Style/EvenOdd: Enabled: false +Style/ExpandPathArguments: + Enabled: true + Style/FlipFlop: Enabled: false @@ -843,9 +942,6 @@ Style/GuardClause: Style/HashSyntax: Enabled: false -Style/HeredocDelimiterNaming: - Enabled: false - Style/IdenticalConditionalBranches: Enabled: false @@ -897,6 +993,9 @@ Style/MethodDefParentheses: Style/MethodMissing: Enabled: false +Style/MinMax: + Enabled: true + Style/MissingElse: Enabled: false @@ -978,6 +1077,9 @@ Style/OptionalArguments: Style/ParallelAssignment: Enabled: false +Style/OrAssignment: + Enabled: true + Style/ParenthesesAroundCondition: Enabled: false @@ -1005,6 +1107,9 @@ Style/RandomWithOffset: Style/RedundantBegin: Enabled: false +Style/RedundantConditional: + Enabled: true + Style/RedundantException: Enabled: false @@ -1029,6 +1134,9 @@ Style/RescueModifier: Style/RescueStandardError: Enabled: false +Style/ReturnNil: + Enabled: false + Style/SafeNavigation: Enabled: false @@ -1056,6 +1164,12 @@ Style/SpecialGlobalVars: Style/StabbyLambdaParentheses: Enabled: false +Style/StderrPuts: + Enabled: true + +Style/StringHashKeys: + Enabled: false + Style/StringLiterals: Enabled: false @@ -1080,6 +1194,15 @@ Style/SymbolProc: Style/TernaryParentheses: Enabled: false +Style/TrailingBodyOnClass: + Enabled: true + +Style/TrailingBodyOnMethodDefinition: + Enabled: true + +Style/TrailingBodyOnModule: + Enabled: true + Style/TrailingCommaInArguments: Enabled: false @@ -1089,6 +1212,9 @@ Style/TrailingCommaInArrayLiteral: Style/TrailingCommaInHashLiteral: Enabled: false +Style/TrailingMethodEndStatement: + Enabled: true + Style/TrailingUnderscoreVariable: Enabled: false From b5b73c86395960008eb57644d653e188f777610b Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 11:53:26 +0100 Subject: [PATCH 16/41] Enable all the Security cops --- .rubocop.yml | 8 ++++---- spec/jobs/auto_archive_procedure_job_spec.rb | 4 +--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 5d112a4ec..ba155261a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -769,19 +769,19 @@ RSpec/Focused: Enabled: true Security/Eval: - Enabled: false + Enabled: true Security/JSONLoad: - Enabled: false + Enabled: true Security/MarshalLoad: - Enabled: false + Enabled: true Security/Open: Enabled: true Security/YAMLLoad: - Enabled: false + Enabled: true Style/Alias: Enabled: false diff --git a/spec/jobs/auto_archive_procedure_job_spec.rb b/spec/jobs/auto_archive_procedure_job_spec.rb index 2f92e5f2f..bd2fcc02d 100644 --- a/spec/jobs/auto_archive_procedure_job_spec.rb +++ b/spec/jobs/auto_archive_procedure_job_spec.rb @@ -31,9 +31,7 @@ RSpec.describe AutoArchiveProcedureJob, type: :job do before do subject - (1..9).each do |i| - eval "dossier#{i}.reload" - end + [dossier1, dossier2, dossier3, dossier4, dossier5, dossier6, dossier7, dossier8, dossier9].each(&:reload) procedure_hier.reload procedure_aujourdhui.reload From d3f0fc703ac4d133dde4cd62aa00739e38ea38fb Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 12:09:57 +0100 Subject: [PATCH 17/41] Enable some cops to remove ambiguity --- .rubocop.yml | 4 ++-- spec/controllers/admin/profile_controller_spec.rb | 2 +- spec/controllers/api/v1/dossiers_controller_spec.rb | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index ba155261a..496ec6a1b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -274,10 +274,10 @@ Lint/AmbiguousBlockAssociation: Enabled: false Lint/AmbiguousOperator: - Enabled: false + Enabled: true Lint/AmbiguousRegexpLiteral: - Enabled: false + Enabled: true Lint/AssignmentInCondition: Enabled: false diff --git a/spec/controllers/admin/profile_controller_spec.rb b/spec/controllers/admin/profile_controller_spec.rb index 493fb8251..5967ed821 100644 --- a/spec/controllers/admin/profile_controller_spec.rb +++ b/spec/controllers/admin/profile_controller_spec.rb @@ -9,7 +9,7 @@ describe Admin::ProfileController, type: :controller do describe 'POST #renew_api_token' do subject { post :renew_api_token } - it { expect{ subject }.to change{ administrateur.reload.api_token } } + it { expect{ subject }.to change { administrateur.reload.api_token } } it { subject; expect(response.status).to redirect_to(admin_profile_path) } end diff --git a/spec/controllers/api/v1/dossiers_controller_spec.rb b/spec/controllers/api/v1/dossiers_controller_spec.rb index b22913982..3cd4e4f35 100644 --- a/spec/controllers/api/v1/dossiers_controller_spec.rb +++ b/spec/controllers/api/v1/dossiers_controller_spec.rb @@ -333,9 +333,9 @@ describe API::V1::DossiersController do it { expect(subject[:created_at]).not_to be_nil } if Features.remote_storage - it { expect(subject[:content_url]).to match /^https:\/\/storage.apientreprise.fr\/tps_dev\/cerfa-.*\.pdf$/ } + it { expect(subject[:content_url]).to match(/^https:\/\/storage.apientreprise.fr\/tps_dev\/cerfa-.*\.pdf$/) } else - it { expect(subject[:content_url]).to match /^http:\/\/.*downloads.*_CERFA\.pdf$/ } + it { expect(subject[:content_url]).to match(/^http:\/\/.*downloads.*_CERFA\.pdf$/) } end describe 'user' do From 7489b8d1aafc9517fa9e598fa725fb176a5d15df Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 12:01:45 +0100 Subject: [PATCH 18/41] Avoid assignments in conditions --- .rubocop.yml | 2 +- app/controllers/users/sessions_controller.rb | 4 +++- app/lib/file_size_validator.rb | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 496ec6a1b..8bd936552 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -280,7 +280,7 @@ Lint/AmbiguousRegexpLiteral: Enabled: true Lint/AssignmentInCondition: - Enabled: false + Enabled: true Lint/BigDecimalNew: Enabled: true diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 0ac64ed65..e2be21b5d 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -78,7 +78,9 @@ class Users::SessionsController < Sessions::SessionsController end def try_to_authenticate(klass, remember_me = false) - if resource = klass.find_for_database_authentication(email: params[:user][:email]) + resource = klass.find_for_database_authentication(email: params[:user][:email]) + + if resource.present? if resource.valid_password?(params[:user][:password]) resource.remember_me = remember_me sign_in resource diff --git a/app/lib/file_size_validator.rb b/app/lib/file_size_validator.rb index 71b5d3763..43f1cbcd4 100644 --- a/app/lib/file_size_validator.rb +++ b/app/lib/file_size_validator.rb @@ -7,7 +7,9 @@ class FileSizeValidator < ActiveModel::EachValidator RESERVED_OPTIONS = [:minimum, :maximum, :within, :is, :tokenizer, :too_short, :too_long] def initialize(options) - if range = (options.delete(:in) || options.delete(:within)) + range = options.delete(:in) || options.delete(:within) + + if range.present? raise ArgumentError, ":in and :within must be a Range" if !range.is_a?(Range) options[:minimum], options[:maximum] = range.begin, range.end options[:maximum] -= 1 if range.exclude_end? From da3d9d403a1cbf46d55d02d255b270c53089bc93 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 12:03:32 +0100 Subject: [PATCH 19/41] Enable some more cops --- .rubocop.yml | 26 +++++++++++++------------- app/models/commentaire.rb | 19 ++++++------------- app/services/staging_auth_service.rb | 2 +- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 8bd936552..f5abc6b74 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -289,43 +289,43 @@ Lint/BooleanSymbol: Enabled: true Lint/CircularArgumentReference: - Enabled: false + Enabled: true Lint/Debugger: - Enabled: false + Enabled: true Lint/DeprecatedClassMethods: - Enabled: false + Enabled: true Lint/DuplicateCaseCondition: - Enabled: false + Enabled: true Lint/DuplicateMethods: - Enabled: false + Enabled: true Lint/DuplicatedKey: - Enabled: false + Enabled: true Lint/EachWithObjectArgument: - Enabled: false + Enabled: true Lint/ElseLayout: - Enabled: false + Enabled: true Lint/EmptyEnsure: - Enabled: false + Enabled: true Lint/EmptyExpression: - Enabled: false + Enabled: true Lint/EmptyInterpolation: - Enabled: false + Enabled: true Lint/EmptyWhen: - Enabled: false + Enabled: true Lint/EndInMethod: - Enabled: false + Enabled: true Lint/EnsureReturn: Enabled: false diff --git a/app/models/commentaire.rb b/app/models/commentaire.rb index aa0ac07e1..5db55fd13 100644 --- a/app/models/commentaire.rb +++ b/app/models/commentaire.rb @@ -31,19 +31,12 @@ class Commentaire < ActiveRecord::Base dossier_user_email = dossier.user.email invited_users_emails = dossier.invites_user.pluck(:email).to_a - case email - when I18n.t("dynamics.contact_email") - # The commentaire is a copy of an automated notification email - # we sent to a user, so do nothing - - when dossier_user_email, *invited_users_emails - # A user or an inved user posted a commentaire, - # do nothing, the notification system will properly - - else - # A gestionnaire posted a commentaire, - # we need to notify the user - + # - If the email is the contact email, the commentaire is a copy + # of an automated notification email we sent to a user, so do nothing. + # - If a user or an invited user posted a commentaire, do nothing, + # the notification system will properly + # - Otherwise, a gestionnaire posted a commentaire, we need to notify the user + if !email.in?([I18n.t("dynamics.contact_email"), dossier_user_email, *invited_users_emails]) notify_user end end diff --git a/app/services/staging_auth_service.rb b/app/services/staging_auth_service.rb index d6703e794..c6886f5a2 100644 --- a/app/services/staging_auth_service.rb +++ b/app/services/staging_auth_service.rb @@ -14,7 +14,7 @@ class StagingAuthService end def self.config - if File.exists?(CONFIG_PATH) + if File.exist?(CONFIG_PATH) YAML.safe_load(File.read(CONFIG_PATH)).symbolize_keys else {} From 0a9f44226099d661455a1aa3462e3dab203e10d4 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 13:44:29 +0100 Subject: [PATCH 20/41] Enable some Rails cops --- .rubocop.yml | 44 ++++++++-------- .../admin/gestionnaires_controller.rb | 2 +- .../admin/procedures_controller.rb | 4 +- app/controllers/api_controller.rb | 2 +- app/controllers/invites_controller.rb | 2 +- .../new_gestionnaire/avis_controller.rb | 2 +- .../new_gestionnaire/procedures_controller.rb | 4 +- app/controllers/stats_controller.rb | 10 ++-- .../users/description_controller.rb | 2 +- .../users/dossiers/invites_controller.rb | 2 +- app/decorators/entreprise_decorator.rb | 2 +- app/models/administrateur.rb | 2 +- app/models/administration.rb | 2 +- app/models/assign_to.rb | 2 +- app/models/cadastre.rb | 2 +- app/models/cerfa.rb | 2 +- app/models/champ.rb | 2 +- app/models/commentaire.rb | 4 +- app/models/dossier.rb | 2 +- app/models/drop_down_list.rb | 2 +- app/models/entreprise.rb | 6 +-- app/models/etablissement.rb | 4 +- app/models/exercice.rb | 2 +- app/models/follow.rb | 4 +- app/models/france_connect_information.rb | 2 +- app/models/gestionnaire.rb | 2 +- app/models/individual.rb | 4 +- app/models/invite.rb | 6 +-- app/models/module_api_carto.rb | 2 +- app/models/piece_justificative.rb | 2 +- app/models/procedure.rb | 2 +- app/models/procedure_path.rb | 2 +- app/models/procedure_presentation.rb | 2 +- app/models/quartier_prioritaire.rb | 2 +- app/models/rna_information.rb | 2 +- app/models/search.rb | 2 +- app/models/siret.rb | 2 +- app/models/type_de_champ.rb | 2 +- app/models/type_de_piece_justificative.rb | 2 +- app/models/user.rb | 4 +- app/services/staging_auth_service.rb | 2 +- .../attestation_template_logo_uploader.rb | 2 +- ...attestation_template_signature_uploader.rb | 2 +- app/uploaders/attestation_uploader.rb | 2 +- app/uploaders/commentaire_file_uploader.rb | 2 +- app/uploaders/local_downloader.rb | 2 +- app/uploaders/procedure_logo_uploader.rb | 2 +- config/initializers/apipie.rb | 2 +- config/initializers/carrierwave.rb | 6 +-- config/initializers/france_connect.rb | 2 +- .../20151207140202_update_module_api_carto.rb | 4 +- ...94750_create_france_connect_information.rb | 4 +- ...217_d_bremove_piece_justificative_empty.rb | 2 +- ...317144949_piece_justificative_have_user.rb | 6 +-- db/migrate/20160317153115_cerfa_have_user.rb | 6 +-- ...00904_admin_has_and_belong_gestionnaire.rb | 4 +- ...018_gestionnaire_is_assign_to_procedure.rb | 8 +-- ...540_set_original_filename_for_uploaders.rb | 4 +- .../20160609125949_add_procedure_status.rb | 2 +- ...7_delete_default_description_to_dossier.rb | 8 +-- ...onvert_all_datetime_to_date_on_database.rb | 2 +- ...081322_add_procedure_path_mapping_table.rb | 2 +- ...2_build_default_preference_list_dossier.rb | 4 +- ...fix_default_type_on_type_de_champ_table.rb | 2 +- ...0804130638_add_type_attr_in_champ_table.rb | 4 +- ...142045_delete_value_of_filter_procedure.rb | 2 +- ...itiated_all_received_mail_for_procedure.rb | 4 +- ...ild_default_pref_list_dossier_procedure.rb | 8 +-- ...to_nil_in_preference_list_dossier_table.rb | 2 +- ...hamp_header_section_with_mandatory_true.rb | 2 +- .../20161005144657_purge_draft_dossier.rb | 6 +-- ...95443_reset_all_preference_list_dossier.rb | 6 +-- ...45_create_preference_smart_listing_page.rb | 4 +- ...7_07_26_clean_birthdate_on_individual.rake | 2 +- ...mmentaire_piece_justificative_to_file.rake | 2 +- lib/tasks/cloud_storage.rake | 2 +- .../admin/gestionnaires_controller_spec.rb | 4 +- .../procedures_controller_spec.rb | 6 +-- spec/controllers/stats_controller_spec.rb | 52 +++++++++---------- .../description_controller_shared_example.rb | 6 +-- spec/factories/dossier.rb | 2 +- spec/models/procedure_spec.rb | 6 +-- spec/spec_helper.rb | 4 +- 83 files changed, 180 insertions(+), 178 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index f5abc6b74..6c9c0f40a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -640,22 +640,22 @@ Performance/UriDefaultParser: Enabled: true Rails/ActionFilter: - Enabled: false + Enabled: true Rails/ActiveRecordAliases: Enabled: true Rails/ActiveSupportAliases: - Enabled: false + Enabled: true Rails/ApplicationJob: - Enabled: false + Enabled: true Rails/ApplicationRecord: - Enabled: false + Enabled: true Rails/Blank: - Enabled: false + Enabled: true Rails/CreateTableWithTimestamps: Enabled: false @@ -667,28 +667,30 @@ Rails/Delegate: Enabled: false Rails/DelegateAllowBlank: - Enabled: false + Enabled: true Rails/DynamicFindBy: - Enabled: false + Enabled: true + Exclude: + - "spec/features/**/*.rb" Rails/EnumUniqueness: - Enabled: false + Enabled: true Rails/EnvironmentComparison: Enabled: false Rails/Exit: - Enabled: false + Enabled: true Rails/FilePath: - Enabled: false + Enabled: true Rails/FindBy: - Enabled: false + Enabled: true Rails/FindEach: - Enabled: false + Enabled: true Rails/HasAndBelongsToMany: Enabled: false @@ -697,7 +699,7 @@ Rails/HasManyOrHasOneDependent: Enabled: false Rails/HttpPositionalArguments: - Enabled: false + Enabled: true Rails/InverseOf: Enabled: false @@ -715,10 +717,10 @@ Rails/OutputSafety: Enabled: true Rails/PluralizationGrammar: - Enabled: false + Enabled: true Rails/Presence: - Enabled: false + Enabled: true Rails/Present: Enabled: true @@ -730,22 +732,22 @@ Rails/RedundantReceiverInWithOptions: Enabled: true Rails/RelativeDateConstant: - Enabled: false + Enabled: true Rails/RequestReferer: - Enabled: false + Enabled: true Rails/ReversibleMigration: Enabled: false Rails/SafeNavigation: - Enabled: false + Enabled: true Rails/SaveBang: Enabled: false Rails/ScopeArgs: - Enabled: false + Enabled: true Rails/SkipsModelValidations: Enabled: false @@ -754,13 +756,13 @@ Rails/TimeZone: Enabled: false Rails/UniqBeforePluck: - Enabled: false + Enabled: true Rails/UnknownEnv: Enabled: false Rails/Validation: - Enabled: false + Enabled: true Rails: Enabled: true diff --git a/app/controllers/admin/gestionnaires_controller.rb b/app/controllers/admin/gestionnaires_controller.rb index f6bdb1966..2ca3bdaa9 100644 --- a/app/controllers/admin/gestionnaires_controller.rb +++ b/app/controllers/admin/gestionnaires_controller.rb @@ -19,7 +19,7 @@ class Admin::GestionnairesController < AdminController def create email = params[:gestionnaire][:email].downcase - @gestionnaire = Gestionnaire.find_by_email(email) + @gestionnaire = Gestionnaire.find_by(email: email) procedure_id = params[:procedure_id] if @gestionnaire.nil? diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index 511024182..e3e834d55 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -132,7 +132,7 @@ class Admin::ProceduresController < AdminController return redirect_to admin_procedures_path end - procedure_path = ProcedurePath.find_by_path(params[:procedure_path]) + procedure_path = ProcedurePath.find_by(path: params[:procedure_path]) if procedure_path if procedure_path.administrateur_id == current_administrateur.id procedure_path.procedure.archive @@ -154,7 +154,7 @@ class Admin::ProceduresController < AdminController end def transfer - admin = Administrateur.find_by_email(params[:email_admin].downcase) + admin = Administrateur.find_by(email: params[:email_admin].downcase) if admin.nil? render '/admin/procedures/transfer', formats: 'js', status: 404 diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 255f9809a..3f561fb23 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -13,7 +13,7 @@ class APIController < ApplicationController end def current_administrateur - @administrateur ||= Administrateur.find_by_api_token(params[:token]) + @administrateur ||= Administrateur.find_by(api_token: params[:token]) end def default_format_json diff --git a/app/controllers/invites_controller.rb b/app/controllers/invites_controller.rb index 9a3c635fc..6405bca0f 100644 --- a/app/controllers/invites_controller.rb +++ b/app/controllers/invites_controller.rb @@ -9,7 +9,7 @@ class InvitesController < ApplicationController email = params[:email].downcase - user = User.find_by_email(email) + user = User.find_by(email: email) invite = class_var.create(dossier: dossier, user: user, email: email, email_sender: email_sender) if invite.valid? diff --git a/app/controllers/new_gestionnaire/avis_controller.rb b/app/controllers/new_gestionnaire/avis_controller.rb index 814f3c4ba..07367a7fd 100644 --- a/app/controllers/new_gestionnaire/avis_controller.rb +++ b/app/controllers/new_gestionnaire/avis_controller.rb @@ -13,7 +13,7 @@ module NewGestionnaire @avis_a_donner = gestionnaire_avis.without_answer @avis_donnes = gestionnaire_avis.with_answer - @statut = params[:statut].present? ? params[:statut] : A_DONNER_STATUS + @statut = params[:statut].presence || A_DONNER_STATUS @avis = case @statut when A_DONNER_STATUS diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb index a7b557d54..aefe3fa26 100644 --- a/app/controllers/new_gestionnaire/procedures_controller.rb +++ b/app/controllers/new_gestionnaire/procedures_controller.rb @@ -76,7 +76,7 @@ module NewGestionnaire filtered_sorted_ids = sorted_ids end - page = params[:page].present? ? params[:page] : 1 + page = params[:page].presence || 1 filtered_sorted_paginated_ids = Kaminari .paginate_array(filtered_sorted_ids) @@ -187,7 +187,7 @@ module NewGestionnaire private def statut - @statut ||= params[:statut].present? ? params[:statut] : 'a-suivre' + @statut ||= (params[:statut].presence || 'a-suivre') end def procedure diff --git a/app/controllers/stats_controller.rb b/app/controllers/stats_controller.rb index 470710103..c0e7c37b7 100644 --- a/app/controllers/stats_controller.rb +++ b/app/controllers/stats_controller.rb @@ -170,7 +170,7 @@ class StatsController < ApplicationController end def avis_usage - [3.week.ago, 2.week.ago, 1.week.ago].map do |min_date| + [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date| max_date = min_date + 1.week weekly_dossiers = Dossier.includes(:avis).where(created_at: min_date..max_date).to_a @@ -189,7 +189,7 @@ class StatsController < ApplicationController end def avis_average_answer_time - [3.week.ago, 2.week.ago, 1.week.ago].map do |min_date| + [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date| max_date = min_date + 1.week average = Avis.with_answer @@ -203,7 +203,7 @@ class StatsController < ApplicationController end def avis_answer_percentages - [3.week.ago, 2.week.ago, 1.week.ago].map do |min_date| + [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date| max_date = min_date + 1.week weekly_avis = Avis.where(created_at: min_date..max_date) @@ -222,7 +222,7 @@ class StatsController < ApplicationController end def motivation_usage_dossier - [3.week.ago, 2.week.ago, 1.week.ago].map do |date| + [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |date| min_date = date.beginning_of_week max_date = date.end_of_week @@ -241,7 +241,7 @@ class StatsController < ApplicationController end def motivation_usage_procedure - [3.week.ago, 2.week.ago, 1.week.ago].map do |date| + [3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |date| min_date = date.beginning_of_week max_date = date.end_of_week diff --git a/app/controllers/users/description_controller.rb b/app/controllers/users/description_controller.rb index ccf4b48fc..5c10df942 100644 --- a/app/controllers/users/description_controller.rb +++ b/app/controllers/users/description_controller.rb @@ -88,7 +88,7 @@ class Users::DescriptionController < UsersController flash.notice = 'Nouveaux fichiers envoyés' if flash.alert.nil? end - return redirect_to users_dossiers_invite_path(id: current_user.invites.find_by_dossier_id(@dossier.id).id) if invite + return redirect_to users_dossiers_invite_path(id: current_user.invites.find_by(dossier_id: @dossier.id).id) if invite redirect_to users_dossier_recapitulatif_path end diff --git a/app/controllers/users/dossiers/invites_controller.rb b/app/controllers/users/dossiers/invites_controller.rb index bb891eddd..89ac80a3c 100644 --- a/app/controllers/users/dossiers/invites_controller.rb +++ b/app/controllers/users/dossiers/invites_controller.rb @@ -1,7 +1,7 @@ class Users::Dossiers::InvitesController < UsersController def authenticate_user! session["user_return_to"] = request.fullpath - return redirect_to new_user_registration_path(user_email: params[:email]) if params[:email].present? && User.find_by_email(params[:email]).nil? + return redirect_to new_user_registration_path(user_email: params[:email]) if params[:email].present? && User.find_by(email: params[:email]).nil? super end diff --git a/app/decorators/entreprise_decorator.rb b/app/decorators/entreprise_decorator.rb index 21d32e4d9..9cb958ca3 100644 --- a/app/decorators/entreprise_decorator.rb +++ b/app/decorators/entreprise_decorator.rb @@ -2,7 +2,7 @@ class EntrepriseDecorator < Draper::Decorator delegate_all def raison_sociale_or_name - raison_sociale.blank? ? "#{nom} #{prenom}" : raison_sociale + raison_sociale.presence || "#{nom} #{prenom}" end def effectif diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index f1f2e379b..ffd21bd17 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -1,4 +1,4 @@ -class Administrateur < ActiveRecord::Base +class Administrateur < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable diff --git a/app/models/administration.rb b/app/models/administration.rb index b9805b3cc..d053a2c0a 100644 --- a/app/models/administration.rb +++ b/app/models/administration.rb @@ -1,4 +1,4 @@ -class Administration < ActiveRecord::Base +class Administration < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:github] diff --git a/app/models/assign_to.rb b/app/models/assign_to.rb index 5865e61bc..e044014c7 100644 --- a/app/models/assign_to.rb +++ b/app/models/assign_to.rb @@ -1,4 +1,4 @@ -class AssignTo < ActiveRecord::Base +class AssignTo < ApplicationRecord belongs_to :procedure belongs_to :gestionnaire has_one :procedure_presentation, dependent: :destroy diff --git a/app/models/cadastre.rb b/app/models/cadastre.rb index c2e318ba9..4d356f3cc 100644 --- a/app/models/cadastre.rb +++ b/app/models/cadastre.rb @@ -1,4 +1,4 @@ -class Cadastre < ActiveRecord::Base +class Cadastre < ApplicationRecord belongs_to :dossier, touch: true def geometry diff --git a/app/models/cerfa.rb b/app/models/cerfa.rb index 8d83a6324..62432039e 100644 --- a/app/models/cerfa.rb +++ b/app/models/cerfa.rb @@ -1,4 +1,4 @@ -class Cerfa < ActiveRecord::Base +class Cerfa < ApplicationRecord belongs_to :dossier, touch: true belongs_to :user diff --git a/app/models/champ.rb b/app/models/champ.rb index 5003161b6..ac45708a0 100644 --- a/app/models/champ.rb +++ b/app/models/champ.rb @@ -1,4 +1,4 @@ -class Champ < ActiveRecord::Base +class Champ < ApplicationRecord self.inheritance_column = :_type_disabled belongs_to :dossier, touch: true diff --git a/app/models/commentaire.rb b/app/models/commentaire.rb index 5db55fd13..2425e29da 100644 --- a/app/models/commentaire.rb +++ b/app/models/commentaire.rb @@ -1,4 +1,4 @@ -class Commentaire < ActiveRecord::Base +class Commentaire < ApplicationRecord belongs_to :dossier, touch: true belongs_to :champ belongs_to :piece_justificative @@ -6,7 +6,7 @@ class Commentaire < ActiveRecord::Base mount_uploader :file, CommentaireFileUploader validates :file, file_size: { maximum: 20.megabytes, message: "La taille du fichier doit être inférieure à 20 Mo" } validate :is_virus_free? - validates_presence_of :body, message: "Votre message ne peut être vide" + validates :body, presence: { message: "Votre message ne peut être vide" } default_scope { order(created_at: :asc) } scope :updated_since?, -> (date) { where('commentaires.updated_at > ?', date) } diff --git a/app/models/dossier.rb b/app/models/dossier.rb index cf266f3d8..9772d1bc5 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -1,4 +1,4 @@ -class Dossier < ActiveRecord::Base +class Dossier < ApplicationRecord enum state: { brouillon: 'brouillon', en_construction: 'en_construction', diff --git a/app/models/drop_down_list.rb b/app/models/drop_down_list.rb index 91e49f9b3..45a0f23bc 100644 --- a/app/models/drop_down_list.rb +++ b/app/models/drop_down_list.rb @@ -1,4 +1,4 @@ -class DropDownList < ActiveRecord::Base +class DropDownList < ApplicationRecord belongs_to :type_de_champ def options diff --git a/app/models/entreprise.rb b/app/models/entreprise.rb index 3e92635c9..db62b88ec 100644 --- a/app/models/entreprise.rb +++ b/app/models/entreprise.rb @@ -1,10 +1,10 @@ -class Entreprise < ActiveRecord::Base +class Entreprise < ApplicationRecord belongs_to :dossier has_one :etablissement, dependent: :destroy has_one :rna_information, dependent: :destroy - validates_presence_of :siren - validates_uniqueness_of :dossier_id + validates :siren, presence: true + validates :dossier_id, uniqueness: true accepts_nested_attributes_for :rna_information diff --git a/app/models/etablissement.rb b/app/models/etablissement.rb index 2b51f17ea..ff2885c46 100644 --- a/app/models/etablissement.rb +++ b/app/models/etablissement.rb @@ -1,4 +1,4 @@ -class Etablissement < ActiveRecord::Base +class Etablissement < ApplicationRecord belongs_to :dossier belongs_to :entreprise @@ -7,7 +7,7 @@ class Etablissement < ActiveRecord::Base accepts_nested_attributes_for :exercices accepts_nested_attributes_for :entreprise - validates_uniqueness_of :dossier_id + validates :dossier_id, uniqueness: true def geo_adresse [numero_voie, type_voie, nom_voie, complement_adresse, code_postal, localite].join(' ') diff --git a/app/models/exercice.rb b/app/models/exercice.rb index 7336d3f38..0902916ee 100644 --- a/app/models/exercice.rb +++ b/app/models/exercice.rb @@ -1,4 +1,4 @@ -class Exercice < ActiveRecord::Base +class Exercice < ApplicationRecord belongs_to :etablissement validates :ca, presence: true, allow_blank: false, allow_nil: false diff --git a/app/models/follow.rb b/app/models/follow.rb index ea18f9e0f..4086a1ec7 100644 --- a/app/models/follow.rb +++ b/app/models/follow.rb @@ -1,8 +1,8 @@ -class Follow < ActiveRecord::Base +class Follow < ApplicationRecord belongs_to :gestionnaire belongs_to :dossier - validates_uniqueness_of :gestionnaire_id, :scope => :dossier_id + validates :gestionnaire_id, uniqueness: { scope: :dossier_id } before_create :set_default_date diff --git a/app/models/france_connect_information.rb b/app/models/france_connect_information.rb index a4cdcad85..124437f63 100644 --- a/app/models/france_connect_information.rb +++ b/app/models/france_connect_information.rb @@ -1,4 +1,4 @@ -class FranceConnectInformation < ActiveRecord::Base +class FranceConnectInformation < ApplicationRecord belongs_to :user validates :france_connect_particulier_id, presence: true, allow_blank: false, allow_nil: false diff --git a/app/models/gestionnaire.rb b/app/models/gestionnaire.rb index f46ab8af4..a01eddad9 100644 --- a/app/models/gestionnaire.rb +++ b/app/models/gestionnaire.rb @@ -1,4 +1,4 @@ -class Gestionnaire < ActiveRecord::Base +class Gestionnaire < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable diff --git a/app/models/individual.rb b/app/models/individual.rb index a1a2b9d82..3a0c1410c 100644 --- a/app/models/individual.rb +++ b/app/models/individual.rb @@ -1,7 +1,7 @@ -class Individual < ActiveRecord::Base +class Individual < ApplicationRecord belongs_to :dossier - validates_uniqueness_of :dossier_id + validates :dossier_id, uniqueness: true validates :gender, presence: true, allow_nil: false, on: :update validates :nom, presence: true, allow_blank: false, allow_nil: false, on: :update validates :prenom, presence: true, allow_blank: false, allow_nil: false, on: :update diff --git a/app/models/invite.rb b/app/models/invite.rb index dde8b2c6f..526026634 100644 --- a/app/models/invite.rb +++ b/app/models/invite.rb @@ -1,9 +1,9 @@ -class Invite < ActiveRecord::Base +class Invite < ApplicationRecord belongs_to :dossier belongs_to :user - validates_presence_of :email - validates_uniqueness_of :email, :scope => :dossier_id + validates :email, presence: true + validates :email, uniqueness: { scope: :dossier_id } validates :email, email_format: true end diff --git a/app/models/module_api_carto.rb b/app/models/module_api_carto.rb index 1b9e47df1..94d7a34c5 100644 --- a/app/models/module_api_carto.rb +++ b/app/models/module_api_carto.rb @@ -1,4 +1,4 @@ -class ModuleAPICarto < ActiveRecord::Base +class ModuleAPICarto < ApplicationRecord belongs_to :procedure validates :use_api_carto, presence: true, allow_blank: true, allow_nil: false diff --git a/app/models/piece_justificative.rb b/app/models/piece_justificative.rb index 8d32d0543..0dd196d2f 100644 --- a/app/models/piece_justificative.rb +++ b/app/models/piece_justificative.rb @@ -1,4 +1,4 @@ -class PieceJustificative < ActiveRecord::Base +class PieceJustificative < ApplicationRecord belongs_to :dossier, touch: true belongs_to :type_de_piece_justificative has_one :commentaire diff --git a/app/models/procedure.rb b/app/models/procedure.rb index e750d7a21..436a43a7c 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -1,4 +1,4 @@ -class Procedure < ActiveRecord::Base +class Procedure < ApplicationRecord has_many :types_de_piece_justificative, -> { order "order_place ASC" }, dependent: :destroy has_many :types_de_champ, -> { public_only }, dependent: :destroy has_many :types_de_champ_private, -> { private_only }, class_name: 'TypeDeChamp', dependent: :destroy diff --git a/app/models/procedure_path.rb b/app/models/procedure_path.rb index 98fd4e3d1..62dc924b3 100644 --- a/app/models/procedure_path.rb +++ b/app/models/procedure_path.rb @@ -1,4 +1,4 @@ -class ProcedurePath < ActiveRecord::Base +class ProcedurePath < ApplicationRecord validates :path, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, presence: true, allow_blank: false, allow_nil: false validates :administrateur_id, presence: true, allow_blank: false, allow_nil: false validates :procedure_id, presence: true, allow_blank: false, allow_nil: false diff --git a/app/models/procedure_presentation.rb b/app/models/procedure_presentation.rb index 8982cc7db..ce0fc8b9d 100644 --- a/app/models/procedure_presentation.rb +++ b/app/models/procedure_presentation.rb @@ -1,4 +1,4 @@ -class ProcedurePresentation < ActiveRecord::Base +class ProcedurePresentation < ApplicationRecord belongs_to :assign_to def displayed_fields diff --git a/app/models/quartier_prioritaire.rb b/app/models/quartier_prioritaire.rb index c8ac1f712..5e3f37e0b 100644 --- a/app/models/quartier_prioritaire.rb +++ b/app/models/quartier_prioritaire.rb @@ -1,4 +1,4 @@ -class QuartierPrioritaire < ActiveRecord::Base +class QuartierPrioritaire < ApplicationRecord belongs_to :dossier, touch: true def geometry diff --git a/app/models/rna_information.rb b/app/models/rna_information.rb index 409f7bd10..9797d1072 100644 --- a/app/models/rna_information.rb +++ b/app/models/rna_information.rb @@ -1,4 +1,4 @@ -class RNAInformation < ActiveRecord::Base +class RNAInformation < ApplicationRecord belongs_to :entreprise validates :association_id, presence: true, allow_blank: false, allow_nil: false diff --git a/app/models/search.rb b/app/models/search.rb index 7e455f4a8..3ab9adbd0 100644 --- a/app/models/search.rb +++ b/app/models/search.rb @@ -1,7 +1,7 @@ # See: # - https://robots.thoughtbot.com/implementing-multi-table-full-text-search-with-postgres # - http://calebthompson.io/talks/search.html -class Search < ActiveRecord::Base +class Search < ApplicationRecord # :nodoc: # # Englobs a search result (actually a collection of Search objects) so it acts diff --git a/app/models/siret.rb b/app/models/siret.rb index d9e12ff11..f1b9cda8a 100644 --- a/app/models/siret.rb +++ b/app/models/siret.rb @@ -4,7 +4,7 @@ class Siret attr_accessor :siret - validates_presence_of :siret + validates :siret, presence: true validates :siret, siret_format: true before_validation :remove_whitespace diff --git a/app/models/type_de_champ.rb b/app/models/type_de_champ.rb index ecc42691a..1facb4220 100644 --- a/app/models/type_de_champ.rb +++ b/app/models/type_de_champ.rb @@ -1,4 +1,4 @@ -class TypeDeChamp < ActiveRecord::Base +class TypeDeChamp < ApplicationRecord self.inheritance_column = :_type_disabled enum type_champs: { diff --git a/app/models/type_de_piece_justificative.rb b/app/models/type_de_piece_justificative.rb index 7bdb8ac42..a2527461f 100644 --- a/app/models/type_de_piece_justificative.rb +++ b/app/models/type_de_piece_justificative.rb @@ -1,4 +1,4 @@ -class TypeDePieceJustificative < ActiveRecord::Base +class TypeDePieceJustificative < ApplicationRecord has_many :pieces_justificatives, dependent: :destroy belongs_to :procedure diff --git a/app/models/user.rb b/app/models/user.rb index 362eba6b7..a495d2f84 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,4 +1,4 @@ -class User < ActiveRecord::Base +class User < ApplicationRecord enum loged_in_with_france_connect: { particulier: 'particulier', entreprise: 'entreprise' @@ -21,7 +21,7 @@ class User < ActiveRecord::Base include CredentialsSyncableConcern def self.find_for_france_connect email, siret - user = User.find_by_email(email) + user = User.find_by(email: email) if user.nil? return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret) else diff --git a/app/services/staging_auth_service.rb b/app/services/staging_auth_service.rb index c6886f5a2..c4dd250d8 100644 --- a/app/services/staging_auth_service.rb +++ b/app/services/staging_auth_service.rb @@ -1,5 +1,5 @@ class StagingAuthService - CONFIG_PATH = Rails.root.join("config/basic_auth.yml") + CONFIG_PATH = Rails.root.join("config", "basic_auth.yml") def self.authenticate(username, password) if enabled? diff --git a/app/uploaders/attestation_template_logo_uploader.rb b/app/uploaders/attestation_template_logo_uploader.rb index 727938758..b9d7d83cc 100644 --- a/app/uploaders/attestation_template_logo_uploader.rb +++ b/app/uploaders/attestation_template_logo_uploader.rb @@ -1,6 +1,6 @@ class AttestationTemplateLogoUploader < BaseUploader def root - File.join(Rails.root, 'public') + Rails.root.join("public") end # Choose what kind of storage to use for this uploader: diff --git a/app/uploaders/attestation_template_signature_uploader.rb b/app/uploaders/attestation_template_signature_uploader.rb index 9f74d43ab..3a740e2d1 100644 --- a/app/uploaders/attestation_template_signature_uploader.rb +++ b/app/uploaders/attestation_template_signature_uploader.rb @@ -1,6 +1,6 @@ class AttestationTemplateSignatureUploader < BaseUploader def root - File.join(Rails.root, 'public') + Rails.root.join("public") end # Choose what kind of storage to use for this uploader: diff --git a/app/uploaders/attestation_uploader.rb b/app/uploaders/attestation_uploader.rb index 80fd751f5..1c3cf0e44 100644 --- a/app/uploaders/attestation_uploader.rb +++ b/app/uploaders/attestation_uploader.rb @@ -1,6 +1,6 @@ class AttestationUploader < BaseUploader def root - File.join(Rails.root, 'public') + Rails.root.join("public") end # Choose what kind of storage to use for this uploader: diff --git a/app/uploaders/commentaire_file_uploader.rb b/app/uploaders/commentaire_file_uploader.rb index 6b5d95fcb..c681d25b1 100644 --- a/app/uploaders/commentaire_file_uploader.rb +++ b/app/uploaders/commentaire_file_uploader.rb @@ -1,6 +1,6 @@ class CommentaireFileUploader < BaseUploader def root - File.join(Rails.root, 'public') + Rails.root.join("public") end if Features.remote_storage diff --git a/app/uploaders/local_downloader.rb b/app/uploaders/local_downloader.rb index 26a07e3d2..82f33d12f 100644 --- a/app/uploaders/local_downloader.rb +++ b/app/uploaders/local_downloader.rb @@ -1,7 +1,7 @@ require 'securerandom' class LocalDownloader - BASE_PATH_DISK = File.join(Rails.root, "public/downloads/") + BASE_PATH_DISK = Rails.root.join("public", "downloads") def initialize(filename, filename_suffix = '') @filename = filename.to_s diff --git a/app/uploaders/procedure_logo_uploader.rb b/app/uploaders/procedure_logo_uploader.rb index 288076b0d..73c4b1fc4 100644 --- a/app/uploaders/procedure_logo_uploader.rb +++ b/app/uploaders/procedure_logo_uploader.rb @@ -1,6 +1,6 @@ class ProcedureLogoUploader < BaseUploader def root - File.join(Rails.root, "public") + Rails.root.join("public") end # Choose what kind of storage to use for this uploader: diff --git a/config/initializers/apipie.rb b/config/initializers/apipie.rb index 7a72a71a8..394b7a5d4 100644 --- a/config/initializers/apipie.rb +++ b/config/initializers/apipie.rb @@ -2,7 +2,7 @@ Apipie.configure do |config| config.app_name = "API demarches-simplifiees.fr" config.api_base_url = "/api/v1" config.doc_base_url = "/docs" - config.api_controllers_matcher = File.join(Rails.root, "app", "controllers","api","v1", "**","*.rb") + config.api_controllers_matcher = Rails.root.join("app", "controllers"," api", "v1", "**", "*.rb") config.markup = Apipie::Markup::Markdown.new config.default_version = '1.0' config.validate = false diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb index cd43a1b78..4bb01d1b9 100644 --- a/config/initializers/carrierwave.rb +++ b/config/initializers/carrierwave.rb @@ -1,9 +1,9 @@ require_relative 'features' if Rails.env.test? - Fog.credentials_path = Rails.root.join('config/fog_credentials.test.yml') + Fog.credentials_path = Rails.root.join('config', 'fog_credentials.test.yml') else - Fog.credentials_path = Rails.root.join('config/fog_credentials.yml') + Fog.credentials_path = Rails.root.join('config', 'fog_credentials.yml') end CarrierWave.configure do |config| @@ -20,7 +20,7 @@ CarrierWave.configure do |config| # they will not be available for public (non-authenticated) downloading config.root = Rails.root - config.cache_dir = "#{Rails.root}/uploads" + config.cache_dir = Rails.root.join("uploads") config.fog_public = true diff --git a/config/initializers/france_connect.rb b/config/initializers/france_connect.rb index a3702335b..493058fd9 100644 --- a/config/initializers/france_connect.rb +++ b/config/initializers/france_connect.rb @@ -11,7 +11,7 @@ FRANCE_CONNECT = if Rails.env.test? } } else - fc_config_file_path = "#{Rails.root}/config/france_connect.yml" + fc_config_file_path = Rails.root.join("config", "france_connect.yml") # FIXME: with a yaml with a { particulier: {} } structure config_hash = YAML.safe_load(File.read(fc_config_file_path)) diff --git a/db/migrate/20151207140202_update_module_api_carto.rb b/db/migrate/20151207140202_update_module_api_carto.rb index 25549224d..9641d5c61 100644 --- a/db/migrate/20151207140202_update_module_api_carto.rb +++ b/db/migrate/20151207140202_update_module_api_carto.rb @@ -1,8 +1,8 @@ class UpdateModuleAPICarto < ActiveRecord::Migration - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord end - class ModuleAPICarto < ActiveRecord::Base + class ModuleAPICarto < ApplicationRecord end def up diff --git a/db/migrate/20160120094750_create_france_connect_information.rb b/db/migrate/20160120094750_create_france_connect_information.rb index 2178c02eb..3363092c0 100644 --- a/db/migrate/20160120094750_create_france_connect_information.rb +++ b/db/migrate/20160120094750_create_france_connect_information.rb @@ -1,8 +1,8 @@ class CreateFranceConnectInformation < ActiveRecord::Migration - class User < ActiveRecord::Base + class User < ApplicationRecord end - class FranceConnectInformation < ActiveRecord::Base + class FranceConnectInformation < ApplicationRecord end def up diff --git a/db/migrate/20160317135217_d_bremove_piece_justificative_empty.rb b/db/migrate/20160317135217_d_bremove_piece_justificative_empty.rb index b1d16c346..f9e34f7f2 100644 --- a/db/migrate/20160317135217_d_bremove_piece_justificative_empty.rb +++ b/db/migrate/20160317135217_d_bremove_piece_justificative_empty.rb @@ -1,5 +1,5 @@ class DBremovePieceJustificativeEmpty < ActiveRecord::Migration - class PieceJustificative < ActiveRecord::Base + class PieceJustificative < ApplicationRecord end def change diff --git a/db/migrate/20160317144949_piece_justificative_have_user.rb b/db/migrate/20160317144949_piece_justificative_have_user.rb index 23ddd81a3..d8584d997 100644 --- a/db/migrate/20160317144949_piece_justificative_have_user.rb +++ b/db/migrate/20160317144949_piece_justificative_have_user.rb @@ -1,13 +1,13 @@ class PieceJustificativeHaveUser < ActiveRecord::Migration - class PieceJustificative < ActiveRecord::Base + class PieceJustificative < ApplicationRecord belongs_to :dossier end - class Dossier < ActiveRecord::Base + class Dossier < ApplicationRecord belongs_to :user end - class User < ActiveRecord::Base + class User < ApplicationRecord end def change diff --git a/db/migrate/20160317153115_cerfa_have_user.rb b/db/migrate/20160317153115_cerfa_have_user.rb index a50cbf4c4..44ebf2db9 100644 --- a/db/migrate/20160317153115_cerfa_have_user.rb +++ b/db/migrate/20160317153115_cerfa_have_user.rb @@ -1,13 +1,13 @@ class CerfaHaveUser < ActiveRecord::Migration - class Cerfa < ActiveRecord::Base + class Cerfa < ApplicationRecord belongs_to :dossier end - class Dossier < ActiveRecord::Base + class Dossier < ApplicationRecord belongs_to :user end - class User < ActiveRecord::Base + class User < ApplicationRecord end def change diff --git a/db/migrate/20160519100904_admin_has_and_belong_gestionnaire.rb b/db/migrate/20160519100904_admin_has_and_belong_gestionnaire.rb index 9eb2bc05b..d655b9366 100644 --- a/db/migrate/20160519100904_admin_has_and_belong_gestionnaire.rb +++ b/db/migrate/20160519100904_admin_has_and_belong_gestionnaire.rb @@ -1,8 +1,8 @@ class AdminHasAndBelongGestionnaire < ActiveRecord::Migration - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord end - class AdministrateursGestionnaire < ActiveRecord::Base + class AdministrateursGestionnaire < ApplicationRecord end def up diff --git a/db/migrate/20160519101018_gestionnaire_is_assign_to_procedure.rb b/db/migrate/20160519101018_gestionnaire_is_assign_to_procedure.rb index 120245803..059c8aa48 100644 --- a/db/migrate/20160519101018_gestionnaire_is_assign_to_procedure.rb +++ b/db/migrate/20160519101018_gestionnaire_is_assign_to_procedure.rb @@ -1,20 +1,20 @@ class GestionnaireIsAssignToProcedure < ActiveRecord::Migration - class AssignTo < ActiveRecord::Base + class AssignTo < ApplicationRecord belongs_to :gestionnaire belongs_to :procedure end - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord has_and_belongs_to_many :administrateurs has_many :procedures, through: :assign_to end - class Administrateur < ActiveRecord::Base + class Administrateur < ApplicationRecord has_and_belongs_to_many :gestionnaires has_many :procedures end - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord belongs_to :administrateur has_many :gestionnaires, through: :assign_to end diff --git a/db/migrate/20160524093540_set_original_filename_for_uploaders.rb b/db/migrate/20160524093540_set_original_filename_for_uploaders.rb index bf8e700f2..2bd688a4e 100644 --- a/db/migrate/20160524093540_set_original_filename_for_uploaders.rb +++ b/db/migrate/20160524093540_set_original_filename_for_uploaders.rb @@ -1,8 +1,8 @@ class SetOriginalFilenameForUploaders < ActiveRecord::Migration - class PieceJustificative < ActiveRecord::Base + class PieceJustificative < ApplicationRecord end - class Cerfa < ActiveRecord::Base + class Cerfa < ApplicationRecord end def change diff --git a/db/migrate/20160609125949_add_procedure_status.rb b/db/migrate/20160609125949_add_procedure_status.rb index 6d4ea7e2e..7e7b38160 100644 --- a/db/migrate/20160609125949_add_procedure_status.rb +++ b/db/migrate/20160609125949_add_procedure_status.rb @@ -1,5 +1,5 @@ class AddProcedureStatus < ActiveRecord::Migration - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord end def change diff --git a/db/migrate/20160609145737_delete_default_description_to_dossier.rb b/db/migrate/20160609145737_delete_default_description_to_dossier.rb index feca43f92..7eea84a40 100644 --- a/db/migrate/20160609145737_delete_default_description_to_dossier.rb +++ b/db/migrate/20160609145737_delete_default_description_to_dossier.rb @@ -1,14 +1,14 @@ class DeleteDefaultDescriptionToDossier < ActiveRecord::Migration - class Dossier < ActiveRecord::Base + class Dossier < ApplicationRecord end - class Champ < ActiveRecord::Base + class Champ < ApplicationRecord end - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord end - class TypeDeChamp < ActiveRecord::Base + class TypeDeChamp < ApplicationRecord end def up diff --git a/db/migrate/20160622081321_convert_all_datetime_to_date_on_database.rb b/db/migrate/20160622081321_convert_all_datetime_to_date_on_database.rb index 2c61b98c2..96c094166 100644 --- a/db/migrate/20160622081321_convert_all_datetime_to_date_on_database.rb +++ b/db/migrate/20160622081321_convert_all_datetime_to_date_on_database.rb @@ -1,5 +1,5 @@ class ConvertAllDatetimeToDateOnDatabase < ActiveRecord::Migration - class TypeDeChamp < ActiveRecord::Base + class TypeDeChamp < ApplicationRecord end def change diff --git a/db/migrate/20160622081322_add_procedure_path_mapping_table.rb b/db/migrate/20160622081322_add_procedure_path_mapping_table.rb index 9d3eecc1f..ebe600f8f 100644 --- a/db/migrate/20160622081322_add_procedure_path_mapping_table.rb +++ b/db/migrate/20160622081322_add_procedure_path_mapping_table.rb @@ -1,5 +1,5 @@ class AddProcedurePathMappingTable < ActiveRecord::Migration - class ProcedurePath < ActiveRecord::Base + class ProcedurePath < ApplicationRecord end def change diff --git a/db/migrate/20160802113112_build_default_preference_list_dossier.rb b/db/migrate/20160802113112_build_default_preference_list_dossier.rb index a1628f20f..69efaefe1 100644 --- a/db/migrate/20160802113112_build_default_preference_list_dossier.rb +++ b/db/migrate/20160802113112_build_default_preference_list_dossier.rb @@ -1,5 +1,5 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord def build_default_preferences_list_dossier PreferenceListDossier.available_columns.each do |table| table.second.each do |column| @@ -47,7 +47,7 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration end end - class PreferenceListDossier < ActiveRecord::Base + class PreferenceListDossier < ApplicationRecord def self.available_columns { dossier: columns_dossier, diff --git a/db/migrate/20160803081304_fix_default_type_on_type_de_champ_table.rb b/db/migrate/20160803081304_fix_default_type_on_type_de_champ_table.rb index 56120ef60..6bc12ed6d 100644 --- a/db/migrate/20160803081304_fix_default_type_on_type_de_champ_table.rb +++ b/db/migrate/20160803081304_fix_default_type_on_type_de_champ_table.rb @@ -1,5 +1,5 @@ class FixDefaultTypeOnTypeDeChampTable < ActiveRecord::Migration - class TypeDeChamp < ActiveRecord::Base + class TypeDeChamp < ApplicationRecord end def up diff --git a/db/migrate/20160804130638_add_type_attr_in_champ_table.rb b/db/migrate/20160804130638_add_type_attr_in_champ_table.rb index df21b33ea..5f42889d9 100644 --- a/db/migrate/20160804130638_add_type_attr_in_champ_table.rb +++ b/db/migrate/20160804130638_add_type_attr_in_champ_table.rb @@ -1,9 +1,9 @@ class AddTypeAttrInChampTable < ActiveRecord::Migration - class TypeDeChamp < ActiveRecord::Base + class TypeDeChamp < ApplicationRecord has_many :champs end - class Champ < ActiveRecord::Base + class Champ < ApplicationRecord belongs_to :type_de_champ end diff --git a/db/migrate/20160822142045_delete_value_of_filter_procedure.rb b/db/migrate/20160822142045_delete_value_of_filter_procedure.rb index 30a12da5f..e1f8c771d 100644 --- a/db/migrate/20160822142045_delete_value_of_filter_procedure.rb +++ b/db/migrate/20160822142045_delete_value_of_filter_procedure.rb @@ -1,5 +1,5 @@ class DeleteValueOfFilterProcedure < ActiveRecord::Migration - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord end def change diff --git a/db/migrate/20160901082824_initiated_all_received_mail_for_procedure.rb b/db/migrate/20160901082824_initiated_all_received_mail_for_procedure.rb index a2ccc89d9..edfbec2fd 100644 --- a/db/migrate/20160901082824_initiated_all_received_mail_for_procedure.rb +++ b/db/migrate/20160901082824_initiated_all_received_mail_for_procedure.rb @@ -1,9 +1,9 @@ class InitiatedAllReceivedMailForProcedure < ActiveRecord::Migration - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord has_one :mail_received end - class MailTemplate < ActiveRecord::Base + class MailTemplate < ApplicationRecord end class ::MailReceived < MailTemplate diff --git a/db/migrate/20160906134155_build_default_pref_list_dossier_procedure.rb b/db/migrate/20160906134155_build_default_pref_list_dossier_procedure.rb index 103d1454b..26158f299 100644 --- a/db/migrate/20160906134155_build_default_pref_list_dossier_procedure.rb +++ b/db/migrate/20160906134155_build_default_pref_list_dossier_procedure.rb @@ -1,21 +1,21 @@ class BuildDefaultPrefListDossierProcedure < ActiveRecord::Migration - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord has_many :assign_to, dependent: :destroy has_many :procedures, through: :assign_to has_many :preference_list_dossiers end - class PreferenceListDossier < ActiveRecord::Base + class PreferenceListDossier < ApplicationRecord belongs_to :gestionnaire belongs_to :procedure end - class AssignTo < ActiveRecord::Base + class AssignTo < ApplicationRecord belongs_to :procedure belongs_to :gestionnaire end - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord has_many :gestionnaires, through: :assign_to has_many :preference_list_dossiers end diff --git a/db/migrate/20160927154248_change_emptyto_nil_in_preference_list_dossier_table.rb b/db/migrate/20160927154248_change_emptyto_nil_in_preference_list_dossier_table.rb index e4203c62c..7bc555765 100644 --- a/db/migrate/20160927154248_change_emptyto_nil_in_preference_list_dossier_table.rb +++ b/db/migrate/20160927154248_change_emptyto_nil_in_preference_list_dossier_table.rb @@ -1,5 +1,5 @@ class ChangeEmptytoNilInPreferenceListDossierTable < ActiveRecord::Migration - class PreferenceListDossier < ActiveRecord::Base + class PreferenceListDossier < ApplicationRecord end def change diff --git a/db/migrate/20161004175442_fix_type_de_champ_header_section_with_mandatory_true.rb b/db/migrate/20161004175442_fix_type_de_champ_header_section_with_mandatory_true.rb index 23aec6f90..2282e7e6f 100644 --- a/db/migrate/20161004175442_fix_type_de_champ_header_section_with_mandatory_true.rb +++ b/db/migrate/20161004175442_fix_type_de_champ_header_section_with_mandatory_true.rb @@ -1,5 +1,5 @@ class FixTypeDeChampHeaderSectionWithMandatoryTrue < ActiveRecord::Migration - class TypeDeChamp < ActiveRecord::Base + class TypeDeChamp < ApplicationRecord end def change diff --git a/db/migrate/20161005144657_purge_draft_dossier.rb b/db/migrate/20161005144657_purge_draft_dossier.rb index e81c6cd68..87d604803 100644 --- a/db/migrate/20161005144657_purge_draft_dossier.rb +++ b/db/migrate/20161005144657_purge_draft_dossier.rb @@ -1,5 +1,5 @@ class PurgeDraftDossier < ActiveRecord::Migration - class Dossier < ActiveRecord::Base + class Dossier < ApplicationRecord BROUILLON = %w(draft) def brouillon? @@ -7,11 +7,11 @@ class PurgeDraftDossier < ActiveRecord::Migration end end - class Commentaire < ActiveRecord::Base + class Commentaire < ApplicationRecord belongs_to :dossier end - class Cerfa < ActiveRecord::Base + class Cerfa < ApplicationRecord belongs_to :dossier belongs_to :user end diff --git a/db/migrate/20161007095443_reset_all_preference_list_dossier.rb b/db/migrate/20161007095443_reset_all_preference_list_dossier.rb index 47e44ce44..d0d08f4d3 100644 --- a/db/migrate/20161007095443_reset_all_preference_list_dossier.rb +++ b/db/migrate/20161007095443_reset_all_preference_list_dossier.rb @@ -1,5 +1,5 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration - class PreferenceListDossier < ActiveRecord::Base + class PreferenceListDossier < ApplicationRecord belongs_to :gestionnaire belongs_to :procedure @@ -91,7 +91,7 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration end end - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord has_many :assign_to, dependent: :destroy has_many :procedures, through: :assign_to @@ -145,7 +145,7 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration end end - class Procedure < ActiveRecord::Base + class Procedure < ApplicationRecord has_many :assign_to, dependent: :destroy has_many :gestionnaires, through: :assign_to end diff --git a/db/migrate/20161011125345_create_preference_smart_listing_page.rb b/db/migrate/20161011125345_create_preference_smart_listing_page.rb index 510cfc156..39061ad43 100644 --- a/db/migrate/20161011125345_create_preference_smart_listing_page.rb +++ b/db/migrate/20161011125345_create_preference_smart_listing_page.rb @@ -1,5 +1,5 @@ class CreatePreferenceSmartListingPage < ActiveRecord::Migration - class Gestionnaire < ActiveRecord::Base + class Gestionnaire < ApplicationRecord has_one :preference_smart_listing_page, dependent: :destroy def build_default_preferences_smart_listing_page @@ -7,7 +7,7 @@ class CreatePreferenceSmartListingPage < ActiveRecord::Migration end end - class PreferenceSmartListingPage < ActiveRecord::Base + class PreferenceSmartListingPage < ApplicationRecord belongs_to :gestionnaire belongs_to :procedure diff --git a/lib/tasks/2017_07_26_clean_birthdate_on_individual.rake b/lib/tasks/2017_07_26_clean_birthdate_on_individual.rake index 27a61451e..a9fcf1bcc 100644 --- a/lib/tasks/2017_07_26_clean_birthdate_on_individual.rake +++ b/lib/tasks/2017_07_26_clean_birthdate_on_individual.rake @@ -19,7 +19,7 @@ namespace :'2017_07_26_clean_birthdate_on_individual' do puts "cleaning #{i.birthdate}" new_date = Date.strptime(i.birthdate, "%d/%m/%y") if new_date.year > 2017 - new_date = new_date - 100.year + new_date = new_date - 100.years end i.update(birthdate: new_date.iso8601) end diff --git a/lib/tasks/2017_10_30_copy_commentaire_piece_justificative_to_file.rake b/lib/tasks/2017_10_30_copy_commentaire_piece_justificative_to_file.rake index 8e3422582..8f7591941 100644 --- a/lib/tasks/2017_10_30_copy_commentaire_piece_justificative_to_file.rake +++ b/lib/tasks/2017_10_30_copy_commentaire_piece_justificative_to_file.rake @@ -41,7 +41,7 @@ namespace :'2017_10_30_copy_commentaire_piece_justificative_to_file' do end commentaire.save - if !commentaire.file.present? + if commentaire.file.blank? puts "Failed to save file for commentaire #{commentaire.id}" end end diff --git a/lib/tasks/cloud_storage.rake b/lib/tasks/cloud_storage.rake index f4cfb11cf..538f5268c 100644 --- a/lib/tasks/cloud_storage.rake +++ b/lib/tasks/cloud_storage.rake @@ -105,7 +105,7 @@ namespace :cloudstorage do @cont.objects_detail.each { |object, details| last_modified = DateTime.parse(details[:last_modified]) - @cont.delete_object(object) if last_modified.utc <= (Time.now - 2.year).utc + @cont.delete_object(object) if last_modified.utc <= (Time.now - 2.years).utc } end end diff --git a/spec/controllers/admin/gestionnaires_controller_spec.rb b/spec/controllers/admin/gestionnaires_controller_spec.rb index 2398c08cb..9f9f6091a 100644 --- a/spec/controllers/admin/gestionnaires_controller_spec.rb +++ b/spec/controllers/admin/gestionnaires_controller_spec.rb @@ -112,7 +112,7 @@ describe Admin::GestionnairesController, type: :controller do end context 'when an other admin will add the same email' do - let(:gestionnaire) { Gestionnaire.find_by_email(email) } + let(:gestionnaire) { Gestionnaire.find_by(email: email) } before do create :gestionnaire, email: email, administrateurs: [admin] @@ -133,7 +133,7 @@ describe Admin::GestionnairesController, type: :controller do context 'when an other admin will add the same email with some uppercase in it' do let(:email) { 'Test@Plop.com' } - let(:gestionnaire) { Gestionnaire.find_by_email(email.downcase) } + let(:gestionnaire) { Gestionnaire.find_by(email: email.downcase) } before do create :gestionnaire, email: email, administrateurs: [admin] diff --git a/spec/controllers/new_gestionnaire/procedures_controller_spec.rb b/spec/controllers/new_gestionnaire/procedures_controller_spec.rb index daa5aea35..e7c76b2a9 100644 --- a/spec/controllers/new_gestionnaire/procedures_controller_spec.rb +++ b/spec/controllers/new_gestionnaire/procedures_controller_spec.rb @@ -254,9 +254,9 @@ describe NewGestionnaire::ProceduresController, type: :controller do describe 'statut' do let!(:a_suivre__dossier) { Timecop.freeze(1.day.ago){ create(:dossier, procedure: procedure, state: 'en_instruction') } } - let!(:new_followed_dossier) { Timecop.freeze(2.day.ago){ create(:dossier, procedure: procedure, state: 'en_instruction') } } - let!(:termine_dossier) { Timecop.freeze(3.day.ago){ create(:dossier, procedure: procedure, state: 'accepte') } } - let!(:archived_dossier) { Timecop.freeze(4.day.ago){ create(:dossier, procedure: procedure, state: 'en_instruction', archived: true) } } + let!(:new_followed_dossier) { Timecop.freeze(2.days.ago){ create(:dossier, procedure: procedure, state: 'en_instruction') } } + let!(:termine_dossier) { Timecop.freeze(3.days.ago){ create(:dossier, procedure: procedure, state: 'accepte') } } + let!(:archived_dossier) { Timecop.freeze(4.days.ago){ create(:dossier, procedure: procedure, state: 'en_instruction', archived: true) } } before do gestionnaire.followed_dossiers << new_followed_dossier diff --git a/spec/controllers/stats_controller_spec.rb b/spec/controllers/stats_controller_spec.rb index 34594386b..d82a8ce11 100644 --- a/spec/controllers/stats_controller_spec.rb +++ b/spec/controllers/stats_controller_spec.rb @@ -45,7 +45,7 @@ describe StatsController, type: :controller do it do expect(subject).to eq([ [I18n.l(45.days.ago.beginning_of_month, format: "%B %Y"), 1], - [I18n.l(1.days.ago.beginning_of_month, format: "%B %Y"), 2] + [I18n.l(1.day.ago.beginning_of_month, format: "%B %Y"), 2] ]) end end @@ -72,7 +72,7 @@ describe StatsController, type: :controller do it do expect(subject).to eq({ - 2.month.ago.beginning_of_month => 2, + 2.months.ago.beginning_of_month => 2, 1.month.ago.beginning_of_month => 4, 1.hour.ago.beginning_of_month => 5 }) @@ -86,7 +86,7 @@ describe StatsController, type: :controller do it do expect(subject).to eq({ - 2.month.ago.beginning_of_month => 2, + 2.months.ago.beginning_of_month => 2, 1.month.ago.beginning_of_month => 4 }) end @@ -151,22 +151,22 @@ describe StatsController, type: :controller do dossier_p1_b = FactoryBot.create(:dossier, :procedure => procedure_1, :en_construction_at => 2.months.ago.beginning_of_month, - :processed_at => 2.months.ago.beginning_of_month + 1.days) + :processed_at => 2.months.ago.beginning_of_month + 1.day) dossier_p1_c = FactoryBot.create(:dossier, :procedure => procedure_1, - :en_construction_at => 1.months.ago.beginning_of_month, - :processed_at => 1.months.ago.beginning_of_month + 5.days) + :en_construction_at => 1.month.ago.beginning_of_month, + :processed_at => 1.month.ago.beginning_of_month + 5.days) dossier_p2_a = FactoryBot.create(:dossier, :procedure => procedure_2, - :en_construction_at => 2.month.ago.beginning_of_month, - :processed_at => 2.month.ago.beginning_of_month + 4.days) + :en_construction_at => 2.months.ago.beginning_of_month, + :processed_at => 2.months.ago.beginning_of_month + 4.days) # Write directly in the DB to avoid the before_validation hook Dossier.update_all(state: "accepte") @expected_hash = { "#{2.months.ago.beginning_of_month}" => 3.0, - "#{1.months.ago.beginning_of_month}" => 5.0 + "#{1.month.ago.beginning_of_month}" => 5.0 } end @@ -204,21 +204,21 @@ describe StatsController, type: :controller do :processed_at => 2.months.ago.beginning_of_month + 1.day) dossier_p1_c = FactoryBot.create(:dossier, :procedure => procedure_1, - :created_at => 1.months.ago.beginning_of_month, - :en_construction_at => 1.months.ago.beginning_of_month + 50.minutes, - :processed_at => 1.months.ago.beginning_of_month + 1.day) + :created_at => 1.month.ago.beginning_of_month, + :en_construction_at => 1.month.ago.beginning_of_month + 50.minutes, + :processed_at => 1.month.ago.beginning_of_month + 1.day) dossier_p2_a = FactoryBot.create(:dossier, :procedure => procedure_2, - :created_at => 2.month.ago.beginning_of_month, - :en_construction_at => 2.month.ago.beginning_of_month + 80.minutes, - :processed_at => 2.month.ago.beginning_of_month + 1.day) + :created_at => 2.months.ago.beginning_of_month, + :en_construction_at => 2.months.ago.beginning_of_month + 80.minutes, + :processed_at => 2.months.ago.beginning_of_month + 1.day) # Write directly in the DB to avoid the before_validation hook Dossier.update_all(state: "accepte") @expected_hash = { "#{2.months.ago.beginning_of_month}" => 30.0, - "#{1.months.ago.beginning_of_month}" => 50.0 + "#{1.month.ago.beginning_of_month}" => 50.0 } end @@ -239,7 +239,7 @@ describe StatsController, type: :controller do subject { StatsController.new.send(:avis_usage) } - it { expect(subject).to match([[3.week.ago.to_i, 0], [2.week.ago.to_i, 0], [1.week.ago.to_i, 33.33]]) } + it { expect(subject).to match([[3.weeks.ago.to_i, 0], [2.weeks.ago.to_i, 0], [1.week.ago.to_i, 33.33]]) } end describe "#avis_average_answer_time" do @@ -251,10 +251,10 @@ describe StatsController, type: :controller do create(:avis, created_at: 1.week.ago + 2.days) # 2 weeks ago - create(:avis, answer: "voila ma réponse", created_at: 2.week.ago + 1.day, updated_at: 2.week.ago + 2.days) # 1 day - create(:avis, answer: "voila ma réponse2", created_at: 2.week.ago + 3.days, updated_at: 1.week.ago + 6.days) # 10 days - create(:avis, answer: "voila ma réponse2", created_at: 2.week.ago + 2.days, updated_at: 1.week.ago + 6.days) # 11 days - create(:avis, created_at: 2.week.ago + 1.day, updated_at: 2.week.ago + 2.days) + create(:avis, answer: "voila ma réponse", created_at: 2.weeks.ago + 1.day, updated_at: 2.weeks.ago + 2.days) # 1 day + create(:avis, answer: "voila ma réponse2", created_at: 2.weeks.ago + 3.days, updated_at: 1.week.ago + 6.days) # 10 days + create(:avis, answer: "voila ma réponse2", created_at: 2.weeks.ago + 2.days, updated_at: 1.week.ago + 6.days) # 11 days + create(:avis, created_at: 2.weeks.ago + 1.day, updated_at: 2.weeks.ago + 2.days) # 3 weeks ago create(:avis, answer: "voila ma réponse2", created_at: 3.weeks.ago + 1.day, updated_at: 3.weeks.ago + 2.days) # 1 day @@ -267,8 +267,8 @@ describe StatsController, type: :controller do it { expect(subject.count).to eq(3) } it { is_expected.to include [1.week.ago.to_i, 1.0] } - it { is_expected.to include [2.week.ago.to_i, 7.33] } - it { is_expected.to include [3.week.ago.to_i, 9.5] } + it { is_expected.to include [2.weeks.ago.to_i, 7.33] } + it { is_expected.to include [3.weeks.ago.to_i, 9.5] } end describe '#avis_answer_percentages' do @@ -281,7 +281,7 @@ describe StatsController, type: :controller do before { Timecop.freeze(Time.now) } after { Timecop.return } - it { is_expected.to match [[3.week.ago.to_i, 0], [2.week.ago.to_i, 0], [1.week.ago.to_i, 66.67]] } + it { is_expected.to match [[3.weeks.ago.to_i, 0], [2.weeks.ago.to_i, 0], [1.week.ago.to_i, 66.67]] } end describe '#motivation_usage_dossier' do @@ -294,7 +294,7 @@ describe StatsController, type: :controller do subject { StatsController.new.send(:motivation_usage_dossier) } - it { expect(subject).to match([[I18n.l(3.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) } + it { expect(subject).to match([[I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) } end describe '#motivation_usage_procedure' do @@ -308,6 +308,6 @@ describe StatsController, type: :controller do subject { StatsController.new.send(:motivation_usage_procedure) } - it { expect(subject).to match([[I18n.l(3.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) } + it { expect(subject).to match([[I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) } end end diff --git a/spec/controllers/users/description_controller_shared_example.rb b/spec/controllers/users/description_controller_shared_example.rb index f3d024fc8..5c6d440e4 100644 --- a/spec/controllers/users/description_controller_shared_example.rb +++ b/spec/controllers/users/description_controller_shared_example.rb @@ -376,7 +376,7 @@ shared_examples 'description_controller_spec' do it { expect(dossier.pieces_justificatives.size).to eq 2 } it { expect(flash[:notice]).to be_present } - it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by_dossier_id(dossier.id).id) } + it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by(dossier_id: dossier.id).id) } end end @@ -396,7 +396,7 @@ shared_examples 'description_controller_spec' do it { expect(dossier.pieces_justificatives.size).to eq 4 } it { expect(flash[:notice]).to be_present } - it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by_dossier_id(dossier.id).id) } + it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by(dossier_id: dossier.id).id) } end end @@ -413,7 +413,7 @@ shared_examples 'description_controller_spec' do it { expect(dossier.pieces_justificatives.size).to eq 1 } it { expect(flash[:alert]).to be_present } - it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by_dossier_id(dossier.id).id) } + it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by(dossier_id: dossier.id).id) } end end end diff --git a/spec/factories/dossier.rb b/spec/factories/dossier.rb index 1fda4bbda..e2a73254b 100644 --- a/spec/factories/dossier.rb +++ b/spec/factories/dossier.rb @@ -85,7 +85,7 @@ FactoryBot.define do after(:create) do |dossier, _evaluator| dossier.state = 'en_instruction' dossier.en_construction_at = dossier.created_at + 1.minute - dossier.created_at = dossier.created_at + 2.minute + dossier.created_at = dossier.created_at + 2.minutes dossier.save! end end diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 4cd13e70f..72bfbe1c7 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -245,9 +245,9 @@ describe Procedure do it { expect(procedure.archived_at).to eq(nil) } it { expect(procedure.published_at).to eq(now) } - it { expect(ProcedurePath.find_by_path("example-path")).to be } - it { expect(ProcedurePath.find_by_path("example-path").procedure).to eq(procedure) } - it { expect(ProcedurePath.find_by_path("example-path").administrateur).to eq(procedure.administrateur) } + it { expect(ProcedurePath.find_by(path: "example-path")).to be } + it { expect(ProcedurePath.find_by(path: "example-path").procedure).to eq(procedure) } + it { expect(ProcedurePath.find_by(path: "example-path").administrateur).to eq(procedure.administrateur) } end describe "#brouillon?" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a0583ada3..38dd8c731 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -52,8 +52,8 @@ Capybara.default_max_wait_time = 1 # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. -Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } -Dir[Rails.root.join('spec/factories/**/*.rb')].each { |f| require f } +Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f } +Dir[Rails.root.join('spec', 'factories', '**', '*.rb')].each { |f| require f } # Checks for pending migrations before tests are run. # If you are not using ActiveRecord, you can remove this line. From cb0ea0275146c26be3f32597462d0541ee35ae0e Mon Sep 17 00:00:00 2001 From: Guillaume RISCHARD Date: Tue, 6 Mar 2018 17:25:35 +0100 Subject: [PATCH 21/41] =?UTF-8?q?Restauration=20des=20svg=20qui=20n'ont=20?= =?UTF-8?q?pas=20support=C3=A9=20svgcleaner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/images/footer/logo-dinsic.svg | 2 +- app/assets/images/landing/hero/dematerialiser.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/images/footer/logo-dinsic.svg b/app/assets/images/footer/logo-dinsic.svg index 51700d0fb..85fa7e780 100644 --- a/app/assets/images/footer/logo-dinsic.svg +++ b/app/assets/images/footer/logo-dinsic.svg @@ -1 +1 @@ - \ No newline at end of file +BM_DINSIC \ No newline at end of file diff --git a/app/assets/images/landing/hero/dematerialiser.svg b/app/assets/images/landing/hero/dematerialiser.svg index 7fd664d02..e7e51acb7 100755 --- a/app/assets/images/landing/hero/dematerialiser.svg +++ b/app/assets/images/landing/hero/dematerialiser.svg @@ -1 +1 @@ - \ No newline at end of file +0EA652BC-3A4A-4613-BA33-535DF72E7337 \ No newline at end of file From bbcf945a8be858390a806730a32bf714bf7d2edd Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 15:54:18 +0100 Subject: [PATCH 22/41] Add missing titles to some pages --- app/views/accessibilite/index.html.haml | 2 ++ app/views/stats/index.html.haml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/views/accessibilite/index.html.haml b/app/views/accessibilite/index.html.haml index 74a59de92..bc13252f0 100644 --- a/app/views/accessibilite/index.html.haml +++ b/app/views/accessibilite/index.html.haml @@ -1,3 +1,5 @@ +- content_for(:title, 'Accessibilité') + .accessibilite %h1.new-h1 Accessibilité diff --git a/app/views/stats/index.html.haml b/app/views/stats/index.html.haml index ea587e247..dec7d83b8 100644 --- a/app/views/stats/index.html.haml +++ b/app/views/stats/index.html.haml @@ -1,3 +1,5 @@ +- content_for(:title, 'Statistiques') + .statistiques %h1.new-h1 Statistiques From 55608414ad700f0ac24f437ef314e2e99a89dbc0 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 15:56:09 +0100 Subject: [PATCH 23/41] Improve the title format --- app/views/layouts/new_application.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/new_application.html.haml b/app/views/layouts/new_application.html.haml index 8190bc41e..c214f26a0 100644 --- a/app/views/layouts/new_application.html.haml +++ b/app/views/layouts/new_application.html.haml @@ -8,7 +8,7 @@ = csrf_meta_tags %title - = content_for?(:title) ? yield(:title) : "demarches-simplifiees.fr" + = content_for?(:title) ? "#{yield(:title)} · demarches-simplifiees.fr" : "demarches-simplifiees.fr" = favicon_link_tag(image_url("favicons/16x16.png"), type: "image/png", sizes: "16x16") = favicon_link_tag(image_url("favicons/32x32.png"), type: "image/png", sizes: "32x32") From ca061dc12f0d6f89dc3749a77cba8e803728aa4f Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 14:57:35 +0100 Subject: [PATCH 24/41] Add alt descriptions for images --- app/views/layouts/_new_header.haml | 2 +- app/views/root/landing.html.haml | 40 +++++++++++++++--------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/app/views/layouts/_new_header.haml b/app/views/layouts/_new_header.haml index 84d396ae8..9f86c9e25 100644 --- a/app/views/layouts/_new_header.haml +++ b/app/views/layouts/_new_header.haml @@ -5,7 +5,7 @@ .flex.align-center = link_to root_path, class: "header-logo" do - %img{ src: image_url("header/logo-ds.svg") } + %img{ src: image_url("header/logo-ds.svg"), alt: "Logo de demarches-simplifiees.fr" } - if nav_bar_profile == :gestionnaire && gestionnaire_signed_in? - current_url = request.path_info diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index 3d1e63491..a139ee338 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -10,27 +10,27 @@ les démarches administratives .hero-illustration - %img{ :src => image_url("landing/hero/dematerialiser.svg") } + %img{ :src => image_url("landing/hero/dematerialiser.svg"), alt: "Un formulaire papier qui rentre dans l'écran d'un ordinateur portable" } .landing-panel.features-panel .container %ul.features %li.feature - %img.feature-image{ :src => image_url("landing/features/messagerie.svg") } + %img.feature-image{ :src => image_url("landing/features/messagerie.svg"), alt: "Un phylactère" } %p.feature-text %em.feature-text-em Dialogue %br simplifié entre usagers et services %li.feature - %img.feature-image{ :src => image_url("landing/features/collaborer.svg") } + %img.feature-image{ :src => image_url("landing/features/collaborer.svg"), alt: "Trois pictogrammes personnes reliées par un cercle" } %p.feature-text %em.feature-text-em Collaboration %br pour un traitement des dossiers plus fluide %li.feature - %img.feature-image{ :src => image_url("landing/features/gerer.svg") } + %img.feature-image{ :src => image_url("landing/features/gerer.svg"), alt: "Un formulaire dans une fenêtre de navigateur avec un engrenage dans un de ses coins" } %p.feature-text %em.feature-text-em Intégration %br @@ -40,7 +40,7 @@ .container .role-panel-wrapper.role-administrations-panel .role-panel-30.role-administrations-image - %img.role-image{ :src => image_url("landing/roles/administrations.svg") } + %img.role-image{ :src => image_url("landing/roles/administrations.svg"), alt: "Un formulaire, un engrenage et un signe 'validé' reliés par un cercle" } .role-panel-70 %h1.role-panel-title Administrations @@ -61,7 +61,7 @@ .container .role-panel-wrapper .role-panel-30.role-usagers-image - %img.role-image{ :src => image_url("landing/roles/usagers.svg") } + %img.role-image{ :src => image_url("landing/roles/usagers.svg"), alt: "Un formulaire dans une fenêtre de navigateur avec un philactère en haut à droite un un pictogramme de personne en bas à droite" } .role-panel-70 %h1.role-panel-title Usagers @@ -77,7 +77,7 @@ %ul.quotes %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg") } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } .quote-content-wrapper %p.quote-content Les échanges avec les usagers sont facilités, ce qui permet de réduire les délais d’instructions et de gagner en efficacité. @@ -88,7 +88,7 @@ Chef de bureau, DRIEA Ile-de-France %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg") } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } .quote-content-wrapper %p.quote-content Un service qui garantit une économie de temps et beaucoup moins de manipulations des dossiers. @@ -100,7 +100,7 @@ %ul.quotes %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg") } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } .quote-content-wrapper %p.quote-content Parfait, cela fonctionne très bien ! Merci encore pour votre réactivité. @@ -111,7 +111,7 @@ à notre service support %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg") } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } .quote-content-wrapper %p.quote-content ★★★★★ @@ -157,36 +157,36 @@ %ul.users %li.user %a{ :href => "https://www.ecologique-solidaire.gouv.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/mtes.jpg") } + %img.user-image{ :src => image_url("landing/users/mtes.jpg"), alt: "Logo du Ministère de la Transition Écologique et Solidaire" } %li.user %a{ :href => "https://www.iledefrance.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/region-idf.jpg") } + %img.user-image{ :src => image_url("landing/users/region-idf.jpg"), alt: "Logo de la région Île-de-France" } %li.user %a{ :href => "http://www.artisanat.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg") } + %img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg"), alt: "Logo des Chambres des Métiers et de l'Artisanat" } %li.user %a{ :href => "http://www.cci.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/cci.jpg") } + %img.user-image{ :src => image_url("landing/users/cci.jpg"), alt: "Logo de la CCI de France" } %li.user %a{ :href => "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/driea-idf.jpg") } + %img.user-image{ :src => image_url("landing/users/driea-idf.jpg"), alt: "Logo de la Direction Régionale et Interdépartementale de l'Équipement et de l'Aménagement" } %ul.users %li.user %a{ :href => "https://www.debatpublic.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/cndp.jpg") } + %img.user-image{ :src => image_url("landing/users/cndp.jpg"), alt: "Logo de la Commission Nationale du Débat Public" } %li.user %a{ :href => "https://www.iledefrance.ars.sante.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/ars-idf.jpg") } + %img.user-image{ :src => image_url("landing/users/ars-idf.jpg"), alt: "Logo de l'Agence Régionale de Santé d'Île-de-France" } %li.user %a{ :href => "http://www.franceagrimer.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/france-agrimer.jpg") } + %img.user-image{ :src => image_url("landing/users/france-agrimer.jpg"), alt: "Logo de FranceAgrimer" } %li.user %a{ :href => "http://www.rhone.gouv.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg") } + %img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg"), alt: "Logo de la Préfecture de la région Rhône-Alpes" } %li.user %a{ :href => "http://www.lillemetropole.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/mel.jpg") } + %img.user-image{ :src => image_url("landing/users/mel.jpg"), alt: "Logo de la Métropole Européenne de Lille" } .landing-panel.cta-panel .container From fc2bf52fdbb6ae031eb190df07a5f619e297127e Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 17:55:46 +0100 Subject: [PATCH 25/41] Revert browser bump --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b7d569deb..4ead0e72a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -116,7 +116,7 @@ GEM bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) brakeman (4.2.0) - browser (2.5.3) + browser (2.5.2) builder (3.2.3) byebug (10.0.0) capybara (2.18.0) From a0a6273ccfe8cfb38cf1dd917acdffc767865dd6 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 18:06:26 +0100 Subject: [PATCH 26/41] Revert "Bump openstack" This reverts commit 048c898b59a15931b551ba9643638431532fefd0. --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4ead0e72a..7daa88d34 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -523,7 +523,7 @@ GEM validate_email validate_url webfinger (>= 1.0.1) - openstack (3.3.17) + openstack (3.3.15) json orm_adapter (0.5.0) parallel (1.12.1) From 46f33c519fe1cb71b74045af8e96d13d7a5f9794 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 6 Mar 2018 18:18:41 +0100 Subject: [PATCH 27/41] Revert "Bump openid_connect" This reverts commit 14bbce0b595641dff6903a0f8a299b608c571642. --- Gemfile.lock | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7daa88d34..1b0692ff0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,6 @@ GEM momentjs-rails (~> 2.8) sass-rails (~> 5.0) selectize-rails (~> 0.6) - aes_key_wrap (1.0.1) apipie-rails (0.5.6) rails (>= 4.1) archive-zip (0.11.0) @@ -425,9 +424,8 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (2.1.0) - json-jwt (1.9.2) + json-jwt (1.8.3) activesupport - aes_key_wrap bindata securecompare url_safe_base64 @@ -513,9 +511,10 @@ GEM oauth2 (~> 1.1) omniauth (~> 1.2) open4 (1.3.4) - openid_connect (1.1.5) + openid_connect (1.1.4) activemodel attr_required (>= 1.0.0) + json (>= 1.4.3) json-jwt (>= 1.5.0) rack-oauth2 (>= 1.6.1) swd (>= 1.0.0) @@ -550,11 +549,11 @@ GEM rack rack-mini-profiler (0.10.7) rack (>= 1.2.0) - rack-oauth2 (1.9.0) + rack-oauth2 (1.8.2) activesupport attr_required httpclient - json-jwt (>= 1.9.0) + json-jwt rack rack-protection (2.0.1) rack From 94dba7720287f6c53b011ce417d322e6b6c1fa6d Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 7 Mar 2018 11:24:41 +0100 Subject: [PATCH 28/41] Fix capital social for large amounts --- db/migrate/20180307101545_change_capital_social_limit.rb | 6 ++++++ db/schema.rb | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20180307101545_change_capital_social_limit.rb diff --git a/db/migrate/20180307101545_change_capital_social_limit.rb b/db/migrate/20180307101545_change_capital_social_limit.rb new file mode 100644 index 000000000..2fd59e038 --- /dev/null +++ b/db/migrate/20180307101545_change_capital_social_limit.rb @@ -0,0 +1,6 @@ +class ChangeCapitalSocialLimit < ActiveRecord::Migration[5.2] + def change + change_column :etablissements, :entreprise_capital_social, :integer, limit: 8 + change_column :entreprises, :capital_social, :integer, limit: 8 + end +end diff --git a/db/schema.rb b/db/schema.rb index d7e76bbf8..3054b8931 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_02_26_162351) do +ActiveRecord::Schema.define(version: 2018_03_07_101545) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -233,7 +233,7 @@ ActiveRecord::Schema.define(version: 2018_02_26_162351) do create_table "entreprises", id: :serial, force: :cascade do |t| t.string "siren" - t.integer "capital_social" + t.bigint "capital_social" t.string "numero_tva_intracommunautaire" t.string "forme_juridique" t.string "forme_juridique_code" @@ -266,7 +266,7 @@ ActiveRecord::Schema.define(version: 2018_02_26_162351) do t.integer "dossier_id" t.integer "entreprise_id" t.string "entreprise_siren" - t.integer "entreprise_capital_social" + t.bigint "entreprise_capital_social" t.string "entreprise_numero_tva_intracommunautaire" t.string "entreprise_forme_juridique" t.string "entreprise_forme_juridique_code" From 22f0767625a9f206396131427a681ed3e94b97f7 Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Wed, 7 Mar 2018 11:22:38 +0100 Subject: [PATCH 29/41] [Fix #1566] Do not set buttons height on landing --- app/assets/stylesheets/new_design/landing.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/stylesheets/new_design/landing.scss b/app/assets/stylesheets/new_design/landing.scss index beece374d..7cfb43866 100644 --- a/app/assets/stylesheets/new_design/landing.scss +++ b/app/assets/stylesheets/new_design/landing.scss @@ -349,7 +349,6 @@ $cta-panel-button-border-size: 2px; @mixin role-button { @include horizontal-padding(30px); - height: 50px; display: inline-block; border-radius: 100px; font-size: 20px; From c23419359b759009b78f3ebb02737ac473f91574 Mon Sep 17 00:00:00 2001 From: Frederic Merizen Date: Wed, 7 Mar 2018 17:03:03 +0100 Subject: [PATCH 30/41] Fix XSS in delayed job web admin https://github.com/ejschmitt/delayed_job_web/issues/101 --- Gemfile | 6 ++++-- Gemfile.lock | 16 +++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 96a2cb754..ecc62f822 100644 --- a/Gemfile +++ b/Gemfile @@ -104,8 +104,10 @@ gem 'sanitize-url' gem 'delayed_job_active_record' gem "daemons" gem 'delayed_cron_job' -gem "delayed_job_web" - +# FIXME: this is a fork, go back to official version +# once https://github.com/ejschmitt/delayed_job_web/issues/101 +# has been merged and released +gem "delayed_job_web", git: 'https://github.com/breckenedge/delayed_job_web.git', branch: 'cve_2017_12097' gem 'select2-rails' # PDF Generation diff --git a/Gemfile.lock b/Gemfile.lock index 1b0692ff0..8771888db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,13 @@ +GIT + remote: https://github.com/breckenedge/delayed_job_web.git + revision: 6bcb10e61ea2b9a44ffa16be8536dff46ad51449 + branch: cve_2017_12097 + specs: + delayed_job_web (1.4) + activerecord (> 3.0.0) + delayed_job (> 2.0.3) + sinatra (>= 1.4.4) + GIT remote: https://github.com/hassox/warden.git revision: a4b197e0b28e7b576b0745b0f6aeaed8dbb774a4 @@ -172,10 +182,6 @@ GEM delayed_job_active_record (4.1.2) activerecord (>= 3.0, < 5.2) delayed_job (>= 3.0, < 5) - delayed_job_web (1.4) - activerecord (> 3.0.0) - delayed_job (> 2.0.3) - sinatra (>= 1.4.4) devise (4.4.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -796,7 +802,7 @@ DEPENDENCIES deep_cloneable delayed_cron_job delayed_job_active_record - delayed_job_web + delayed_job_web! devise dotenv-rails draper From 109b48ad018672589728b47dfd2587fe7f9ea53a Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Wed, 7 Mar 2018 16:50:13 +0100 Subject: [PATCH 31/41] [Fix #1573] Display multiples spaces from libelle in attestation tags --- app/views/admin/attestation_templates/edit.html.haml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/admin/attestation_templates/edit.html.haml b/app/views/admin/attestation_templates/edit.html.haml index c5c4921ee..2e931e77a 100644 --- a/app/views/admin/attestation_templates/edit.html.haml +++ b/app/views/admin/attestation_templates/edit.html.haml @@ -41,7 +41,8 @@ - @attestation_template.tags.each do |tag| %tr %td - = "--#{tag[:libelle]}--" + %code{ style: "white-space: pre-wrap;" } + = "--#{tag[:libelle]}--" %td = tag[:description] From d5f620a1639e3f776dbd6b840271a72b9ba94db5 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 7 Mar 2018 17:42:02 +0100 Subject: [PATCH 32/41] Mark 1to1 nested relationships as `update_only` to avoid creating multiple associations This fixes the invalid entreprises without etablissements --- app/models/entreprise.rb | 2 +- app/models/etablissement.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/entreprise.rb b/app/models/entreprise.rb index db62b88ec..57057b52d 100644 --- a/app/models/entreprise.rb +++ b/app/models/entreprise.rb @@ -6,7 +6,7 @@ class Entreprise < ApplicationRecord validates :siren, presence: true validates :dossier_id, uniqueness: true - accepts_nested_attributes_for :rna_information + accepts_nested_attributes_for :rna_information, update_only: true before_save :default_values diff --git a/app/models/etablissement.rb b/app/models/etablissement.rb index ff2885c46..2b718f035 100644 --- a/app/models/etablissement.rb +++ b/app/models/etablissement.rb @@ -5,7 +5,7 @@ class Etablissement < ApplicationRecord has_many :exercices, dependent: :destroy accepts_nested_attributes_for :exercices - accepts_nested_attributes_for :entreprise + accepts_nested_attributes_for :entreprise, update_only: true validates :dossier_id, uniqueness: true From 19b58a298cb5094e31abd5cdd2852fe69934021f Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 7 Mar 2018 17:42:31 +0100 Subject: [PATCH 33/41] Clarify dependent relationships between etablissement and entreprise --- app/models/dossier.rb | 1 - app/models/entreprise.rb | 2 +- app/models/etablissement.rb | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/models/dossier.rb b/app/models/dossier.rb index 9772d1bc5..e561d3fd3 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -181,7 +181,6 @@ class Dossier < ApplicationRecord def reset! etablissement.destroy - entreprise.destroy update_columns(autorisation_donnees: false) end diff --git a/app/models/entreprise.rb b/app/models/entreprise.rb index 57057b52d..3403c10c9 100644 --- a/app/models/entreprise.rb +++ b/app/models/entreprise.rb @@ -1,6 +1,6 @@ class Entreprise < ApplicationRecord belongs_to :dossier - has_one :etablissement, dependent: :destroy + has_one :etablissement has_one :rna_information, dependent: :destroy validates :siren, presence: true diff --git a/app/models/etablissement.rb b/app/models/etablissement.rb index 2b718f035..17f2b81a4 100644 --- a/app/models/etablissement.rb +++ b/app/models/etablissement.rb @@ -1,6 +1,6 @@ class Etablissement < ApplicationRecord belongs_to :dossier - belongs_to :entreprise + belongs_to :entreprise, dependent: :destroy has_many :exercices, dependent: :destroy From 6ef141b01488f71d97d9f480dc782cc5dd20d3ae Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 7 Mar 2018 17:43:44 +0100 Subject: [PATCH 34/41] Build instead of create etablissement --- app/controllers/users/dossiers_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 7af0fc9e0..83c506312 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -110,7 +110,7 @@ class Users::DossiersController < UsersController if etablissement_attributes.present? etablissement_attributes = ActionController::Parameters.new(etablissement_attributes).permit! - etablissement = @facade.dossier.create_etablissement(etablissement_attributes) + etablissement = @facade.dossier.build_etablissement(etablissement_attributes) if etablissement.save Rails.logger.info("etablissement saved, siret: #{siret}, id: #{etablissement.id}") @facade.dossier.mandataire_social!(current_user.france_connect_information) From 9f6d6e61fbbd6f44dde57583de4c3b203192c82f Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Thu, 8 Mar 2018 13:54:26 +0100 Subject: [PATCH 35/41] [Fix #1577] logo link in navbar on gestionnaire UI should not link to admin UI --- app/helpers/application_helper.rb | 11 +++++++++++ app/views/layouts/_new_header.haml | 2 +- spec/views/layouts/_new_header_spec.rb | 24 ++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 spec/views/layouts/_new_header_spec.rb diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index cfe77e7d8..dbc16a10f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -19,4 +19,15 @@ module ApplicationHelper current_gestionnaire.try(:email) || current_administrateur.try(:email) end + + def root_path_for_profile(nav_bar_profile) + case nav_bar_profile + when :gestionnaire + gestionnaire_procedures_path + when :user + users_dossiers_path + else + root_path + end + end end diff --git a/app/views/layouts/_new_header.haml b/app/views/layouts/_new_header.haml index 9f86c9e25..c21be5eb8 100644 --- a/app/views/layouts/_new_header.haml +++ b/app/views/layouts/_new_header.haml @@ -4,7 +4,7 @@ .header-inner-content .flex.align-center - = link_to root_path, class: "header-logo" do + = link_to root_path_for_profile(nav_bar_profile), class: "header-logo" do %img{ src: image_url("header/logo-ds.svg"), alt: "Logo de demarches-simplifiees.fr" } - if nav_bar_profile == :gestionnaire && gestionnaire_signed_in? diff --git a/spec/views/layouts/_new_header_spec.rb b/spec/views/layouts/_new_header_spec.rb new file mode 100644 index 000000000..39a9ae58e --- /dev/null +++ b/spec/views/layouts/_new_header_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper' + +describe 'layouts/_new_header.html.haml', type: :view do + describe 'logo link' do + before do + allow(controller).to receive(:nav_bar_profile).and_return(profile) + render + end + + subject { rendered } + + context 'when rendering for user' do + let(:profile) { :user } + + it { is_expected.to have_css("a.header-logo[href=\"#{users_dossiers_path}\"]") } + end + + context 'when rendering for gestionnaire' do + let(:profile) { :gestionnaire } + + it { is_expected.to have_css("a.header-logo[href=\"#{gestionnaire_procedures_path}\"]") } + end + end +end From 5faf4cdd84b99e48b07e0b256a0db515b3d177df Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 14 Feb 2018 11:46:38 +0100 Subject: [PATCH 36/41] Remove all references to old STI --- app/decorators/type_de_champ_private_decorator.rb | 2 -- app/models/champ.rb | 8 ++------ app/models/type_de_champ.rb | 8 ++------ db/migrate/20180308110811_add_defaults_to_champs.rb | 6 ++++++ db/schema.rb | 6 +++--- 5 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 app/decorators/type_de_champ_private_decorator.rb create mode 100644 db/migrate/20180308110811_add_defaults_to_champs.rb diff --git a/app/decorators/type_de_champ_private_decorator.rb b/app/decorators/type_de_champ_private_decorator.rb deleted file mode 100644 index ea9f715a2..000000000 --- a/app/decorators/type_de_champ_private_decorator.rb +++ /dev/null @@ -1,2 +0,0 @@ -class TypeDeChampPrivateDecorator < TypeDeChampDecorator -end diff --git a/app/models/champ.rb b/app/models/champ.rb index ac45708a0..1b3f6cf4e 100644 --- a/app/models/champ.rb +++ b/app/models/champ.rb @@ -13,8 +13,8 @@ class Champ < ApplicationRecord before_save :multiple_select_to_string, if: Proc.new { type_champ == 'multiple_drop_down_list' } scope :updated_since?, -> (date) { where('champs.updated_at > ?', date) } - scope :public_only, -> { where(type: 'ChampPublic').or(where(private: false)) } - scope :private_only, -> { where(type: 'ChampPrivate').or(where(private: true)) } + scope :public_only, -> { where(private: false) } + scope :private_only, -> { where(private: true) } PIECE_JUSTIFICATIVE_FILE_MAX_SIZE = 200.megabytes @@ -37,10 +37,6 @@ class Champ < ApplicationRecord !private? end - def private? - super || type == 'ChampPrivate' - end - def same_hour? num same_date? num, '%H' end diff --git a/app/models/type_de_champ.rb b/app/models/type_de_champ.rb index 1facb4220..ac4eaffe4 100644 --- a/app/models/type_de_champ.rb +++ b/app/models/type_de_champ.rb @@ -27,8 +27,8 @@ class TypeDeChamp < ApplicationRecord belongs_to :procedure - scope :public_only, -> { where(type: 'TypeDeChampPublic').or(where(private: false)) } - scope :private_only, -> { where(type: 'TypeDeChampPrivate').or(where(private: true)) } + scope :public_only, -> { where(private: false) } + scope :private_only, -> { where(private: true) } has_many :champ, inverse_of: :type_de_champ, dependent: :destroy do def build(params = {}) @@ -71,10 +71,6 @@ class TypeDeChamp < ApplicationRecord type_champ.in?(['header_section', 'explication']) end - def private? - super || type == 'TypeDeChampPrivate' - end - def public? !private? end diff --git a/db/migrate/20180308110811_add_defaults_to_champs.rb b/db/migrate/20180308110811_add_defaults_to_champs.rb new file mode 100644 index 000000000..f623956fb --- /dev/null +++ b/db/migrate/20180308110811_add_defaults_to_champs.rb @@ -0,0 +1,6 @@ +class AddDefaultsToChamps < ActiveRecord::Migration[5.2] + def change + change_column :champs, :private, :boolean, default: false, null: false + change_column :types_de_champ, :private, :boolean, default: false, null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 3054b8931..442360b51 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_03_07_101545) do +ActiveRecord::Schema.define(version: 2018_03_08_110811) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -160,7 +160,7 @@ ActiveRecord::Schema.define(version: 2018_03_07_101545) do t.string "type" t.datetime "created_at" t.datetime "updated_at" - t.boolean "private" + t.boolean "private", default: false, null: false t.integer "etablissement_id" t.index ["dossier_id"], name: "index_champs_on_dossier_id" t.index ["private"], name: "index_champs_on_private" @@ -468,7 +468,7 @@ ActiveRecord::Schema.define(version: 2018_03_07_101545) do t.text "description" t.boolean "mandatory", default: false t.string "type" - t.boolean "private" + t.boolean "private", default: false, null: false t.index ["private"], name: "index_types_de_champ_on_private" end From eb977ab79842d40ec78bf9856a52d93ea0e09edb Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Thu, 8 Mar 2018 15:24:22 +0100 Subject: [PATCH 37/41] [Fix #1565] Improve accessibility of the landing page - Improve the alt text for the header logo - Empty alt text for decorative images - Improve the alt text for the logos of our users - Improve the alt text for footer logos --- app/views/layouts/_new_footer.html.haml | 4 +-- app/views/layouts/_new_header.haml | 2 +- app/views/root/landing.html.haml | 40 ++++++++++++------------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/app/views/layouts/_new_footer.html.haml b/app/views/layouts/_new_footer.html.haml index 8e746c4c3..874c6d66e 100644 --- a/app/views/layouts/_new_footer.html.haml +++ b/app/views/layouts/_new_footer.html.haml @@ -9,9 +9,9 @@ et incubé par
beta.gouv.fr %li = link_to "http://www.modernisation.gouv.fr/" do - %span.footer-logo.footer-logo-dinsic{ role: 'img', 'aria-label': 'Logo de la DINSIC' } + %span.footer-logo.footer-logo-dinsic{ role: 'img', 'aria-label': 'DINSIC' } = link_to "https://beta.gouv.fr" do - %span.footer-logo.footer-logo-beta-gouv-fr{ role: 'img', 'aria-label': 'Logo de beta.gouv.fr' } + %span.footer-logo.footer-logo-beta-gouv-fr{ role: 'img', 'aria-label': 'beta.gouv.fr' } %li.footer-column %ul.footer-links diff --git a/app/views/layouts/_new_header.haml b/app/views/layouts/_new_header.haml index c21be5eb8..d081195e5 100644 --- a/app/views/layouts/_new_header.haml +++ b/app/views/layouts/_new_header.haml @@ -5,7 +5,7 @@ .flex.align-center = link_to root_path_for_profile(nav_bar_profile), class: "header-logo" do - %img{ src: image_url("header/logo-ds.svg"), alt: "Logo de demarches-simplifiees.fr" } + %img{ src: image_url("header/logo-ds.svg"), alt: "demarches-simplifiees.fr" } - if nav_bar_profile == :gestionnaire && gestionnaire_signed_in? - current_url = request.path_info diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index a139ee338..bf1d1348e 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -10,27 +10,27 @@ les démarches administratives .hero-illustration - %img{ :src => image_url("landing/hero/dematerialiser.svg"), alt: "Un formulaire papier qui rentre dans l'écran d'un ordinateur portable" } + %img{ :src => image_url("landing/hero/dematerialiser.svg"), alt: "" } .landing-panel.features-panel .container %ul.features %li.feature - %img.feature-image{ :src => image_url("landing/features/messagerie.svg"), alt: "Un phylactère" } + %img.feature-image{ :src => image_url("landing/features/messagerie.svg"), alt: "" } %p.feature-text %em.feature-text-em Dialogue %br simplifié entre usagers et services %li.feature - %img.feature-image{ :src => image_url("landing/features/collaborer.svg"), alt: "Trois pictogrammes personnes reliées par un cercle" } + %img.feature-image{ :src => image_url("landing/features/collaborer.svg"), alt: "" } %p.feature-text %em.feature-text-em Collaboration %br pour un traitement des dossiers plus fluide %li.feature - %img.feature-image{ :src => image_url("landing/features/gerer.svg"), alt: "Un formulaire dans une fenêtre de navigateur avec un engrenage dans un de ses coins" } + %img.feature-image{ :src => image_url("landing/features/gerer.svg"), alt: "" } %p.feature-text %em.feature-text-em Intégration %br @@ -40,7 +40,7 @@ .container .role-panel-wrapper.role-administrations-panel .role-panel-30.role-administrations-image - %img.role-image{ :src => image_url("landing/roles/administrations.svg"), alt: "Un formulaire, un engrenage et un signe 'validé' reliés par un cercle" } + %img.role-image{ :src => image_url("landing/roles/administrations.svg"), alt: "" } .role-panel-70 %h1.role-panel-title Administrations @@ -61,7 +61,7 @@ .container .role-panel-wrapper .role-panel-30.role-usagers-image - %img.role-image{ :src => image_url("landing/roles/usagers.svg"), alt: "Un formulaire dans une fenêtre de navigateur avec un philactère en haut à droite un un pictogramme de personne en bas à droite" } + %img.role-image{ :src => image_url("landing/roles/usagers.svg"), alt: "" } .role-panel-70 %h1.role-panel-title Usagers @@ -77,7 +77,7 @@ %ul.quotes %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" } .quote-content-wrapper %p.quote-content Les échanges avec les usagers sont facilités, ce qui permet de réduire les délais d’instructions et de gagner en efficacité. @@ -88,7 +88,7 @@ Chef de bureau, DRIEA Ile-de-France %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" } .quote-content-wrapper %p.quote-content Un service qui garantit une économie de temps et beaucoup moins de manipulations des dossiers. @@ -100,7 +100,7 @@ %ul.quotes %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" } .quote-content-wrapper %p.quote-content Parfait, cela fonctionne très bien ! Merci encore pour votre réactivité. @@ -111,7 +111,7 @@ à notre service support %li.quote - %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "Un guillemet ouvrant" } + %img.quote-quotation-mark{ :src => image_url("landing/testimonials/quotation-mark.svg"), alt: "" } .quote-content-wrapper %p.quote-content ★★★★★ @@ -157,36 +157,36 @@ %ul.users %li.user %a{ :href => "https://www.ecologique-solidaire.gouv.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/mtes.jpg"), alt: "Logo du Ministère de la Transition Écologique et Solidaire" } + %img.user-image{ :src => image_url("landing/users/mtes.jpg"), alt: "Ministère de la Transition Écologique et Solidaire" } %li.user %a{ :href => "https://www.iledefrance.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/region-idf.jpg"), alt: "Logo de la région Île-de-France" } + %img.user-image{ :src => image_url("landing/users/region-idf.jpg"), alt: "Région Île-de-France" } %li.user %a{ :href => "http://www.artisanat.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg"), alt: "Logo des Chambres des Métiers et de l'Artisanat" } + %img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg"), alt: "Chambres des Métiers et de l'Artisanat" } %li.user %a{ :href => "http://www.cci.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/cci.jpg"), alt: "Logo de la CCI de France" } + %img.user-image{ :src => image_url("landing/users/cci.jpg"), alt: "CCI de France" } %li.user %a{ :href => "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/driea-idf.jpg"), alt: "Logo de la Direction Régionale et Interdépartementale de l'Équipement et de l'Aménagement" } + %img.user-image{ :src => image_url("landing/users/driea-idf.jpg"), alt: "Direction Régionale et Interdépartementale de l'Équipement et de l'Aménagement" } %ul.users %li.user %a{ :href => "https://www.debatpublic.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/cndp.jpg"), alt: "Logo de la Commission Nationale du Débat Public" } + %img.user-image{ :src => image_url("landing/users/cndp.jpg"), alt: "Commission Nationale du Débat Public" } %li.user %a{ :href => "https://www.iledefrance.ars.sante.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/ars-idf.jpg"), alt: "Logo de l'Agence Régionale de Santé d'Île-de-France" } + %img.user-image{ :src => image_url("landing/users/ars-idf.jpg"), alt: "Agence Régionale de Santé d'Île-de-France" } %li.user %a{ :href => "http://www.franceagrimer.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/france-agrimer.jpg"), alt: "Logo de FranceAgrimer" } + %img.user-image{ :src => image_url("landing/users/france-agrimer.jpg"), alt: "FranceAgrimer" } %li.user %a{ :href => "http://www.rhone.gouv.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg"), alt: "Logo de la Préfecture de la région Rhône-Alpes" } + %img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg"), alt: "Préfecture de la région Rhône-Alpes" } %li.user %a{ :href => "http://www.lillemetropole.fr/", :target => "_blank " } - %img.user-image{ :src => image_url("landing/users/mel.jpg"), alt: "Logo de la Métropole Européenne de Lille" } + %img.user-image{ :src => image_url("landing/users/mel.jpg"), alt: "Métropole Européenne de Lille" } .landing-panel.cta-panel .container From 9493ab7e1b6e0f53fd22612db7bbe1c54e9b3042 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Thu, 8 Mar 2018 15:06:54 +0100 Subject: [PATCH 38/41] Add reference to AccessLint in the README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f759fd669..c375c5a97 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ Une fois `overmind` lancé, et un breakpoint `byebug` inséré dans le code, il - Faire tourner Brakeman : `bundle exec brakeman` - Linter les fichiers HAML : `bundle exec haml-lint app/views/` - Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/` +- [AccessLint](http://accesslint.com/) tourne automatiquement sur les PRs ## Déploiement From b1584ff739cfc570481bff80179395852a157c51 Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Thu, 8 Mar 2018 23:03:58 +0100 Subject: [PATCH 39/41] fix target _blank --- app/views/root/landing.html.haml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index bf1d1348e..2ac59c85a 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -156,36 +156,36 @@ %ul.users %li.user - %a{ :href => "https://www.ecologique-solidaire.gouv.fr/", :target => "_blank " } + = link_to "https://www.ecologique-solidaire.gouv.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/mtes.jpg"), alt: "Ministère de la Transition Écologique et Solidaire" } %li.user - %a{ :href => "https://www.iledefrance.fr/", :target => "_blank " } + = link_to "https://www.iledefrance.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/region-idf.jpg"), alt: "Région Île-de-France" } %li.user - %a{ :href => "http://www.artisanat.fr/", :target => "_blank " } + = link_to "http://www.artisanat.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg"), alt: "Chambres des Métiers et de l'Artisanat" } %li.user - %a{ :href => "http://www.cci.fr/", :target => "_blank " } + = link_to "http://www.cci.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/cci.jpg"), alt: "CCI de France" } %li.user - %a{ :href => "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", :target => "_blank " } + = link_to "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/driea-idf.jpg"), alt: "Direction Régionale et Interdépartementale de l'Équipement et de l'Aménagement" } %ul.users %li.user - %a{ :href => "https://www.debatpublic.fr/", :target => "_blank " } + = link_to "https://www.debatpublic.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/cndp.jpg"), alt: "Commission Nationale du Débat Public" } %li.user - %a{ :href => "https://www.iledefrance.ars.sante.fr/", :target => "_blank " } + = link_to "https://www.iledefrance.ars.sante.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/ars-idf.jpg"), alt: "Agence Régionale de Santé d'Île-de-France" } %li.user - %a{ :href => "http://www.franceagrimer.fr/", :target => "_blank " } + = link_to "http://www.franceagrimer.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/france-agrimer.jpg"), alt: "FranceAgrimer" } %li.user - %a{ :href => "http://www.rhone.gouv.fr/", :target => "_blank " } + = link_to "http://www.rhone.gouv.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/prefecture-rhone.jpg"), alt: "Préfecture de la région Rhône-Alpes" } %li.user - %a{ :href => "http://www.lillemetropole.fr/", :target => "_blank " } + = link_to "http://www.lillemetropole.fr/", target: :blank do %img.user-image{ :src => image_url("landing/users/mel.jpg"), alt: "Métropole Européenne de Lille" } .landing-panel.cta-panel From df625f3b6c5c137046abf8902f2cdd6fcc38ae1d Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Thu, 8 Mar 2018 23:10:03 +0100 Subject: [PATCH 40/41] fix spaces in href --- app/views/root/landing.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index 2ac59c85a..50e02717a 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -47,7 +47,7 @@ %p.role-panel-explanation Créez des formulaires en ligne en quelques minutes et instruisez les demandes des usagers sur une plateforme dédiée = link_to "Demander un compte", - "mailto:#{t("dynamics.contact_email")}?subject=Demande de compte administrateur demarches-simplifiees.fr", + "mailto:#{t("dynamics.contact_email")}?subject=Demande%20de%20compte%20administrateur%20demarches-simplifiees.fr", class: "role-panel-button-primary", target: "_blank", onclick: "javascript: ga('send', 'pageview', '/demander-une-demo')" @@ -196,6 +196,6 @@ %p.cta-panel-explanation Notre équipe est disponible pour vous renseigner et vous aider %div = link_to "Contactez-nous", - "mailto:#{t("dynamics.contact_email")}?subject=Question à propos de demarches-simplifiees.fr", + "mailto:#{t("dynamics.contact_email")}?subject=Question%20à%20propos%20de%20demarches-simplifiees.fr", class: "cta-panel-button-white", target: "_blank" From 5b07f59ffbb1e79714b2679f00cef79510dcdddf Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Thu, 8 Mar 2018 23:18:49 +0100 Subject: [PATCH 41/41] fix data tag without a value attribute --- app/views/layouts/_mailjet_newsletter.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/_mailjet_newsletter.html.haml b/app/views/layouts/_mailjet_newsletter.html.haml index ef5de8af3..0cf468a00 100644 --- a/app/views/layouts/_mailjet_newsletter.html.haml +++ b/app/views/layouts/_mailjet_newsletter.html.haml @@ -1,2 +1,2 @@ -%data.mj-w-data{ "data-apikey" => "1v5T", "data-base" => "https://app.mailjet.com", "data-height" => "328", "data-lang" => "fr_FR", "data-statics" => "statics", "data-token" => "11c89e7ddb46fbcdcb7f8fe5fdfca818", "data-w-id" => "39b", "data-width" => "640" } +%data.mj-w-data{ "data-apikey" => "1v5T", "data-base" => "https://app.mailjet.com", "data-height" => "328", "data-lang" => "fr_FR", "data-statics" => "statics", "data-token" => "11c89e7ddb46fbcdcb7f8fe5fdfca818", "data-w-id" => "39b", "data-width" => "640", "value" => "mj" } %script{ src: 'https://app.mailjet.com/statics/js/widget.modal.js', 'data-turbolinks-eval': 'false' }