No description
Find a file
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
backend Feature: Partner-Profile Backend + Pro-Zugang für Partner 2026-06-07 17:20:20 +02:00
diary Sprint 15: Suche, Ausweis, Teilen, Widget 2026-04-17 15:51:09 +02:00
docs DWD-Plan: Umsetzungsstand dokumentiert (Staging v1240, Cron + Geraetetest offen) 2026-06-06 18:13:30 +02:00
flyer Marketing-Cockpit (MARKETING.md) + Flyer (HTML-Quellen & Print-PDFs); unsplash/ ignoriert 2026-06-03 17:24:47 +02:00
promotion Marketing-Cockpit (MARKETING.md) + Flyer (HTML-Quellen & Print-PDFs); unsplash/ ignoriert 2026-06-03 17:24:47 +02:00
reports Reports 2026-05-01 — Quartalsbericht 2026-05-01 08:07:41 +02:00
scripts Feature: Generische Seiten-Hilfe (UI.pageInfo), POI Multi-Select, Tagessprüche-DB (SW by-v654) 2026-05-03 20:10:01 +02:00
tests Feature: Partner-Profile Backend + Pro-Zugang für Partner 2026-06-07 17:20:20 +02:00
tiles Tiles-Progress: Stufe 4 zeigt echte planetiler-Phase statt Müll-ETA 2026-06-05 17:21:08 +02:00
tools DWD-PoC: Binaer-Artefakte aus dem Repo (nur decode_poc.py bleibt) 2026-06-06 18:34:41 +02:00
.env.example ki: Port 11435, Modell gemma-4-31b-it (LM Studio 0.4.x) 2026-04-24 18:15:32 +02:00
.gitignore Tiles: Fortschritts-Snapshot-Skript (Stufe/Balken/ETA) für Build-Monitoring + .gitignore 2026-06-05 16:50:52 +02:00
docker-compose.dwd.yml DWD-Compose: container_name entfernt — Staging+Prod teilen den Docker-Host (Namenskonflikt) 2026-06-06 18:33:05 +02:00
docker-compose.osm.yml POI-Refresh: Abdeckung auf alle 15 Tile-Laender erweitert (war nur DACH) 2026-06-06 10:13:56 +02:00
docker-compose.staging.yml Security: VAPID-Keys raus aus Git, Dockerfile USER appuser, SW by-v1116 2026-05-27 13:02:12 +02:00
docker-compose.yml Security: VAPID-Keys raus aus Git, Dockerfile USER appuser, SW by-v1116 2026-05-27 13:02:12 +02:00
Dockerfile Revert: USER appuser in Dockerfile auskommentiert (DSM-ACL-Konflikt), SW by-v1117 2026-05-27 13:06:25 +02:00
Makefile Fix: Tiles-Cache-Bust — versionierte PMTiles-URL + version-bewusstes Caching 2026-06-05 19:18:43 +02:00
MARKETING.md Marketing-Cockpit (MARKETING.md) + Flyer (HTML-Quellen & Print-PDFs); unsplash/ ignoriert 2026-06-03 17:24:47 +02:00
PROJEKT.md Doku: Sprint 16 komplett — Phone-Frame, Screenshots, UX-Fixes 2026-04-27 19:44:26 +02:00
pytest.ini Big Sweep: Security + Race-Conditions + Tests + DSGVO + A11y, SW by-v1095 2026-05-26 20:12:01 +02:00
VERSION Feature: Partner-Profile Backend + Pro-Zugang für Partner 2026-06-07 17:20:20 +02:00