banyaro/backend/static/js
rene ce8aa2b699 Feature: Partner-Profile Backend + Pro-Zugang für Partner
Die Partner-Showcase-Seite (#partner) und der Profil-Editor (#partner-profil)
existierten seit v1102 nur als Frontend — /api/partners/public und
/api/partner/my-profile gab es nie (vermutlich Worktree-Merge-Verlust).

Backend neu:
- partner_profiles-Tabelle (user_id PK, ON DELETE CASCADE → DSGVO-Delete greift)
- GET/PUT /partner/my-profile (Texte, Website-Normalisierung, @-Instagram)
- Logo-Upload (≤5 MB → WebP 512px, altes Logo wird geräumt)
- Foto/Video-Upload (max 6, 200-MB-Budget, HEIC→JPEG, MOV→MP4 via ffmpeg,
  Bilder→WebP 1600px) + Lösch-Endpoint
- Submit-Workflow (approved 0/1/-1) + Admin-Mail (best effort)
- GET /partners/public (nur freigegebene, JOIN users für Name/Avatar)
- Admin: GET /admin/partner/profiles + POST .../review

Pro für Partner: has_pro_access() + App._hasPro() prüfen jetzt is_partner —
Multiplikatoren bekommen Pro gratis (mehrere Hunde, KI-Trainer etc.).

UI: Admin-Partner-Tab mit Freigabe-Sektion (offen-Badge, ✓/✗),
Settings zeigt Partnern eine Karte mit Link zum Profil-Editor.

Tests: tests/test_partner_profile.py — 5 Smoke-Tests (403, Voll-Flow
inkl. Freigabe/Ablehnung, Pflicht-Anzeigename, Logo+Foto-Upload, Pro-Zugang).
Suite: 44 passed.
2026-06-07 17:20:20 +02:00
..
pages Feature: Partner-Profile Backend + Pro-Zugang für Partner 2026-06-07 17:20:20 +02:00
vendor Tile-Server: Vektor-Basemap in PWA integrieren (protomaps-leaflet, Feature-Flag) 2026-06-04 21:53:07 +02:00
api.js Karten-Ausbau (OSM), Forum-Erweiterung, UI-Komponenten, Refactor Tagebuch/Gassi (DRY), Landing/SEO — APP_VER 1155 2026-06-03 17:24:47 +02:00
app.js Feature: Partner-Profile Backend + Pro-Zugang für Partner 2026-06-07 17:20:20 +02:00
boot-early.js Security: CSP gehärtet — unsafe-inline + unsafe-eval raus, SW by-v1100 2026-05-27 06:23:47 +02:00
boot.js Offline-Karten: Prod-Freigabe — Flag-Default AN auf allen deployten Hosts 2026-06-06 12:21:11 +02:00
landing-init.js Sweep: r.ok-Check bei allen direkten fetch('/api/...')-Aufrufen (SW-503-JSON-Falle) 2026-06-06 11:42:05 +02:00
leaflet-vector-test.js Tile-Server: Isolations-Testseite /leaflet-vector-test (protomaps-leaflet + DACH, ohne App-Shell) 2026-06-05 08:39:43 +02:00
leaflet.js leaflet.js: Attribution-Control-Hook deaktiviert 2026-04-12 18:17:19 +02:00
leaflet.markercluster.js Sprint 10: OSM-POI-Cache, Karten-Clustering, Routen-Redesign 2026-04-15 16:30:10 +02:00
map-gl-markers.js GL-Style: kräftigere Schrift (Open Sans Semibold, self-hosted), sattere Farben, Bahntrassen 2026-06-05 11:47:52 +02:00
map-gl-mini.js Karte: Follow-Mode + Live-Strecke bei Routen-Aufzeichnung (Wunsch Rene) 2026-06-06 17:20:38 +02:00
map-gl-style.js Offline-Karten Runde 2: adaptives Modell (Budget, Funkloch-Gedaechtnis, Korridor, Coverage) 2026-06-06 12:00:43 +02:00
map-offline.js Selektives Loeschen: auch Funkloch-Gebiete bleiben + Keep-Set haertung 2026-06-06 13:55:37 +02:00
map-vector.js Tile-Server: Vektor-Basemap in PWA integrieren (protomaps-leaflet, Feature-Flag) 2026-06-04 21:53:07 +02:00
maplibre-markers-test.js MapLibre-Port Runde 2: GL-Marker-Subsystem (map-gl-markers.js) + headless Test-Harness 2026-06-05 09:52:45 +02:00
maplibre-perf-test.js MapLibre-Perf-Test: /maplibre-perf-test (Basemap + 600 Cluster-Marker, GPU) — Handy-Proof vor dem Umbau 2026-06-05 09:24:13 +02:00
maplibre-test.js Tile-Server-Spike: MapLibre-Testseite /maplibre-test (vendored maplibre-gl+pmtiles) 2026-06-04 20:42:35 +02:00
offline-indicator.js Offline-Karten Runde 6: Standort-Grundversorgung — aktuelles Gebiet bleibt immer geladen 2026-06-06 13:23:33 +02:00
presse.js Fix: alle funktionalen Inline-Event-Handler → addEventListener/Delegation (von CSP-Härtung 65cfa25 app-weit blockiert) 2026-06-04 13:59:27 +02:00
qrcode.min.js Feature: QR-Code mit Logo im Referral-Block — SW by-v441, APP_VER 420 2026-04-27 06:23:01 +02:00
ui-vector-test.js Fix: zentrale Karte nutzte window.UI (undefined) statt bare UI → immer Raster-Branch 2026-06-05 09:06:09 +02:00
ui.js Karten: GL als Default auf Production freigeschaltet (Hostname banyaro.app/.de) 2026-06-05 21:12:24 +02:00
worlds.js UX: Welten-Editor — Hinweis dass ✕ ausblendet (nicht löscht) 2026-06-04 18:36:42 +02:00
zuechter.js Fix: alle funktionalen Inline-Event-Handler → addEventListener/Delegation (von CSP-Härtung 65cfa25 app-weit blockiert) 2026-06-04 13:59:27 +02:00