From 6de5c38e0a488542f0b0af0fa2b286281405eb29 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 02:04:13 +0000 Subject: [PATCH 01/10] Initial plan From 0a79f21cf739c5025b7a4cfddb46c09d9f4917fe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 02:10:44 +0000 Subject: [PATCH 02/10] Allow collection logo customization in header template Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com> --- opac/tests/test_interface_home.py | 87 +++++++++++++++++++ .../templates/collection/includes/header.html | 16 ++-- src/opac-schema | 1 + src/packtools | 1 + src/scieloh5m5 | 1 + 5 files changed, 101 insertions(+), 5 deletions(-) create mode 160000 src/opac-schema create mode 160000 src/packtools create mode 160000 src/scieloh5m5 diff --git a/opac/tests/test_interface_home.py b/opac/tests/test_interface_home.py index 52aaf6c92..7377e8f02 100644 --- a/opac/tests/test_interface_home.py +++ b/opac/tests/test_interface_home.py @@ -55,3 +55,90 @@ def test_collection_trans_home(self): self.assertStatus(response, 200) expected_anchor = "colección falsa" self.assertIn(expected_anchor, response.data.decode("utf-8")) + + def test_home_logo_shown_when_configured(self): + """ + Verificamos se a home exibe o logo da coleção quando está configurado. + """ + + with current_app.app_context(): + utils.makeOneCollection( + { + "name_pt": "coleção falsa", + "home_logo_pt": "http://example.com/logo_pt.png", + "home_logo_en": "http://example.com/logo_en.png", + "home_logo_es": "http://example.com/logo_es.png", + } + ) + + with self.client as c: + # idioma em 'pt_br' + response = c.get( + url_for("main.set_locale", lang_code="pt_BR"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + "http://example.com/logo_pt.png", + response.data.decode("utf-8"), + ) + self.assertNotIn( + 'id="collectionNameHome"', response.data.decode("utf-8") + ) + + # idioma em 'en' + response = c.get( + url_for("main.set_locale", lang_code="en"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + "http://example.com/logo_en.png", + response.data.decode("utf-8"), + ) + + def test_home_logo_fallback_to_text_when_not_configured(self): + """ + Verificamos se a home exibe o nome da coleção em texto quando não há logo configurado. + """ + + with current_app.app_context(): + utils.makeOneCollection({"name_pt": "coleção falsa"}) + + with self.client as c: + response = c.get( + url_for("main.set_locale", lang_code="pt_BR"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + 'id="collectionNameHome"', response.data.decode("utf-8") + ) + self.assertIn("coleção falsa", response.data.decode("utf-8")) + + def test_home_aria_label_uses_collection_name(self): + """ + Verificamos se o aria-label usa o nome dinâmico da coleção. + """ + + with current_app.app_context(): + utils.makeOneCollection({"name_pt": "coleção falsa"}) + + with self.client as c: + response = c.get( + url_for("main.set_locale", lang_code="pt_BR"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + 'aria-label="Acessar site coleção coleção falsa"', + response.data.decode("utf-8"), + ) diff --git a/opac/webapp/templates/collection/includes/header.html b/opac/webapp/templates/collection/includes/header.html index a52a0b8b6..538f6a130 100644 --- a/opac/webapp/templates/collection/includes/header.html +++ b/opac/webapp/templates/collection/includes/header.html @@ -1,4 +1,5 @@ {% import 'macros/collection.html' as coll_macro %} +{% import 'macros/images.html' as img_macro %}