Refine header language switcher and align i18n search routes

This commit is contained in:
2026-05-14 00:15:43 +02:00
parent 1c991756c1
commit 1ddc7b10f6
5 changed files with 30 additions and 11 deletions

View File

@@ -1,3 +1,5 @@
import os
from ..base import * # pylint:disable=W0401,W0614
try:
@@ -20,4 +22,10 @@ if "salt_target" in globals():
ALLOWED_HOSTS.append("mandelstudio.%s" % salt_target) # pylint: disable=E0602
# pylint: disable=E0602
WAGTAILSEARCH_BACKENDS["default"]["URLS"] = ["https://search.mandelblog.com:9200"]
WAGTAILSEARCH_BACKENDS["default"].setdefault("OPTIONS", {})
WAGTAILSEARCH_BACKENDS["default"]["OPTIONS"]["verify_certs"] = False
if os.getenv("OSCAR_ELASTICSEARCH_API_KEY"):
WAGTAILSEARCH_BACKENDS["default"]["OPTIONS"]["api_key"] = os.getenv(
"OSCAR_ELASTICSEARCH_API_KEY"
)
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"

View File

@@ -25,7 +25,6 @@
<link rel="preconnect" href="https://www.google-analytics.com/">
{% endif %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'mandelstudio/css/header-overrides.css' %}">
<style>
header .header-right { display: flex; align-items: center; gap: .5rem; }
header .header-right .language-dropdown,

View File

@@ -14,14 +14,7 @@
aria-expanded="false"
aria-label="{% trans 'Language switcher' %}"
>
<svg class="language-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="9" />
<path d="M3 12h18" />
<path d="M12 3c3 3.5 3 14.5 0 18" />
<path d="M12 3c-3 3.5-3 14.5 0 18" />
</g>
</svg>
<i class="fa fa-globe language-icon" aria-hidden="true"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="header-language-switcher">
{% for language in languages %}

View File

@@ -13,4 +13,3 @@
{% include "oxyan/headers/partials/mini_in_basket.html" %}
</div>
</div>

View File

@@ -6,6 +6,7 @@ from ocyan.core.fender import config
from ocyan.main.urls import urlpatterns as ocyan_urlpatterns
from ocyan.plugin.contact_form.entrypoint import SHOP_BASE_URL
from ocyan.plugin.wagtail_oscar_integration.constants import CACHE_DURATION
from ocyan.plugin.wordspinner.views.ai_search import ai_search_view
from contact_form.views import post_contact_form
@@ -35,12 +36,31 @@ contact_form_urlpatterns = [
),
]
# Ensure public AI search routes are resolved before Wagtail catch-all URLs.
ai_search_urlpatterns = [
path("ai-search/", ai_search_view, name="wordspinner_ai_search_public"),
path("smart-search/", ai_search_view, name="wordspinner_smart_search_public"),
path("wordspinner/ai-search/", ai_search_view, name="wordspinner_ai_search"),
path("<str:lang_code>/ai-search/", ai_search_view, name="wordspinner_ai_search_i18n"),
path(
"<str:lang_code>/smart-search/",
ai_search_view,
name="wordspinner_smart_search_i18n",
),
path(
"<str:lang_code>/wordspinner/ai-search/",
ai_search_view,
name="wordspinner_ai_search_nested_i18n",
),
]
if config.i18n_enabled:
urlpatterns += i18n_patterns(
*contact_form_urlpatterns,
*ai_search_urlpatterns,
prefix_default_language=False,
)
else:
urlpatterns += contact_form_urlpatterns
urlpatterns += contact_form_urlpatterns + ai_search_urlpatterns
urlpatterns += ocyan_urlpatterns