feat(rust) : serveur réécrit en Rust, Node retiré ; Calendrier en tête du menu (#571)

- Serveur Rust (server-rs/, axum + sqlx) : les 148 adresses de l'API,
  l'interface, les migrations de démarrage et les tâches de fond ; même
  comportement que Node (banc : 2027 cas, 0 écart hors écarts déclarés
  USERS-02, RAPPRO-21, R4, R5).
- Node retiré : server/, dépendances serveur, image Docker sans Node
  (51 Mo), docker-compose à un seul service applicatif.
- R4 : écritures d'un autre site refusées (Sec-Fetch-Site / Origin).
- R5 : « aujourd'hui » et sauvegarde automatique à l'heure de Paris.
- R6 : mainteneur dans .github/CODEOWNERS.
- Menu latéral : Accueil puis Calendrier en tête.
- Plan et état : docs/PLAN-MIGRATION-RUST.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ke2qyS8rgacP3ap5iezDbM
This commit is contained in:
LogiFlowandClaude Opus 5.5 authored and GitHub committed 2026-10-15 20:31:14 +02:00
1 parent 6760f43e87
commit 600627c632
146 files changed
+31521 -20331

No files matched your search

+2 -2
View File
@@ -35,7 +35,7 @@ export interface NavItem {
}
export interface NavSection {
// Pas de titre pour l'entrée Accueil, affichée en tête
// Pas de titre pour les entrées Accueil et Calendrier, affichées en tête
title?: string;
items: NavItem[];
}
@@ -44,6 +44,7 @@ export const NAV_SECTIONS: NavSection[] = [
{
items: [
{ path: "/", label: "Accueil", icon: House, roles: ALL_ROLES },
{ path: "/calendar", label: "Calendrier", icon: CalendarDays, roles: ALL_ROLES },
],
},
{
@@ -68,7 +69,6 @@ export const NAV_SECTIONS: NavSection[] = [
{
title: "Planning et infos",
items: [
{ path: "/calendar", label: "Calendrier", icon: CalendarDays, roles: ALL_ROLES },
{ path: "/publicities", label: "Publicités", icon: Megaphone, roles: ALL_ROLES },
{ path: "/contacts", label: "Contacts", icon: BookUser, roles: ALL_ROLES },
{ path: "/analytics", label: "Statistiques", icon: ChartLine, roles: ["admin", "directeur", "manager"] },