refactor(platform): make base template fully CMS-driven and platform-aware
Some checks failed
CI / ruff (push) Successful in 10s
CI / pytest (push) Has been cancelled
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled

Remove all hardcoded OMS-specific content from platform base template:
nav links, contact info, brand name, and footer columns. Everything is
now dynamic via platform model and CMS page queries. Wire up legal_pages
context (privacy/terms) from database instead of hardcoded fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 17:41:24 +01:00
parent 28dca65a06
commit b5b73559b5
4 changed files with 32 additions and 61 deletions

View File

@@ -7,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{# Dynamic page title #}
<title>{% block title %}Orion - Order Management for Letzshop Sellers{% endblock %}</title>
<title>{% block title %}{{ platform.name if platform else 'Wizard' }}{% endblock %}</title>
{# SEO Meta Tags #}
<meta name="description" content="{% block meta_description %}Lightweight OMS for Letzshop stores in Luxembourg. Order management, inventory, and invoicing made simple.{% endblock %}">
<meta name="description" content="{% block meta_description %}{{ platform.description if platform else '' }}{% endblock %}">
<meta name="keywords" content="{% block meta_keywords %}letzshop, order management, oms, luxembourg, e-commerce, invoicing, inventory{% endblock %}">
{# Favicon #}
@@ -61,28 +61,16 @@
<div class="flex items-center">
<a href="/" class="flex items-center space-x-3">
<div class="w-8 h-8 rounded-lg bg-gradient-to-r from-indigo-600 to-purple-600 flex items-center justify-center">
<span class="text-white font-bold text-xl">W</span>
<span class="text-white font-bold text-xl">{{ (platform.name or 'W')[0] }}</span>
</div>
<span class="text-xl font-bold text-gray-900 dark:text-white">
Orion
{{ platform.name if platform else 'Wizard' }}
</span>
</a>
</div>
{# Desktop Navigation #}
{# Desktop Navigation (CMS-driven) #}
<div class="hidden md:flex items-center space-x-8">
{# Main Navigation #}
<a href="/pricing" class="text-gray-700 dark:text-gray-300 hover:text-indigo-600 dark:hover:text-indigo-400 font-medium transition-colors">
{{ _("cms.platform.nav.pricing") }}
</a>
<a href="/find-shop" class="text-gray-700 dark:text-gray-300 hover:text-indigo-600 dark:hover:text-indigo-400 font-medium transition-colors">
{{ _("cms.platform.nav.find_shop") }}
</a>
<a href="/signup" class="px-4 py-2 bg-indigo-600 hover:bg-indigo-700 text-white font-medium rounded-lg transition-colors">
{{ _("cms.platform.nav.start_trial") }}
</a>
{# Dynamic header navigation from CMS #}
{% if header_pages %}
{% for page in header_pages %}
<a href="/{{ page.slug }}"
@@ -184,71 +172,43 @@
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
{# Brand Column #}
<div class="col-span-1">
<div class="col-span-1 md:col-span-2">
<div class="flex items-center space-x-3 mb-4">
<div class="w-8 h-8 rounded-lg bg-gradient-to-r from-indigo-600 to-purple-600 flex items-center justify-center">
<span class="text-white font-bold text-xl">W</span>
<span class="text-white font-bold text-xl">{{ (platform.name or 'W')[0] }}</span>
</div>
<span class="text-xl font-bold text-gray-900 dark:text-white">
Orion
{{ platform.name if platform else 'Wizard' }}
</span>
</div>
<p class="text-gray-600 dark:text-gray-400 text-sm">
{{ _("cms.platform.footer.tagline") }}
<p class="text-gray-600 dark:text-gray-400 text-sm max-w-md">
{{ platform.description if platform else '' }}
</p>
</div>
{# Quick Links #}
{# Quick Links (from CMS footer pages) #}
{% if footer_pages %}
<div>
<h4 class="font-semibold text-gray-900 dark:text-white mb-4">{{ _("cms.platform.footer.quick_links") }}</h4>
<ul class="space-y-2">
{% if footer_pages %}
{% for page in footer_pages %}
<li>
<a href="/{{ page.slug }}"
class="text-gray-600 dark:text-gray-400 hover:text-primary dark:hover:text-primary transition-colors">
{{ page.title }}
</a>
</li>
{% endfor %}
{% endif %}
</ul>
</div>
{# Platform Links #}
<div>
<h4 class="font-semibold text-gray-900 dark:text-white mb-4">{{ _("cms.platform.footer.platform") }}</h4>
<ul class="space-y-2">
{% for page in footer_pages %}
<li>
<a href="/admin/login" class="text-gray-600 dark:text-gray-400 hover:text-primary transition-colors">
{{ _("cms.platform.nav.admin_login") }}
</a>
</li>
<li>
<a href="/store/orion/login" class="text-gray-600 dark:text-gray-400 hover:text-primary transition-colors">
{{ _("cms.platform.nav.store_login") }}
<a href="/{{ page.slug }}"
class="text-gray-600 dark:text-gray-400 hover:text-primary dark:hover:text-primary transition-colors">
{{ page.title }}
</a>
</li>
{% endfor %}
</ul>
</div>
{# Contact Info #}
<div>
<h4 class="font-semibold text-gray-900 dark:text-white mb-4">{{ _("cms.platform.footer.contact") }}</h4>
<ul class="space-y-2 text-gray-600 dark:text-gray-400 text-sm">
<li>support@marketplace.com</li>
<li>+1 (555) 123-4567</li>
<li>123 Business St, Suite 100</li>
<li>San Francisco, CA 94102</li>
</ul>
</div>
{% endif %}
</div>
{# Bottom Bar #}
<div class="mt-12 pt-8 border-t border-gray-200 dark:border-gray-700">
<div class="flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-600 dark:text-gray-400 text-sm">
{{ _("cms.platform.footer.copyright", year=2025) }}
&copy; {{ current_year }} {{ platform.name if platform else 'Wizard' }}. All rights reserved.
</p>
<div class="flex space-x-6 mt-4 md:mt-0">
{% if legal_pages %}