From e4391ddd13d4cae495d25d10fae46aeb8e646985 Mon Sep 17 00:00:00 2001 From: Fabien Le Frapper Date: Fri, 12 Sep 2025 12:14:48 +0200 Subject: [PATCH 1/7] Add case in sharer where object is none --- core/templatetags/share_tags.py | 23 +++++++++++------------ integration_tests/core/test_sharer.py | 9 ++++++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/core/templatetags/share_tags.py b/core/templatetags/share_tags.py index 9556e28ac..5e9045efd 100644 --- a/core/templatetags/share_tags.py +++ b/core/templatetags/share_tags.py @@ -18,6 +18,9 @@ def get_sharer_content(request, object, social_network=None): return {} carte = request.resolver_match.view_name in ["qfdmo:carte", "qfdmo:carte_custom"] + if not object: + object = "" + url = request.build_absolute_uri() share_body = "" @@ -64,21 +67,17 @@ def get_sharer_content(request, object, social_network=None): return template[social_network] +def _configure_sharer(context): + shared_object = context.get("object") + request = context.get("request") + context["sharer"] = get_sharer_content(request, shared_object) + + @register.simple_tag(takes_context=True) def configure_acteur_sharer(context): - try: - object = context.get("object") - except AttributeError: - object = None - request = context.get("request") - context["sharer"] = get_sharer_content(request, object) + return _configure_sharer(context) @register.simple_tag(takes_context=True) def configure_produit_sharer(context): - try: - object = context.get("object").produit - except AttributeError: - object = None - request = context.get("request") - context["sharer"] = get_sharer_content(request, object) + return _configure_sharer diff --git a/integration_tests/core/test_sharer.py b/integration_tests/core/test_sharer.py index d55ab5eea..e11d8d608 100644 --- a/integration_tests/core/test_sharer.py +++ b/integration_tests/core/test_sharer.py @@ -5,7 +5,7 @@ import pytest from django.test import RequestFactory -from django.urls import resolve +from django.urls import resolve, reverse from core.templatetags.share_tags import get_sharer_content from unit_tests.qfdmd.qfdmod_factory import SynonymeFactory @@ -40,6 +40,13 @@ def test_sharer_synonyme(self): }, } + def test_sharer_without_object(self): + url = reverse("qfdmd:home") + request = RequestFactory().get(url) + request.resolver_match = resolve(url) + sharer = get_sharer_content(request, None) + assert "None" not in str(sharer) + def test_sharer(self): displayed_acteur = DisplayedActeurFactory(nom="Coucou", uuid="un-coucou-unique") url = displayed_acteur.get_absolute_url() From d7878f9b7b814fc48523566772d185f1c8b1aeec Mon Sep 17 00:00:00 2001 From: Fabien Le Frapper Date: Fri, 12 Sep 2025 12:15:11 +0200 Subject: [PATCH 2/7] Add case in sharer where object is none --- core/templatetags/share_tags.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/templatetags/share_tags.py b/core/templatetags/share_tags.py index 5e9045efd..fdcf064f5 100644 --- a/core/templatetags/share_tags.py +++ b/core/templatetags/share_tags.py @@ -75,9 +75,9 @@ def _configure_sharer(context): @register.simple_tag(takes_context=True) def configure_acteur_sharer(context): - return _configure_sharer(context) + _configure_sharer(context) @register.simple_tag(takes_context=True) def configure_produit_sharer(context): - return _configure_sharer + _configure_sharer(context) From 4a94197b4755a3d989aac9c031a7388d0ef17068 Mon Sep 17 00:00:00 2001 From: Fabien Le Frapper Date: Fri, 12 Sep 2025 12:19:20 +0200 Subject: [PATCH 3/7] Fix issue --- core/templatetags/share_tags.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/templatetags/share_tags.py b/core/templatetags/share_tags.py index fdcf064f5..e3d9b0224 100644 --- a/core/templatetags/share_tags.py +++ b/core/templatetags/share_tags.py @@ -67,17 +67,18 @@ def get_sharer_content(request, object, social_network=None): return template[social_network] -def _configure_sharer(context): +def _configure_sharer(context, object_class): shared_object = context.get("object") request = context.get("request") context["sharer"] = get_sharer_content(request, shared_object) + return "" @register.simple_tag(takes_context=True) def configure_acteur_sharer(context): - _configure_sharer(context) + return _configure_sharer(context) @register.simple_tag(takes_context=True) def configure_produit_sharer(context): - _configure_sharer(context) + return _configure_sharer(context) From 847575db2ed8b2e486294bd477a4bb87e20f082d Mon Sep 17 00:00:00 2001 From: Fabien Le Frapper Date: Fri, 12 Sep 2025 12:30:06 +0200 Subject: [PATCH 4/7] Add test --- core/templatetags/share_tags.py | 2 +- integration_tests/assistant/home.py | 5 +++++ integration_tests/core/test_sharer.py | 9 +-------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/core/templatetags/share_tags.py b/core/templatetags/share_tags.py index e3d9b0224..86e7fb3d7 100644 --- a/core/templatetags/share_tags.py +++ b/core/templatetags/share_tags.py @@ -67,7 +67,7 @@ def get_sharer_content(request, object, social_network=None): return template[social_network] -def _configure_sharer(context, object_class): +def _configure_sharer(context): shared_object = context.get("object") request = context.get("request") context["sharer"] = get_sharer_content(request, shared_object) diff --git a/integration_tests/assistant/home.py b/integration_tests/assistant/home.py index 2e1073c4b..79b5bb03d 100644 --- a/integration_tests/assistant/home.py +++ b/integration_tests/assistant/home.py @@ -53,6 +53,11 @@ def test_patchwork(self, get_response, tmp_path): ) assert soup.css.select("[data-testid=patchwork-icon]")[0] + def test_none_in_modal(self, get_response): + response, soup = get_response() + modal = soup.find(id="fr-modal-partager-le-site") + assert "None" not in modal.get_text() + def test_suggestions(self, get_response, tmp_path): produit = ProduitFactory(nom="Coucou le produit") synonyme = SynonymeFactory(produit=produit, nom="Youpi le synonyme") diff --git a/integration_tests/core/test_sharer.py b/integration_tests/core/test_sharer.py index e11d8d608..d55ab5eea 100644 --- a/integration_tests/core/test_sharer.py +++ b/integration_tests/core/test_sharer.py @@ -5,7 +5,7 @@ import pytest from django.test import RequestFactory -from django.urls import resolve, reverse +from django.urls import resolve from core.templatetags.share_tags import get_sharer_content from unit_tests.qfdmd.qfdmod_factory import SynonymeFactory @@ -40,13 +40,6 @@ def test_sharer_synonyme(self): }, } - def test_sharer_without_object(self): - url = reverse("qfdmd:home") - request = RequestFactory().get(url) - request.resolver_match = resolve(url) - sharer = get_sharer_content(request, None) - assert "None" not in str(sharer) - def test_sharer(self): displayed_acteur = DisplayedActeurFactory(nom="Coucou", uuid="un-coucou-unique") url = displayed_acteur.get_absolute_url() From 4553653434ecde4d6dbeab0f7b690d771e4d56eb Mon Sep 17 00:00:00 2001 From: Fabien Le Frapper Date: Fri, 12 Sep 2025 12:32:07 +0200 Subject: [PATCH 5/7] Fix buttons homepage --- templates/modals/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/modals/base.html b/templates/modals/base.html index e3c5cbc8d..3fe0afa39 100644 --- a/templates/modals/base.html +++ b/templates/modals/base.html @@ -1,6 +1,6 @@ {% block modal_wrapper_for_id %}