Ortsnamen aus dem Backend, Verbrauchsfaktor aus dem Tankbeleg, Radzaehler ueber Fahrten

Ortsauflösung serverseitig (geokodierung.py): der Ort steht jetzt in der Fahrt
statt im Zwischenspeicher jedes Geräts. Beide Oberflächen fragen nichts mehr ab.

Verbrauchskorrektur (verbrauchskorrektur.py): Faktor = Beleg-Liter / Summe der
Einzelfahrten, voll zu voll. Statt einer Schranke am Faktor wird der Nenner
geprüft - decken die erkannten Fahrten 90-110 % der Tacho-Spanne ab? Ausgelöst
beim Schreiben eines Tankvorgangs, nicht erst bei der nächsten Fahrt.

Radzähler: summiert die Fahrten des montierten Satzes statt Tacho-Deltas. Der
alte Weg hatte Fahrzeugwechsel als gefahrene Strecke verbucht (375.962 km bei
einem Tacho von 61.823).

Null heißt unbekannt: ein Kilometerstand von 0 oder ein leeres Feld werden zu
None normalisiert, statt an sechs Lesestellen als "Tachostand null" zu gelten.
Momentanwerte der Sensoren gelten nur für einen Tankvorgang von jetzt.

Oberfläche, beide Codebasen: Wertespalte der Fahrtenliste ausgerichtet, Ort ->
Ort in "Zuletzt", "Räder" statt "Reifen", "Termin vereinbart" entfernt,
Markenlogo 20 % größer, Übersicht-Symbol auf volle Rasterbreite.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-02 11:28:37 +02:00
parent 78a8017e95
commit 2af5c469d6
27 changed files with 1575 additions and 352 deletions
+12 -6
View File
@@ -1003,8 +1003,12 @@ button.dm-blatt:active {
`1 1 auto` (dem Wert, den das Panel nur für die Zuletzt-Kachel setzt)
brach „Fahrt ohne Ortsangabe" hier auf zwei Zeilen um, obwohl es im Panel
einzeilig steht. */
/* flex:1 statt 0 1: das Label nimmt den freien Platz, damit space-between
keinen Raum ZWISCHEN Label, Werten und Pfeil verteilt - sonst stuende die
Wertespalte in der Mitte und ihre Lage haenge an der Laenge des Ortsnamens
(im Panel gemessen: 549px gegen 520px rechte Kante). */
.dm-blatt__k {
flex: 0 1 auto;
flex: 1 1 auto;
min-width: 0;
display: flex;
flex-direction: column;
@@ -1013,14 +1017,16 @@ button.dm-blatt:active {
line-height: 1.35;
color: var(--fg);
}
/* Ein Flex-Kind darf nur mit min-width:0 unter seine Inhaltsbreite schrumpfen -
ohne das greift text-overflow nie und ein langer Ortsname draengt die Werte. */
.dm-blatt__k > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Feste Mindestbreite, damit Strecke und Verbrauch ueber alle Zeilen hinweg in
einer Spalte stehen. Ohne sie waechst der Kasten mit dem Inhalt - im Panel
gemessen 86px bei "11,4 l/100 km" gegen 37px bei einer Zeile ohne Werte, und
die Zahlen standen entsprechend versetzt. */
.dm-blatt__v {
flex: 0 0 auto;
min-width: 104px;
flex: 0 0 104px;
display: flex;
flex-direction: column;
gap: 3px;
@@ -1714,8 +1720,8 @@ button.dm-listenzeile {
}
.dm-marke img {
/* Auf Zeilenhoehe, siehe .dm-markenlogo weiter unten. */
height: 16px;
/* Siehe .dm-markenlogo weiter unten. */
height: 19.2px;
width: auto;
}
@@ -1779,7 +1785,7 @@ button.dm-listenzeile {
16px, siehe .ads-feld label. Mit 14px wirkte es neben "SmartDeal aktiv"
zu klein (gemeldet vom Eigentuemer, 2026-08-31). */
.dm-markenlogo {
height: 16px;
height: 19.2px;
width: auto;
vertical-align: middle;
}