Sichtpruefung mit Testdaten: die Grids in Aktion, vier weitere Befunde
Testdaten in die Testdatenbank eingespielt (3 Demo-Konten, 5 Master-Trader, 3 offene Positionen, 7 Trades, 5 RF-Kandidaten), gesichert als docs/pruefplaene/testdaten-ui.sql zur Wiederverwendung. Bewusst mit 42-stelligen Wallet-Adressen und langen englischen Marktfragen - kurze Platzhalter haetten die Layoutbefunde verdeckt. Mit Daten wirkt die Anwendung vollstaendig funktionsfaehig: Grids fuellen sich, die Auswahl markiert Zeilen, das Detailformular uebernimmt den gewaehlten Datensatz, zugewiesene Konten werden korrekt angehakt, KPI-Kacheln rechnen. Vier weitere Befunde: - B-13 (wichtig): Die Spalte "Name" im Master-Trader-Grid ist auf wenige Pixel zusammengequetscht - die Anzeigenamen sind NIRGENDS zu sehen, obwohl sie die wichtigste Information der Zeile sind. Die festen Breiten der elf uebrigen Spalten lassen der Sternbreite fast nichts uebrig. - B-11 praezisiert: Nicht die Werte sind zu breit, sondern die Ueberschriften. Das RF-Grid zeigt lange Marktfragen mühelos, waehrend "Fee (bps)" zu "Fee (bp" verstuemmelt wird. Die Breiten sind auf die Datenwerte ausgelegt. - B-14: Beschreibung und Reasoning sind einzeilige Felder fuer varchar(1000). - B-15: Ein fehlerhafter Datensatz legt die gesamte Modul-Hydration lahm. Beim ersten Einspielen war AssignedAccountIds kein gueltiges JSON - daraufhin wurde kein einziger Trader geladen. Im Betrieb hiesse das: ein beschaedigter Eintrag legt das komplette Modul stumm, statt uebersprungen und gemeldet zu werden. B-7 bestaetigt: In jeder KPI-Kachel steht der Modulname doppelt. Nachgeprueft und KEIN Fehler: Copy-PnL zeigt 0,00, weil die Kennzahlen aus den tatsaechlichen Copy-Trades berechnet werden und mod_copytrading_closed_trades leer ist. Die Werte stehen auch in der Datenbank auf 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -450,3 +450,105 @@ einheitlich gelten. Zumal `server_settings.xml` auch den Watchdog-Token trägt.
|
||||
ausgeliefert ist. Erst dann lassen sich Spaltenbreiten (B-11), Splitter-Positionen und
|
||||
Leerzustände sinnvoll beurteilen. Das Verfahren dafür ist dokumentiert und wiederholbar:
|
||||
[TESTUMGEBUNG-Linux-VM.md](../TESTUMGEBUNG-Linux-VM.md) §4.7.
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Nachtrag 4: Sichtprüfung mit Testdaten
|
||||
|
||||
Nach der Behebung von B-10 wurden **Testdaten** in die Testdatenbank eingespielt, um die Tabellen
|
||||
in Betrieb zu sehen: 3 Demo-Konten, 5 Master-Trader, 3 offene Positionen, 7 abgeschlossene Trades,
|
||||
5 ResolutionFarming-Kandidaten. Wiederverwendbar als
|
||||
[`testdaten-ui.sql`](./testdaten-ui.sql).
|
||||
|
||||
> **Bewusst realistisch:** 42-stellige Wallet-Adressen und lange englische Marktfragen. Kurze
|
||||
> Platzhalter wie „Test 1" hätten die Befunde B-11 und B-13 verdeckt.
|
||||
|
||||
**Das war der entscheidende Schritt.** Mit Daten zeigt sich in Minuten, was ohne sie unsichtbar
|
||||
bleibt — die Anwendung wirkt jetzt vollständig funktionsfähig: Grids füllen sich, die Auswahl
|
||||
markiert Zeilen, das Detailformular übernimmt den gewählten Datensatz, zugewiesene Konten werden
|
||||
korrekt angehakt, KPI-Kacheln rechnen, die Trade-Historie erscheint.
|
||||
|
||||
## B-13 · Die Spalte „Name" ist unsichtbar zusammengequetscht · offen · **wichtig**
|
||||
|
||||
Im Master-Trader-Grid ist die Spalte **Name** (`Width="*"`) auf wenige Pixel zusammengedrückt.
|
||||
Die Anzeigenamen — *WeatherWhale*, *PolitiSniper*, *SportsEdge Capital* — sind **nirgends im Grid
|
||||
zu sehen**, obwohl sie die wichtigste Information der Zeile sind. Sichtbar ist nur die
|
||||
abgeschnittene Wallet-Adresse (`0x9e2b7f4a1c8d0e5b…`, 18 von 42 Zeichen).
|
||||
|
||||
**Ursache:** Die festen Breiten der elf übrigen Spalten summieren sich auf mehr, als der Bereich
|
||||
links vom Splitter hergibt. Die Sternbreite bekommt, was übrig bleibt — und das ist fast nichts.
|
||||
|
||||
**Empfehlung:** Der Name gehört nach vorn (direkt hinter `#`) und braucht eine Mindestbreite;
|
||||
die Wallet-Adresse ist ein Kandidat fürs Ausblenden oder für eine Kurzform (`0x9e2b…3b95`).
|
||||
|
||||
## B-11 · präzisiert: Nicht die Werte sind zu breit, sondern die Überschriften
|
||||
|
||||
Der Vergleich zweier Grids macht die Ursache eindeutig:
|
||||
|
||||
| Grid | Ergebnis |
|
||||
|---|---|
|
||||
| **ResolutionFarming-Kandidaten** | Sieht **gut** aus. Lange Marktfragen passen fast vollständig, die Zahlen sind lesbar |
|
||||
| **Master-Trader** | Überschriften abgeschnitten: `Trades (7`, `Winrate '`, `Copy-PnL`; die letzten drei Spalten ohne Text |
|
||||
|
||||
Auch im ResolutionFarming-Grid stehen `Outcor` statt „Outcome" und `Fee (bp` statt „Fee (bps)" —
|
||||
während die Werte darunter (`Yes`, `180`) mühelos passen.
|
||||
|
||||
**Die Spaltenbreiten sind auf die Datenwerte ausgelegt, nicht auf die Überschriften.** Das ist ein
|
||||
Muster, kein Einzelfall: Wo Werte kurz und Titel lang sind, wird der Titel abgeschnitten. Zu
|
||||
beheben durch breitere Spalten oder kürzere Titel (`Fee` statt `Fee (bps)`, Einheit in den
|
||||
Tooltip).
|
||||
|
||||
## B-14 · Mehrzeilige Texte in einzeiligen Feldern · offen, klein
|
||||
|
||||
Im Detailformular sind **Beschreibung** und **Reasoning** einzeilige Textfelder, obwohl die
|
||||
Datenbankspalten `varchar(1000)` fassen. Sichtbar ist nur ein Bruchteil
|
||||
(„Setzt fast ausschliesslich auf Tem…"). Ein mehrzeiliges Feld wäre angemessen.
|
||||
|
||||
## B-15 · Ein fehlerhafter Datensatz legt die gesamte Modul-Hydration lahm · offen
|
||||
|
||||
Beim ersten Einspielen enthielt `AssignedAccountIds` versehentlich `"1,2"` statt des erwarteten
|
||||
JSON-Arrays `"[1,2]"`. Ergebnis:
|
||||
|
||||
```
|
||||
Copytrading-Hydration fehlgeschlagen: The JSON value could not be converted to
|
||||
System.Collections.Generic.HashSet`1[System.Int32]. Path: $ | LineNumber: 0
|
||||
```
|
||||
|
||||
**Es wurde kein einziger Master-Trader geladen** — ein einzelner unlesbarer Datensatz verhindert
|
||||
das Laden aller anderen. Im Betrieb hieße das: Ein beschädigter Eintrag legt das komplette Modul
|
||||
still, statt übersprungen und gemeldet zu werden.
|
||||
|
||||
Der Fehler war hier selbst verschuldet, das Verhalten dahinter ist es nicht. **Empfehlung:**
|
||||
Datensatzweise behandeln — fehlerhafte Einträge überspringen, mit Kennung protokollieren, den
|
||||
Rest laden.
|
||||
|
||||
## B-7 · bestätigt
|
||||
|
||||
Mit Daten ist es eindeutig: In **jeder** KPI-Kachel steht der Modulname doppelt — als Überschrift
|
||||
und als erste Textzeile („CopyTrading / CopyTrading / Heute: +26,10 USDC …").
|
||||
|
||||
## Kein Fehler — nachgeprüft
|
||||
|
||||
Die Spalte **Copy-PnL** zeigt für alle Trader `0,00`, obwohl die Testdaten Werte enthielten. Ein
|
||||
Blick in die Datenbank zeigt: Die Werte stehen auch dort auf 0. Die Anwendung berechnet die
|
||||
Copy-Kennzahlen aus den tatsächlichen Copy-Trades neu, und `mod_copytrading_closed_trades` ist
|
||||
leer. **Korrektes Verhalten.**
|
||||
|
||||
## Weitere Beobachtungen aus dem Datenlauf
|
||||
|
||||
- **Account-Übersicht (Dashboard):** „Demo Hauptkonto (De…" und „CopyTrading, ResolutionFar…"
|
||||
abgeschnitten, während rechts neben „Overall P/L" rund 300 px ungenutzt bleiben. Dasselbe Muster
|
||||
wie B-11.
|
||||
- **Warnungen & Fehler (Dashboard):** Die Spalte „Nachricht" ist so schmal, dass keine Meldung
|
||||
vollständig lesbar ist.
|
||||
- **Leerzustände** melden nichts. Wo ResolutionFarming für ein Konto ohne Kandidaten steht, bleibt
|
||||
die Fläche leer — ein Hinweis „Keine Kandidaten für dieses Konto" würde die Frage beantworten,
|
||||
ob gefiltert oder gar nichts geladen wurde. (Die Filterung selbst arbeitet korrekt, geprüft.)
|
||||
|
||||
## Empfehlung
|
||||
|
||||
Die Befunde B-11, B-13 und B-14 sind **Layoutarbeit an einer Stelle** und sollten zusammen
|
||||
angegangen werden — am besten mit eingespielten Testdaten, weil sich Spaltenbreiten nur so
|
||||
sinnvoll festlegen lassen. Das Verfahren ist reproduzierbar:
|
||||
[TESTUMGEBUNG-Linux-VM.md](../TESTUMGEBUNG-Linux-VM.md) §4.7 plus `testdaten-ui.sql`.
|
||||
|
||||
Reference in New Issue
Block a user