Tagebuch: manuelle Positionierung reichert POIs + Wetter an (v1305)

Bisher holte nur der Create-/Foto-EXIF-Pfad Wetter+POIs. Wer einem Eintrag
nachträglich (Edit) einen Standort gab, bekam nichts. Jetzt: GPS neu/geändert
im Update-Handler -> POIs immer + Wetter fürs Eintragsdatum.

- weather.get_weather_for_date(): heute -> aktuelles Wetter; Vergangenheit ->
  stündliche Historie (Open-Meteo Forecast <=90 Tage, sonst Archive-API),
  Stunde aus created_at. Gleiche Dict-Struktur wie get_weather_for_location.
- diary.update_diary(): erfasst alten GPS-Stand, reichert nach DB-Commit an
  (async), schreibt nur erfolgreich geholte Felder (kein Datenverlust bei
  API-Fehler), identische Koordinaten -> kein erneuter Abruf.
- Tests: tests/test_diary_location_enrich.py (Anreicherung, kein GPS=kein
  Abruf, Resave ohne Re-Fetch).
This commit is contained in:
rene 2026-06-18 21:13:47 +02:00
parent e2219fb8ba
commit 140140f690
8 changed files with 244 additions and 17 deletions

View file

@ -86,14 +86,14 @@
<title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1304"></script>
<script src="/js/boot-early.js?v=1305"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1304">
<link rel="stylesheet" href="/css/layout.css?v=1304">
<link rel="stylesheet" href="/css/components.css?v=1304">
<link rel="stylesheet" href="/css/utilities.css?v=1304">
<link rel="stylesheet" href="/css/lists.css?v=1304">
<link rel="stylesheet" href="/css/design-system.css?v=1305">
<link rel="stylesheet" href="/css/layout.css?v=1305">
<link rel="stylesheet" href="/css/components.css?v=1305">
<link rel="stylesheet" href="/css/utilities.css?v=1305">
<link rel="stylesheet" href="/css/lists.css?v=1305">
</head>
<body>
@ -624,12 +624,12 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1304"></script>
<script src="/js/ui.js?v=1304"></script>
<script src="/js/app.js?v=1304"></script>
<script src="/js/worlds.js?v=1304"></script>
<script src="/js/offline-indicator.js?v=1304"></script>
<script src="/js/contact-form.js?v=1304"></script>
<script src="/js/api.js?v=1305"></script>
<script src="/js/ui.js?v=1305"></script>
<script src="/js/app.js?v=1305"></script>
<script src="/js/worlds.js?v=1305"></script>
<script src="/js/offline-indicator.js?v=1305"></script>
<script src="/js/contact-form.js?v=1305"></script>
<!-- Feature-Seiten werden lazy geladen -->
@ -639,7 +639,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1304"></script>
<script src="/js/boot.js?v=1305"></script>
</body>