feat(marketing): A-2.8b /conformite + /contact standalone pages

- /conformite page: extends base.html, page H1 with cosmic orb header,
  4 pillar cards on white (mirrors landing's Conformite section content
  with same hedges 'Mappe' 'concue avec' 'Compatible'), 3 Loi 25 article
  detail cards (art. 3.3 EFVP, art. 3.5 Audit trail, art. 14 Consentement)
  with grad-bg article-number badges, AGPL v3 transparency CTA section
  with external links to Gitea + gnu.org (rel=noopener), generic CTA section
- /contact page: extends base.html, 3 method cards (email, phone tel:link,
  postal address with <address>), 6 pre-filled mailto subject shortcuts
  with focus-visible WCAG 2.2 AA, pre-launch disclaimer that online form
  ships at launch (B-2.x). NO <form> tag - mailto only - POST returns 405
  until B-2.x adds the form handler.
- routes.py: add /conformite and /contact routes; preserves existing
  landing/tarifs/fonctionnalites views and TESTIMONIALS/FAQ data.
- tests: append 13 new tests to test_marketing_secondary_pages.py covering
  routes 200, single H1, 4 pillars + Loi 25 articles + AGPL externals on
  /conformite, 3 contact methods + 6 shortcuts + 405 on POST + pre-launch
  note + OQLF typography on /contact.
- Apply established WCAG 2.2 AA, FlexiHub, OQLF, LPC art. 219 disciplines.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Allison
2026-04-27 21:23:47 -04:00
parent 202e1a08d9
commit 3646a5e64d
5 changed files with 430 additions and 0 deletions

View File

@@ -93,3 +93,17 @@ def fonctionnalites():
plus full integrations list and supported export formats.
"""
return render_template('marketing/fonctionnalites.html')
@marketing_bp.route('/conformite')
def conformite():
"""Standalone compliance page — Loi 25, LGGRI, AGPL, EFVP details."""
return render_template('marketing/conformite.html')
@marketing_bp.route('/contact', methods=['GET'])
def contact():
"""Contact page — pre-launch: mailto-only form (no backend submit yet).
POST handler will be added in B-2.x once form-handling + Turnstile are wired.
"""
return render_template('marketing/contact.html')