docs: finalize contacts and organizations handoff

This commit is contained in:
david committed 2026-08-29 04:36:36 +02:00
1 parent 6ea5f6fd28
commit 586994e28c
18 files changed
+750 -252

No files matched your search

@@ -0,0 +1,141 @@
---
kind: ticket-handoff
project: HiveGrid Screen Project
ticket: D-CRM
area: Kontakte / Organisationen / Kontaktmodell
status: Fertig / Development-Handoff
repo: https://git.tool-ctrl.de/toolctrl-labs/HiveGrid-Wireframes
stand: 2026-08-29
---
# D-CRM Kontakte und Organisationen
Repo: https://git.tool-ctrl.de/toolctrl-labs/HiveGrid-Wireframes
Zentrale Tracker-Datei: [Screen Paket Tracker](../../02%20Wireframes/Screen%20Paket%20Tracker.md)
Flow-Paket: [WF-P6 Kontakte und Organisationen](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen.md)
Canvas: [WF-P6 Kontakte und Organisationen.canvas](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen.canvas)
Subframe: [WF-P6 Kontakte und Organisationen](https://app.subframe.com/f023064a5ca0/flow/68046dc7-bc93-4232-a0da-a406a8bd10b8/edit)
## Kurzfassung
Der Kontakte-/Organisationen-Flow ist als Development-Handoff abgeschlossen. Der finale Subframe-Flow enthält **13 Seiten**: zwei getrennte Listen, die Personen- und Organisations-Karteikarte, zwei Duplikatentscheidungen, einen Archivierungsdialog und sechs isolierte Zustände des rechten Werkzeugbereichs.
Alle 13 Seiten wurden am 2026-08-29 per MCP vollständig als JSX gelesen und anschließend frisch gerendert. Namen, UUIDs, Direktlinks, Kernkomponenten und sichtbare Inhalte stimmen mit Paket-MD, Screen-Dateien, Tracker und Canvas überein. S04 wurde aus der finalen S03-Struktur aufgebaut und in zwei eigenen QA-Durchgängen gegen die vollständige S03-Fehlerhistorie geprüft. Die frühere S03-Seite, die veraltete S04 und temporäre Reviewseiten sind aus Subframe entfernt.
Backlog-Bereiche bleiben bewusst außerhalb dieses Handoffs: Eigene Felder, Duplikat-Tool, Zusammenführen und Inline-Anlegen in der Liste.
## Gemacht
- Personen und Organisationen als getrennte, direkt umschaltbare Listen finalisiert.
- Dauerhafte Auswahl-Checkboxen und `BulkActionBar` in S01/S02 dokumentiert; keine eigene Auswahlseite.
- S03 als einzige vollständige Personen-Karteikarte im Pipeline-nativen Dreispaltenmuster finalisiert.
- S04 auf derselben Struktur mit Organisationsfeldern und getrennten primären/sekundären Ansprechpartnern aufgebaut.
- Sechs rechte Werkzeugzustände als isolierte Miniscreens für Projekte, Aufgaben, Dateien, Notizen, Verlauf und Aktivitäten validiert.
- Anlage direkt in S03/S04 verlegt; M01/M02 als Formulare entfernt.
- Relationspflege vollständig inline in S03/S04 verlegt; M04–M04c entfernt.
- M01a/M02a als kurze Duplikatentscheidungen und M08 als dynamischer Archivierungsdialog finalisiert.
- Wiederholbare E-Mails, Telefonnummern und Adressen inklusive Standardlogik und leeren Referenzzeilen festgelegt.
- Statusmodell, Verantwortlichen-Default, Relationsmodell, Suchlogik und Fehlerzustände als Development-Vertrag dokumentiert.
- P6-Paket, Screen-Dateien, Canvas, Tracker und dieser Ticket-Handoff synchronisiert.
## Finale Produktentscheidungen
- **Kontaktmodell:** `Kontakt` ist der technische Oberbegriff; im UI gibt es `Person` und `Organisation`. `Kontakt` ist kein Status.
- **Listen:** Personen und Organisationen werden nie gemischt, sind aber über einen kompakten Switch direkt erreichbar.
- **Anlage:** `Neue Person` öffnet S03, `Neue Organisation` S04 jeweils direkt mit leeren Feldern. Der erste gültige Speichervorgang legt den Datensatz an und lässt dieselbe Detailseite geöffnet.
- **Verantwortlich:** Bei Neuanlage ist der angemeldete Nutzer vorbelegt. Das Feld bleibt änderbar und kann geleert werden.
- **Status:** Kein Status ist zulässig. Weitere Werte sind `Interessent`, `Kunde`, `Bestandskunde` und `Ehemaliger Kunde`. Reine Ansprechpartner benötigen keinen Kundenstatus.
- **Bestandskunde:** Ein erfolgreich abgeschlossenes Projekt kann den Status automatisch setzen; manuelle Übersteuerung bleibt möglich. Ohne fachliches Ereignis erfolgt keine automatische Rückstufung.
- **Kontaktwege:** E-Mail-Adressen und Telefonnummern sind beliebig wiederholbar, besitzen frei beschreibbare Typen und genau einen Standardwert pro Kontaktweg.
- **Adressen:** Standard- und Rechnungsadresse sind vorbereitet; weitere benannte Adressen sind unbegrenzt möglich. Jeder Nicht-Standard-Block kann direkt zur Standardadresse gemacht werden.
- **Relationen:** Personen und Organisationen sind n:m verknüpfbar. Primär/Sekundär gehört ausschließlich zur konkreten Relation; beide Gruppen erlauben 0..n Einträge und dürfen leer sein.
- **Relationsbezeichnung:** Funktion/Beziehung ist optional, frei benennbar und liegt nur an der Relation. Sie blockiert die schnelle Auswahl nicht.
- **Inline-Pflege:** S03 verknüpft Organisationen ohne sichtbare Gruppenwahl über den Primärpfad und Personen nach einmaliger Primär-/Sekundärwahl. S04 fügt Personen direkt in der gewählten Ansprechpartnersektion hinzu.
- **Kein Suchtreffer:** `Neu anlegen` öffnet S03/S04 im Anlagezustand, behält den Relationskontext unsichtbar und wendet ihn nach dem ersten Speichern einmalig an.
- **Duplikate:** Beim ersten Speichern führt ein möglicher Treffer in M01a/M02a: bestehenden Datensatz öffnen oder bewusst trotzdem anlegen.
- **Archivieren:** M08 ist eine gemeinsame Referenz. Objektbegriff, Name und Buttontext werden für Person/Organisation dynamisch eingesetzt; Relationen, Projekte und Verlauf werden nicht gelöscht.
- **App-Shell:** Die Referenzscreens zeigen nur den eigentlichen Screen-Inhalt auf blanker Fläche. Globale Topbar und Sidebar werden nicht dupliziert.
## Hauptfluss
```text
S01 Personenliste <-> S02 Organisationenliste
| |
v v
S03 Person S04 Organisation
| |
+-> M01a Duplikat +-> M02a Duplikat
+-> M08 Archivieren +-> M08 Archivieren
S03/S04 rechter Werkzeugbereich:
S03a Projekte · S03b Aufgaben · S03c Dateien
S03d Notizen · S03e Verlauf · S03f Aktivitäten
```
## Vollständiges Subframe-Inventar
| ID | Live-Name | UUID | Repo | Subframe |
|---|---|---|---|---|
| S01 | S01 Kontakte-Liste | `82f7c7cb-18d2-4f3c-b374-15ca56e12635` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S01%20Kontakte-Liste.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/82f7c7cb-18d2-4f3c-b374-15ca56e12635/edit) |
| S02 | S02 Organisationen-Liste | `6d1512ab-898a-4931-976c-2622d8d4aff4` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S02%20Organisationen-Liste.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/6d1512ab-898a-4931-976c-2622d8d4aff4/edit) |
| S03 | S03 Review – Inline-Zeilen | `13a46cd7-44b6-4495-bad5-57eb1ffc978a` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/13a46cd7-44b6-4495-bad5-57eb1ffc978a/edit) |
| S04 | S04 Organisations-Karteikarte | `a6fe8461-1728-49c2-96c0-005cea90b547` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S04%20Organisations-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/a6fe8461-1728-49c2-96c0-005cea90b547/edit) |
| M01a | M01a Kontakt anlegen – Duplikatwarnung | `38a86afc-5cfd-40a6-bdab-fc6a19d93697` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/M01a%20Kontakt%20anlegen%20Duplikatwarnung.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/38a86afc-5cfd-40a6-bdab-fc6a19d93697/edit) |
| M02a | M02a Organisation anlegen – Duplikat erkannt | `de4c91e1-3f45-49e8-b3c4-f3f830c50e74` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/M02a%20Organisation%20anlegen%20Duplikatwarnung.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/de4c91e1-3f45-49e8-b3c4-f3f830c50e74/edit) |
| M08 | M08 Kontakt archivieren | `a5efa71b-e485-4c76-80bf-8f3bb4c47de0` | [MD](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/M08%20Kontakt%20archivieren.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/a5efa71b-e485-4c76-80bf-8f3bb4c47de0/edit) |
| S03a | S03a Kontakt-Karteikarte - Projekte | `b4d311db-d9fb-430e-9cbc-438d639e1915` | [S03-Doku](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/b4d311db-d9fb-430e-9cbc-438d639e1915/edit) |
| S03b | S03b Kontakt-Karteikarte - Aufgaben | `181aba66-b00e-4cb2-a560-d2160610040f` | [S03-Doku](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/181aba66-b00e-4cb2-a560-d2160610040f/edit) |
| S03c | S03c Kontakt-Karteikarte - Dateien | `68974b3a-ab6c-4be8-a3b8-53c82fb89eb3` | [S03-Doku](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/68974b3a-ab6c-4be8-a3b8-53c82fb89eb3/edit) |
| S03d | S03d Kontakt-Karteikarte - Notizen | `337b0721-9d27-4037-bb0d-59d066ed9769` | [S03-Doku](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/337b0721-9d27-4037-bb0d-59d066ed9769/edit) |
| S03e | S03e Kontakt-Detail – Pipeline exakt | `ebf980fb-4569-45b0-b799-c76d2daff8e9` | [S03-Doku](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/ebf980fb-4569-45b0-b799-c76d2daff8e9/edit) |
| S03f | S03f Kontakt-Detail – Pipeline editierbar | `6f1048f4-adaa-46ed-bd8c-6460ac3d43aa` | [S03-Doku](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/Screens/S03%20Kontakt-Karteikarte.md) | [Subframe](https://app.subframe.com/f023064a5ca0/design/6f1048f4-adaa-46ed-bd8c-6460ac3d43aa/edit) |
## Development-Hinweise
- Die exportierten `onClick`-Handler sind statische Platzhalter. Routing und Outcomes folgen dem Paket-MD, Canvas und den Screen-Dateien.
- S03 trägt im Live-Flow weiterhin den Namen `S03 Review – Inline-Zeilen`; diese Seite ist die kanonische S03-Referenz und keine zusätzliche Reviewvariante.
- S03a–S03f sind keine eigenen Routen. Sie dokumentieren ausschließlich den aktiven Zustand des rechten 340-px-Werkzeugbereichs.
- Die Kundennummer ist systemgeführt und read-only. `Kunde seit` ist ein eigener Geschäftswert.
- `KontaktArt` muss im Backend in Relationsgruppe (`primaer`/`sekundaer`) und optionale Funktion/Beziehung getrennt werden.
- `Kontakt.adresseId` muss durch eine mehrwertige Kontakt-Adress-Zuordnung mit Standard-/Rechnungskennzeichnung ersetzt werden.
- E-Mail-Adressen benötigen wie Telefonnummern einen beschreibbaren Typ und eine Standardmarkierung.
- Verantwortlich und Quelle sind durchsuchbare Single-Selects; Personenoptionen verwenden Avatar, Name und sekundäre Information.
- Bestehende Relationen dürfen beim Archivieren nicht gelöscht werden.
- Standard-Loading-, Fehler-, 404- und Permission-Muster werden wiederverwendet und benötigen keine zusätzlichen P6-Screens.
## Entfernt oder bewusst nicht im Hauptflow
- M01/M02: Anlageformulare entfallen; S03/S04 übernehmen den Anlagezustand.
- M04–M04c: Relationsmodale entfallen; Pflege erfolgt inline.
- S06/M06: eigene Tag-Verwaltung entfernt; Tags am Kontakt bleiben erhalten.
- S01a: Mehrfachauswahl in S01 integriert.
- Frühere S03- und S04-Seiten sowie temporäre Reviewseiten wurden aus Subframe entfernt. Wiederherstellung ist nur über die Subframe-Projektversionierung möglich.
## Separate Folgethemen
Diese Punkte blockieren den Handoff nicht:
- S05 Eigene Felder.
- S07 Duplikat-Tool und M03 Zusammenführen.
- D01 Inline-Anlegen direkt in der Liste.
- AirCall-Anbindung der Anruf-Schnellaktion mit D-P15; v1 verwendet `tel:`.
- Optional neutralere Bezeichnungen für Primär/Sekundär bei Person-Person-Verknüpfungen.
## Abschlussprüfung
- 13 Live-Seiten = 13 gelesene JSX-Dateien = 13 vollständige Renderings.
- Flow-ID, Seitennamen, UUIDs und Direktlinks sind eindeutig und synchron.
- S01/S02 enthalten Auswahl-Checkboxen und `BulkActionBar`.
- S03/S04 enthalten die erwarteten Daten-, Kontaktweg-, Adress-, Relations- und Werkzeugbereiche.
- M01a/M02a und M08 rendern als kompakte Dialogreferenzen.
- P6-Canvas ist JSON-valide; IDs sind eindeutig und alle 15 Kanten referenzieren vorhandene Nodes.
- Paket-MD, Screen-Dateien, Tracker, Canvas und Ticket-Handoff verwenden denselben finalen Status.
- Backlog-Dokumente wurden nicht in den Hauptflow gezogen.
## Hinweis für das Ticket-System
Diese Datei ist der kompakte fertige Handoff für `D-CRM`. Für die vollständige Detailwahrheit sind das [P6-Flow-Paket](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen.md), der [P6-Canvas](../../02%20Wireframes/P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen/WF-P6%20Kontakte%20und%20Organisationen.canvas), die verknüpften Screen-Dateien und der [Screen Paket Tracker](../../02%20Wireframes/Screen%20Paket%20Tracker.md) maßgeblich.
+1
View File
@@ -21,6 +21,7 @@ Die Detailwahrheit bleibt in den Wireframe-Paketen und im `Screen Paket Tracker`
| D-P2 | [D-P2 Auth Wireframes](<Fertige Tickets/D-P2 Auth Wireframes.md>) |
| D-P3 (Benachrichtigungen) | [D-P3 Benachrichtigungen](<Fertige Tickets/D-P3 Benachrichtigungen.md>) |
| D-D0b | [D-D0b Layout Standards](<Fertige Tickets/D-D0b Layout Standards.md>) |
| D-CRM | [D-CRM Kontakte und Organisationen](<Fertige Tickets/D-CRM Kontakte und Organisationen.md>) |
| D-FORM | [D-FORM Form Builder](<Fertige Tickets/D-FORM Form Builder.md>) |
| D-P8 + D-KANBAN | [D-P8 Pipelines Wireframes](<Fertige Tickets/D-P8 Pipelines Wireframes.md>) |
| D-FLOW + D-P12 | [D-FLOW Workflow Engine](<Fertige Tickets/D-FLOW Workflow Engine.md>) |