From 5f922520547af033f1be0eaa9339f43e8910ba61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 18 May 2021 15:50:34 +0200 Subject: [PATCH] Fix exception using locales with no help images In commit 905ac48bb we activated exceptions when assets were not found, in order to detect places where we were trying to load non-existent images. We got an exception for that reason: we were loading images based on the current locale, but for some locales there was no images. We're now using fallbacks and loading another image when the original one isn't available. Note we're copying the English images to images with a generic name for the case where there's no fallback with an image. We're copying the files instead of using symbolic links to make sure they can be overwritten independently in other CONSUL installations. Also note we're updating the HTML so the section gets the ID instead of the header. That way the system test is simple. --- app/assets/images/help/budgets.png | Bin 0 -> 15565 bytes app/assets/images/help/proposals.png | Bin 0 -> 12370 bytes .../pages/help/section_component.html.erb | 6 +-- .../pages/help/section_component.rb | 17 +++++-- app/views/pages/help/_budgets.html.erb | 2 +- app/views/pages/help/_debates.html.erb | 2 +- app/views/pages/help/_processes.html.erb | 2 +- app/views/pages/help/_proposals.html.erb | 2 +- .../pages/help/section_component_spec.rb | 43 ++++++++++++++++++ spec/system/help_page_spec.rb | 8 ++++ 10 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 app/assets/images/help/budgets.png create mode 100644 app/assets/images/help/proposals.png create mode 100644 spec/components/pages/help/section_component_spec.rb diff --git a/app/assets/images/help/budgets.png b/app/assets/images/help/budgets.png new file mode 100644 index 0000000000000000000000000000000000000000..1c10021454bf3dbcb3b66b4b89092419d270ca23 GIT binary patch literal 15565 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 AO8@`> literal 0 HcmV?d00001 diff --git a/app/assets/images/help/proposals.png b/app/assets/images/help/proposals.png new file mode 100644 index 0000000000000000000000000000000000000000..60357f222ce90bbba19a21e196ade42fa7a7aab5 GIT binary patch literal 12370 zcmch-bx@o^^DYV@xVuY`;O_43P9Qjo!{YAlE6z(y`kC1YS5lBfgu{aa0|P^pmJ(9|JugAuA(&5~-)}@Oke~;ylem_X zD$vx))zAR|CTs#U0+2}C7@7f80EQ;+_QL=^Ffa%z3pFh#EqOT}W1tO#;a?dBHyb;U zHW(P6pqrhcu@%6H#0X$!Varc?(bh#uVqwBhs>v?TByT4QFt?EMZ~&-!D5x2GSQ&Gh zkO~Tr@VW7T4A=mi3`yK$ZluS6mWbO4aB zGjPxwGjVW|aB?#+vvYE?ang~nFfp?;GO;qUGSRcJ@~|=Su(6Q*>q81^&B4T!M@3BH zUu}Wj_({#3oa}fQ8C_jn8C+QzfDUGi%-r1Ej7%(yEG+aO33^9&TPH&|dRs@be_Id( zI2t=x*g07MZAt!GG&BM_JMoi(JpE@EZ0!EWtgYj}h6yxajBbW@jLZy7f4lT=L3#QA ze^DEo|B-fdQUUxgfB&mtM>Tgl0HX@P5$Nn-44ODovcFB)@rXJA44r@uYCxd%zeiEY z9OwjeGzZ#|h>HGW)JUl04UH{q|5j4}LrY$sN7~lW$_94uS_CK3)n8@C=@#P=7;!I5cTU|zw zGmL+y_dlll-&LR(`dj>;;03+>Pxu3DK{4+D3U2!i$1*T5x^8JPVKujvQ(ag$O!0-v z5eW_$f1%#aQmP1&p|6pLFfb9M`F==wB~)R}WK=nUqb2z^P|I-=%-4g6jTHjc~1?I3Gri zO{ziv3Z~gl9i_r%QPGe^tECR@+!B4w7k)|;XPn=DE-Rq3;leRV{d9G~%fbSosB<;CqS&Q%ySZum@eZ-?;^Hz9Z!(&jLQugL zLo)GmxumAKJ}^2G3y8FNefXNBs4;L%_He&CQVl2#wfp>K^z{f->BKv zxEeDd4_BL|CVx7FNLF6*2e2F(_pn;35dM zK)lFV(9~wf(@uV}JrG$D890j70I!NBqxeW6$|eOD-)4KabJy0dxQaH(OHD>fDr9E6 zR^K4pp+;TkTHu|bL9fH+Za>lHfjwgQHZXp0e-!RGapAfDLhQR-Z|{8q^IE%M<^oF{ z{p$6a#j~57A&JP_dlA&sYv@OX-`Pu2b`osQ#|LN39&U~O}=jSLIgSGDQ0soxusH3P)mbdhC zQ--mgR=OIQMtxPP;C1wKhxUH^vuNd)V(Y9I!cV=Xsal*K`aN>HYNvNHHQZ?%2Sur)_-tIIATT0yHYiDKd@QWd0HbN9Qa86y-Dj>K_N3dpbauN1DE0xL96$M_$uE`9rNFUYSJ-N}Jancm}j*z5f7t?^B3>oq=>yCHWI zr>J?=o}aav|AcDL$4bi~xEHOr)rWo>9vvOrliUv`*ohZO?x=ckFT$`w67qgC*-TGrp9JHM_4`f_|k)+_x*cj2WOLpg9_x|H7Z?} zjYEj8>+#_I@IgDMeECQb-J+qt__HS8;j*L z7RaLrd0h-1(#*1ZIIJCga7c(<%*NBzd(^oQ3kL5`s=H!hQ|R;p&WvOET}~D%mpb-R zbZU6L9__3zM%L!*EmTi;&>l)t=)O5ji(_Xw%}A4s7f2_vu(H};R<)h;e6-&T#u8Ug z_CO$T`F2NhZj`uIH}AlmGH5r$xcWa`%$H-YB)=an>ihl<4unF~?(}*pOx0UylwSq; zY`6RiuyJ;OvH8)|^@jLh>FAIl8>)BgUBKA>Cqecyj&sw?5#*D;*OfTizRTGPJ8*+w zZ)Wcm(|Au|9p^t$p z&9E1!K?}hd-IC3aTo|~xEzD68(Re)rK&>vHw75|D-aG9 ze-RDwJ850it+DHY#QuJ{bGn?><|Itq;3a{T1@1&<^TBTcB-8K_LW!{+61|A+Mr&-V{cxw zUV1=xirW9zQZ|!)9)r>cWJV|`W}T1cT#D;6o=)Z7d=$9%l9ubtVhMRQ%BiXMN|f_+ zeoX=7(^v}OYM&0tZ$S$uXk?*Gn|OE}_AOh=+WP1s>nJ)iGZU^VA}XT&aVN6&YQys) z%jfxs)pTqMN-M+bhv@B{2R0rLGjpv^$Mboj-)#;m7b1;lb0Ebtv}e@MeQHNQlqd_r z((Xowr)ZVaF^0A)?(MY{tWZi$pa0%KWi5PpRF}T*8~b}NZu4#o?*z{Y9iQNYBz(}u zC0ytWd=G>xN2#ew>TGMy>a-1xDUNOJ`Jvr>CbwgbG>_|f#l=L>d!OHg$Dg72!-`yD zK9NNQ*h+`AjEr(u_GHx&1Q&PBx4UZJV7w!{9R3D!YLG&YU;t2-cP^v zefbPSGDovRP7My*B?CB06t$no%Uil(l4XyOB0~Anrz;Kc+5|GsXH6TXA|Hles@pU@ zz;fk$sOPmGzk=gbRaLJRS=H=5ix!pWbwpGLutSb+{@}&_h~Yiws#zebKi?7d4x4+} z^d-jbO$}ghJ!4>lAg8vbcljbc9cXoPf%~%ApU$59bG3(l2mLhpr)-4mLX|%DG2C%z zr|kOW;@U4j4jNOO~)M5jTzXmU~RkF zNMELZ0(1jvcbk78$oG1XhefwI9=IG%fm=Sd-%RwOVw~enH&`w1ph;zcAalS5w##-o z;N|^#lyPcPn=OOVocd#773lA{g0p)uO!>1yckJorAfNVeD-gK`UVf&+oi%j?ZaNtoXu7mw>E1t9d5t5?zm?w5?Ga+dr!p*#`Pqm6oerZCR7vs^c( z`>!vjM3MPH$;57A%hNw~i!y$c#*koX@vmABHJjS@Q%iyI=nSWjB$-6DWk}f{YX> zm!EDs;c?E@I@lDT$iMS`zU@i1nJq%Zm}_-DA*r9@tH&S5dJYr8uN3lQwtI}>-v3d- zq)oJl*4DaNy+u=^cWAt1p~j>gFlf33g5UGSYT_u)5?GGFUvYC-8U9549^IBA$8_JD zQ7Dmdn82cX?A^3i(gR|)a81H#AyzIKIzqmT52X?mt!Cuu!f4@pSML zI-?d*5ZM$H`*xur&-GrknrQAb{AlWqH4xCO(7MWi6q)zCwL2OMG&tTL�@bTfY&00F@Ne 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 -
-

- <%= t("pages.help.#{section}.title") %> -

+
+

<%= t("pages.help.#{section}.title") %>

<%= content %> diff --git a/app/components/pages/help/section_component.rb b/app/components/pages/help/section_component.rb index 3d15072c0..fed9ce2a9 100644 --- a/app/components/pages/help/section_component.rb +++ b/app/components/pages/help/section_component.rb @@ -1,8 +1,19 @@ class Pages::Help::SectionComponent < ApplicationComponent - attr_reader :section, :image_path + attr_reader :section - def initialize(section, image_path = nil) + def initialize(section) @section = section - @image_path = image_path + end + + def image_path + locale_with_image = Array(I18n.fallbacks[I18n.locale]).find do |locale| + AssetFinder.find_asset("help/#{section}_#{locale}.png") + end + + if locale_with_image + "help/#{section}_#{locale_with_image}.png" + elsif AssetFinder.find_asset("help/#{section}.png") + "help/#{section}.png" + end end end diff --git a/app/views/pages/help/_budgets.html.erb b/app/views/pages/help/_budgets.html.erb index 00f086054..21d8c53d0 100644 --- a/app/views/pages/help/_budgets.html.erb +++ b/app/views/pages/help/_budgets.html.erb @@ -1,4 +1,4 @@ -<%= render Pages::Help::SectionComponent.new("budgets", "help/budgets_#{I18n.locale}.png") do %> +<%= render Pages::Help::SectionComponent.new("budgets") do %>

<%= sanitize(t("pages.help.budgets.description", link: link_to(t("pages.help.budgets.link"), budgets_path))) %> diff --git a/app/views/pages/help/_debates.html.erb b/app/views/pages/help/_debates.html.erb index ebc3800d0..db380a20e 100644 --- a/app/views/pages/help/_debates.html.erb +++ b/app/views/pages/help/_debates.html.erb @@ -1,4 +1,4 @@ -<%= render Pages::Help::SectionComponent.new("debates", "help/debates.png") do %> +<%= render Pages::Help::SectionComponent.new("debates") do %>

<%= sanitize(t("pages.help.debates.description", org: setting["org_name"], diff --git a/app/views/pages/help/_processes.html.erb b/app/views/pages/help/_processes.html.erb index 388048a79..18178f385 100644 --- a/app/views/pages/help/_processes.html.erb +++ b/app/views/pages/help/_processes.html.erb @@ -1,4 +1,4 @@ -<%= render Pages::Help::SectionComponent.new("processes", nil) do %> +<%= render Pages::Help::SectionComponent.new("processes") do %>

<% link = link_to(t("pages.help.processes.link"), legislation_processes_path) %> <%= sanitize(t("pages.help.processes.description", link: link)) %> diff --git a/app/views/pages/help/_proposals.html.erb b/app/views/pages/help/_proposals.html.erb index fd9cf18bc..ef6875e67 100644 --- a/app/views/pages/help/_proposals.html.erb +++ b/app/views/pages/help/_proposals.html.erb @@ -1,4 +1,4 @@ -<%= render Pages::Help::SectionComponent.new("proposals", "help/proposals_#{I18n.locale}.png") do %> +<%= render Pages::Help::SectionComponent.new("proposals") do %>

<%= sanitize(t("pages.help.proposals.description", link: link_to(t("pages.help.proposals.link"), proposals_path))) %> diff --git a/spec/components/pages/help/section_component_spec.rb b/spec/components/pages/help/section_component_spec.rb new file mode 100644 index 000000000..f116f9579 --- /dev/null +++ b/spec/components/pages/help/section_component_spec.rb @@ -0,0 +1,43 @@ +require "rails_helper" + +describe Pages::Help::SectionComponent, type: :component do + describe "#image_path" do + it "returns the image for the first fallback language with an image" do + allow(I18n).to receive(:fallbacks).and_return({ en: [:es, :de] }) + + component = Pages::Help::SectionComponent.new("proposals") + + expect(component.image_path).to eq "help/proposals_es.png" + end + + it "returns the default image when no fallback language has an image" do + allow(I18n).to receive(:fallbacks).and_return({}) + + component = Pages::Help::SectionComponent.new("proposals") + + expect(component.image_path).to eq "help/proposals.png" + end + + it "returns nil when there is no image" do + component = Pages::Help::SectionComponent.new("polls") + + expect(component.image_path).to be nil + end + end + + describe "image tag" do + it "renders an image on sections with an image" do + render_inline Pages::Help::SectionComponent.new("debates") + + expect(page).to have_selector "img" + expect(page).to have_selector "figure" + end + + it "does not render an image tag when there is no image" do + render_inline Pages::Help::SectionComponent.new("processes") + + expect(page).not_to have_selector "img" + expect(page).not_to have_selector "figure" + end + end +end diff --git a/spec/system/help_page_spec.rb b/spec/system/help_page_spec.rb index 7c721ec41..5b1a365a7 100644 --- a/spec/system/help_page_spec.rb +++ b/spec/system/help_page_spec.rb @@ -26,6 +26,14 @@ describe "Help page" do end end + scenario "renders the default image for locales with no images" do + Setting["feature.help_page"] = true + + visit help_path(locale: :de) + + within("#proposals") { expect(page).to have_css "img" } + end + scenario "renders the SDG help page link when the feature is enabled" do Setting["feature.help_page"] = true Setting["feature.sdg"] = true