Commit Graph
6 Commits
Author SHA1 Message Date
gg 93827dde0f Serverseitige Filterung für Listen-Endpunkte und Einzelabrufe in Listen-Komponenten
Server: Die list-Endpunkte für Kontakt, Projekt, Kontaktadresse und CallLog
akzeptieren nun einen optionalen Query-Parameter (kunden_id bzw. projekt_id)
und filtern im ORM-Query. Neue Migration V01.05 legt Indizes auf den
FK-Spalten an.

Client: Die fetch-Funktionen erhalten einen optionalen Parent-ID-Parameter.
Die Listen-Komponenten übergeben die Parent-ID aus den Route-Params an den
Server und laden nur noch benötigte Daten. Statt kompletter Eltern-Listen
wird per fetchXxxById ein einzelner Datensatz für die Namensauflösung geladen.
Die CallLog-Bearbeitungsmaske behält ihre ungesfilterten Dropdown-Abrufe.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-04 15:43:43 +02:00
gg e9a2f48ede Kontaktadresse: Neues Feld Position, Filter-Funktionen null-sicher, Projektnamen-Spalte entfernt
- Server: Neue Spalte position in Kontaktadresse-Modell (String(200), nullable)
- Server: Migration V01_04 (ALTER TABLE kontaktadressen ADD COLUMN position)
- Server: position in Geschäftslogik create/update aufgenommen
- Server: CLI-Musterdaten um Position ergänzt (Geschäftsführer, IT-Leiter etc.)
- Client: position in iKontaktadresse-Interface, View nach Firma, Columnmapper, Filter
- Client: Projektnamen-Spalte aus Kontaktadressenliste entfernt (steht in Überschrift)
- Client: Filter-Funktionen in allen Listen null-sicher (kunde, kontakt, projekt, kontaktadresse, call_log)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-04 14:58:52 +02:00
gg e04a52857a Server+Client: REST-API für Entität Projekt, Kontakt auf REST umgestellt, ID-basiertes Laden, CLI-Musterprojekte, VS-Code Task
- Server: ORM-Modell Projekt (Tabelle projekte) mit FK kunden_id, Relationship zu Kunde
- Server: Geschäftslogik projekt.py (get/create/update/delete)
- Server: DB-Migration V01_02 (projekte-Tabelle)
- Server: REST-Endpunkte /xhr/projekt/* mit Autorisierung
- Server: CLI init-db legt Muster-Projekte je Kunde an (1-3)
- Client: kontakt.ts auf REST umgestellt, In-Memory entfernt, snake_case
- Client: projekt.ts auf REST umgestellt, In-Memory behalten für call_log/kontaktadresse
- Client: ID-basiertes Laden (nur ID in Route-Params, fetchById im oninit)
- Client: Kundenname in Überschrift von Kontaktliste/View und Projektliste/View
- Client: Select-Widget entfernt (Kunde voreingestellt), Hidden-Input für kunden_id
- Client: kunde.ts showProjekte/showKontakte auf kunden_id geändert
- Client: call_log.ts/kontaktadresse.ts Feldzugriffe auf iProjekt snake_case angepasst
- AGENTS.md: Vorgehensweise ID-basiertes Laden hinterlegt, Branch-Regel formuliert
- VS-Code Task "Flask: init-db" mit venv-Pfaden

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-04 12:03:52 +02:00
gg 15d4e2ac48 Client: Kunden-Datenhaltung auf Server-REST-Endpunkte umgestellt
In-Memory-Datenhaltung (kundenDaten, getNewKundeId, addKunde, updateKunde,
getKunden) aus kunde.ts entfernt. Die Kundenliste und das Formular nutzen
jetzt fetchKunden/createKundeREST/updateKundeREST asynchron vom Server.

projekt.ts, kontakt.ts, call_log.ts: getKunden() durch asynchrones
fetchKunden() im oninit ersetzt, Kundenliste im Closure-State gehalten.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-03 16:43:50 +02:00
gg ad24981a0b Listen: einheitliche Zeilen-Markierung und kompakte Aktions-Buttons
Alle App-Listen (kundenliste, call_log_liste, kontaktliste, kontaktadresseliste,
TagList) auf das isSelected-Callback der Treetable umgestellt — die Markierung
erfolgt jetzt auf der gesamten <tr>-Zeile via w3-theme-l4 statt per-Zell-Inline-Style.
In der kundenliste sind die 3 Aktions-Buttons (edit, Projekte, Kontakte) kompakt
in einer Zelle zusammengefasst, analog zur projektliste. Auth-Listen unberührt.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-01 10:45:48 +02:00
gg 9af789b996 Kontakte: Modell, Liste und Formular für Ansprechpartner beim Kunden
Neue Entität "Kontakt" (Ansprechpartner, FK kundenId) analog zu Projekte:
- Client/models/kontakt.ts: Interface, In-Memory-Mock, CRUD- und REST-Stubs
- Client/Components/kontakt.ts: Kontaktliste (Treetable, kundengefiltert) und Stammblatt-Formular
- index.ts: Routen /kontaktliste und /kontakt (kein Hauptmenü-Eintrag)
- kunde.ts: Kontakte-Button in Kundenliste und im Kunden-Formular (nur bei bestehendem Kunden)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-01 09:40:44 +02:00