Skip to content

Commit 8e34cad

Browse files
🎨 Revue des suggestions en homepage et boutons de partage (+ ajout de django Lookbook) (#1728)
* Fix fixtures installation * Rename and comment * Rename * Add proposition service fixture * Fix selector * Update selector * Fixtures * Missing proposition services * Missing proposition services * Rollback precommit changes * Fix fixtures * Fix fixtures * Fix fixtures * Fix fixtures * Fix fixtures * Fix fixtures * Update fixtures... * Fix fixtures * Fix this * Skip digital acteurs * Fix formulaire test * Disable test for now * Click on svg explicitely * Click on svg explicitely * Add docstring * Ignore file * Test * Add basic config * redirect http to https locally * wip * Remove sidebar * Add share / embed buttons * Improve spacing * Improve alignment on homepage * Add icon to footer * Missing produit * Add comment * Retours Delphine * Update wordings * WIP
1 parent 07f6fd4 commit 8e34cad

39 files changed

+932
-706
lines changed

‎.secrets.baseline‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@
9090
{
9191
"path": "detect_secrets.filters.allowlist.is_line_allowlisted"
9292
},
93+
{
94+
"path": "detect_secrets.filters.common.is_baseline_file",
95+
"filename": ".secrets.baseline"
96+
},
9397
{
9498
"path": "detect_secrets.filters.common.is_ignored_due_to_verification_policies",
9599
"min_level": 2
@@ -138,7 +142,7 @@
138142
"filename": "core/settings.py",
139143
"hashed_secret": "1ee34e26aeaf89c64ecc2c85efe6a961b75a50e9",
140144
"is_verified": false,
141-
"line_number": 291
145+
"line_number": 292
142146
}
143147
],
144148
"dbt/package-lock.yml": [
@@ -187,5 +191,5 @@
187191
}
188192
]
189193
},
190-
"generated_at": "2025-06-23T18:57:14Z"
194+
"generated_at": "2025-06-25T12:33:12Z"
191195
}

‎core/constants.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,5 @@
4747
"texte_du_lien": "En savoir plus sur l’Info-tri",
4848
},
4949
"nouvelle_recherche": "Nouvelle recherche",
50+
"faites_decouvrir_ce_site": "Faites découvrir ce site !",
5051
}

‎core/context_processors.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from django.urls import reverse
33

44
from qfdmd.forms import SearchForm
5-
from qfdmd.views import SEARCH_VIEW_TEMPLATE_NAME, generate_iframe_script
65

76
from . import constants
87

@@ -44,7 +43,5 @@ def global_context(request) -> dict:
4443
return {
4544
**base,
4645
"search_form": SearchForm(),
47-
"search_view_template_name": SEARCH_VIEW_TEMPLATE_NAME,
48-
"iframe_script": generate_iframe_script(request),
4946
**constants.ASSISTANT,
5047
}

‎core/settings.py‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
VERSION = decouple.config("CONTAINER_VERSION", default="version", cast=str)
8686
APP = decouple.config("APP", default="local", cast=str)
8787
BASE_URL = ASSISTANT.get("BASE_URL")
88+
8889
BASE_ALLOWED_HOSTS = [
8990
urlparse(config.get("BASE_URL")).hostname for config in [ASSISTANT, LVAO]
9091
]
@@ -120,6 +121,7 @@
120121
"qfdmo",
121122
"data",
122123
"corsheaders",
124+
"django_lookbook",
123125
]
124126

125127

@@ -508,3 +510,10 @@ def context_processors():
508510
"wagtail.contrib.redirects.middleware.RedirectMiddleware",
509511
]
510512
)
513+
514+
# UI
515+
# ---
516+
LOOKBOOK = {
517+
"preview_base": ["previews"],
518+
"show_previews": DEBUG,
519+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import logging
2+
3+
from django import template
4+
from django.conf import settings
5+
from django.urls import reverse
6+
7+
register = template.Library()
8+
9+
logger = logging.getLogger(__name__)
10+
11+
12+
def generate_iframe_script(request) -> str:
13+
"""Generates a <script> tag used to embed Assistant website."""
14+
script_parts = ["<script"]
15+
if (
16+
request
17+
and request.resolver_match
18+
and request.resolver_match.view_name == "qfdmd:synonyme-detail"
19+
):
20+
produit_slug = request.resolver_match.kwargs["slug"]
21+
script_parts.append(f'data-objet="{produit_slug}"')
22+
23+
script_parts.append(
24+
f'src="{settings.ASSISTANT["BASE_URL"]}{reverse("qfdmd:script")}"></script>'
25+
)
26+
return " ".join(script_parts)
27+
28+
29+
@register.simple_tag(takes_context=True)
30+
def assistant_iframe_script(context: dict) -> str:
31+
request = context.get("request")
32+
return generate_iframe_script(request)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import logging
2+
3+
from django import template
4+
from django.conf import settings
5+
from django.urls import reverse
6+
7+
register = template.Library()
8+
9+
logger = logging.getLogger(__name__)
10+
11+
12+
def generate_iframe_script(request) -> str:
13+
"""Generates a <script> tag used to embed Assistant website."""
14+
script_parts = ["<script"]
15+
if (
16+
request
17+
and request.resolver_match
18+
and request.resolver_match.view_name == "qfdmd:synonyme-detail"
19+
):
20+
produit_slug = request.resolver_match.kwargs["slug"]
21+
script_parts.append(f'data-objet="{produit_slug}"')
22+
23+
script_parts.append(
24+
f'src="{settings.ASSISTANT["BASE_URL"]}{reverse("qfdmd:script")}"></script>'
25+
)
26+
return " ".join(script_parts)
27+
28+
29+
@register.simple_tag(takes_context=True)
30+
def assistant_iframe_script(context: dict) -> str:
31+
if request := context.get("request"):
32+
return generate_iframe_script(request)
33+
34+
return ""

‎core/templatetags/seo_tags.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def get_sharer_content(request, object, social_network=None):
1515
Once jinja will be removed from the project, this can be merged in
1616
share_url function below
1717
"""
18-
if not request.META:
18+
if not request or not request.META:
1919
return {}
2020

2121
carte = request.META.get("HTTP_HOST") not in settings.ASSISTANT["HOSTS"]
@@ -74,6 +74,6 @@ def configure_sharer(context):
7474
object = context.get("object").produit
7575
except AttributeError:
7676
object = None
77-
request = context["request"]
77+
request = context.get("request")
7878
context["sharer"] = get_sharer_content(request, object)
7979
return ""

‎core/urls.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ class PaginatedSitemap(GenericSitemap):
8383
)
8484
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
8585

86+
# Django Lookbook URLS
87+
urlpatterns.extend([path("lookbook/", include("django_lookbook.urls"))])
88+
8689
# Wagtail urls
8790
urlpatterns.extend(
8891
[

0 commit comments

Comments
 (0)