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 %}