From ca74ae5a5e9e1761f485412b201a4be9e37653b4 Mon Sep 17 00:00:00 2001 From: clemkeirua Date: Wed, 1 Jul 2020 22:11:53 +0200 Subject: [PATCH 1/4] =?UTF-8?q?ajout=20d'une=20banni=C3=A8re=20de=20d?= =?UTF-8?q?=C3=A9pr=C3=A9ciation=20pour=20IE11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .browserslistrc | 2 +- .../_outdated_browser_banner.html.haml | 18 ++++++++--- spec/features/outdated_browser_spec.rb | 32 +++++++++++++++---- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/.browserslistrc b/.browserslistrc index 6ade378c9..aef27355f 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -6,5 +6,5 @@ Opera >= 40 Safari >= 8 iOS >= 8 # Although IE 11 shows a deprecation banner, we still support the transpilation option. -# IE 11 support may be removed starting from 01 / 06 / 2020. +# IE 11 support will be removed on Jan. 31st, 2021. IE >= 11 diff --git a/app/views/layouts/_outdated_browser_banner.html.haml b/app/views/layouts/_outdated_browser_banner.html.haml index 25a8bcbd8..78b92fa0e 100644 --- a/app/views/layouts/_outdated_browser_banner.html.haml +++ b/app/views/layouts/_outdated_browser_banner.html.haml @@ -2,11 +2,19 @@ #outdated-browser-banner.site-banner .container .site-banner-icon ⚠️ - .site-banner-text - %strong - #{browser.name} #{browser.version} est trop ancien pour utiliser demarches-simplifiees.fr. - %br - Certaines parties du site ne fonctionneront pas correctement. + - if browser.ie?(11) + .site-banner-text + Internet Explorer 11 est un navigateur trop ancien. Nous cesserons de gérer son fonctionnement à partir du + %strong + 31 janvier 2021. + %br + Merci de changer pour un navigateur plus récent avant cette date ; il peut être nécessaire de prendre contact avec un responsable informatique. + - else + .site-banner-text + %strong + #{browser.name} #{browser.version} est trop ancien pour utiliser demarches-simplifiees.fr. + %br + Certaines parties du site ne fonctionneront pas correctement. .site-banner-actions = button_to 'Ignorer', dismiss_outdated_browser_path, method: :post, remote: true, class: 'button btn', title: 'Ne plus afficher cet avertissement pendant une semaine' %a.btn.button.primary{ href: "https://browser-update.org/fr/update.html", target: "_blank", rel: "noopener" } diff --git a/spec/features/outdated_browser_spec.rb b/spec/features/outdated_browser_spec.rb index 8ca379658..0d8b5d104 100644 --- a/spec/features/outdated_browser_spec.rb +++ b/spec/features/outdated_browser_spec.rb @@ -1,29 +1,49 @@ feature 'Outdated browsers support:' do context 'when the user browser is outdated' do before(:each) do - ie_11_user_agent = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko' - Capybara.page.driver.header('user-agent', ie_11_user_agent) + ie_10_user_agent = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; InfoPath.3)' + Capybara.page.driver.header('user-agent', ie_10_user_agent) end scenario 'a banner is displayed' do visit new_user_session_path - expect(page).to have_content('Internet Explorer 11 est trop ancien') + expect(page).to have_content('Internet Explorer 10 est trop ancien') end scenario 'the banner can be dismissed' do visit new_user_session_path - expect(page).to have_content('Internet Explorer 11 est trop ancien') + expect(page).to have_content('Internet Explorer 10 est trop ancien') # The banner is hidden immediately within '#outdated-browser-banner' do click_on 'Ignorer' end - expect(page).not_to have_content('Internet Explorer 11 est trop ancien') + expect(page).not_to have_content('Internet Explorer 10 est trop ancien') expect(page).to have_current_path(new_user_session_path) # The banner is hidden after a refresh page.refresh - expect(page).not_to have_content('Internet Explorer 11 est trop ancien') + expect(page).not_to have_content('Internet Explorer 10 est trop ancien') + end + end + + context 'when the user browser is about to be outdated' do + before(:each) do + ie_11_user_agent = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko' + Capybara.page.driver.header('user-agent', ie_11_user_agent) + end + + scenario 'IE11 gets a dedicated depreciation banner for update before jan 31st 2021' do + visit new_user_session_path + expect(page).to have_content('31 janvier 2021') + expect(page).to have_content('Internet Explorer 11 est un navigateur trop ancien') + + within '#outdated-browser-banner' do + click_on 'Ignorer' + end + + page.refresh + expect(page).not_to have_content('Internet Explorer 11 est un navigateur trop ancien') end end end From a810daeb0c2296f226a7b04a882dbe0acaa0b704 Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Thu, 2 Jul 2020 11:36:29 +0200 Subject: [PATCH 2/4] stylesheets: fix with of large select elements Select elements with very long options would overflow the form width, and create a disgraceful scroller bar on the bottom of the screen. --- app/assets/stylesheets/new_design/forms.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/stylesheets/new_design/forms.scss b/app/assets/stylesheets/new_design/forms.scss index f7774389c..13f9ef273 100644 --- a/app/assets/stylesheets/new_design/forms.scss +++ b/app/assets/stylesheets/new_design/forms.scss @@ -266,6 +266,7 @@ background-size: 14px; background-position: right 10px center; padding-right: 4 * $default-spacer; + max-width: 100%; &.small { padding-right: 3 * $default-spacer; From 060bf1f9ca3ab3ea943e1bff08fd63f2bdc565f5 Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Mon, 6 Jul 2020 11:41:18 +0200 Subject: [PATCH 3/4] factories: flesh out the default etablissement for a dossier --- spec/factories/dossier.rb | 2 +- spec/factories/etablissement.rb | 6 ++++++ spec/models/dossier_spec.rb | 1 - 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spec/factories/dossier.rb b/spec/factories/dossier.rb index 580878e2a..222f87b1c 100644 --- a/spec/factories/dossier.rb +++ b/spec/factories/dossier.rb @@ -28,7 +28,7 @@ FactoryBot.define do if dossier.procedure.for_individual? raise 'Inconsistent factory: attempting to create a dossier :with_entreprise on a procedure that is `for_individual?`' end - etablissement = create(:etablissement) + etablissement = create(:etablissement, :with_exercices, :with_effectif_mensuel) dossier.etablissement = etablissement end end diff --git a/spec/factories/etablissement.rb b/spec/factories/etablissement.rb index be7520415..68d7aa544 100644 --- a/spec/factories/etablissement.rb +++ b/spec/factories/etablissement.rb @@ -30,6 +30,12 @@ FactoryBot.define do end end + trait :with_effectif_mensuel do + entreprise_effectif_mensuel { 100.5 } + entreprise_effectif_mois { '03' } + entreprise_effectif_annee { '2020' } + end + trait :non_diffusable do diffusable_commercialement { false } end diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 900e22e7e..4af2276c8 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -223,7 +223,6 @@ describe Dossier do describe '#reset!' do let!(:dossier) { create :dossier, :with_entreprise, autorisation_donnees: true } - let!(:exercice) { create :exercice, etablissement: dossier.etablissement } subject { dossier.reset! } From 975d1648d5299e75a3ec8059afabc71d3a6efec7 Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Mon, 6 Jul 2020 09:27:03 +0000 Subject: [PATCH 4/4] dossier: fix PDF rendering of effectif_mensuel The effectif_mensuel was a number, it needs to be converted explicitely into a string. As a bonus, `nil.to_s` is `""`, so we can remove the special case for nil. --- app/views/dossiers/show.pdf.prawn | 2 +- .../instructeurs/dossiers_controller_spec.rb | 26 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/app/views/dossiers/show.pdf.prawn b/app/views/dossiers/show.pdf.prawn index 244bfd352..475bf1274 100644 --- a/app/views/dossiers/show.pdf.prawn +++ b/app/views/dossiers/show.pdf.prawn @@ -9,7 +9,7 @@ def format_in_2_lines(pdf, label, text) end def render_box(pdf, text, x, width) - box = ::Prawn::Text::Box.new(text || '', { document: pdf, width: width, overflow: :expand, at: [x, pdf.cursor] }) + box = ::Prawn::Text::Box.new(text.to_s, { document: pdf, width: width, overflow: :expand, at: [x, pdf.cursor] }) box.render box.height end diff --git a/spec/controllers/instructeurs/dossiers_controller_spec.rb b/spec/controllers/instructeurs/dossiers_controller_spec.rb index ab48d0bb1..88a228c27 100644 --- a/spec/controllers/instructeurs/dossiers_controller_spec.rb +++ b/spec/controllers/instructeurs/dossiers_controller_spec.rb @@ -526,16 +526,19 @@ describe Instructeurs::DossiersController, type: :controller do describe "#show" do context "when the dossier is exported as PDF" do let(:instructeur) { create(:instructeur) } - let(:dossier) { - create(:dossier, - :accepte, - :with_all_champs, - :with_all_annotations, - :with_motivation, - :with_commentaires, procedure: procedure) -} - let!(:avis) { create(:avis, dossier: dossier, instructeur: instructeur) } + let(:dossier) do + create(:dossier, + :accepte, + :with_all_champs, + :with_all_annotations, + :with_motivation, + :with_entreprise, + :with_commentaires, procedure: procedure) + end + let(:avis) { create(:avis, dossier: dossier, instructeur: instructeur) } + subject do + avis get :show, params: { procedure_id: procedure.id, dossier_id: dossier.id, @@ -543,9 +546,8 @@ describe Instructeurs::DossiersController, type: :controller do } end - before do - subject - end + before { subject } + it { expect(assigns(:include_infos_administration)).to eq(true) } it { expect(response).to render_template 'dossiers/show' } end