feat(akquise): "Von" mit dem angemeldeten Benutzer vorbelegen

In der Regel traegt jeder seine eigenen Funde ein - das Feld stand trotzdem bei
jedem Projekt auf leer. Vorbelegt ist jetzt der angemeldete Benutzer; wer fuer
jemand anderen eintraegt, waehlt ihn aus der Liste.

Der eigene Name steht dabei immer zur Auswahl (OptionSelect.alwaysOffer), auch
wenn ihn niemand in den Einstellungen gepflegt hat: sonst muesste sich jeder
erst selbst in die Liste eintragen, bevor er ein Projekt erfassen kann. Steht er
schon in der Liste, gilt deren Schreibweise - sonst stuenden "Markus" und
"Markus Meier" als zwei Namen in derselben Spalte.

Beim Bearbeiten bleibt der gespeicherte Name stehen, sonst wuerde ein Eintrag
beim Oeffnen den Finder wechseln.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sascha Wolf
2026-08-18 13:53:53 +02:00
co-authored by Claude Opus 5
parent 23087a12fb
commit 2717462c3a
5 changed files with 61 additions and 12 deletions
+9 -2
View File
@@ -88,7 +88,7 @@ weg.
| Feld | wofür |
| --- | --- |
| **Datum** | wann gefunden. Vorbelegt mit heute; entscheidet später über Archiv und Löschung |
| **Von** | Auswahl: wer es geschickt hat |
| **Von** | Auswahl: wer den Fund hereingebracht hat. Vorbelegt mit dem angemeldeten Benutzer |
| **Anbieter** | Freitext: Vermittler oder Portal, z. B. Hays. Vorschläge aus den bisherigen Einträgen |
| **Kanal** | Auswahl: auf welchem Weg es kam |
| **Projekttitel** | das einzige Pflichtfeld |
@@ -99,6 +99,12 @@ weg.
*Einstellungen → Akquise* und lassen sich dort von jedem Benutzer pflegen. Ist
eine Liste noch leer, steht unter dem Feld ein Verweis dorthin.
**Von** ist mit dem **angemeldeten Benutzer** vorbelegt - in der Regel trägt
jeder seine eigenen Funde ein. Trägt Markus etwas für Artur ein, wählt er Artur
aus der Liste. Der eigene Name steht dabei immer zur Auswahl, auch wenn ihn
niemand in der Liste gepflegt hat; beim Bearbeiten eines Eintrags bleibt der
gespeicherte Name stehen.
**Anbieter** ist bewusst keine Liste, sondern ein Freitextfeld: neue Vermittler
tauchen zu oft auf, als dass das Eintragen daran hängen sollte. Das Feld schlägt
vor, was schon einmal benutzt wurde - der zuletzt verwendete Anbieter zuerst.
@@ -119,7 +125,8 @@ wird geleert - für das nächste Projekt aus derselben Quelle.
| Spalte | Bedeutung |
| --- | --- |
| **Datum** | Funddatum; der Mauszeiger verrät das Alter in Tagen |
| **Von**, **Anbieter**, **Kanal** | woher es kam |
| **Von** | wer den Fund hereingebracht hat |
| **Anbieter**, **Kanal** | woher es kam |
| **Projekttitel** | mit Link anklickbar (neuer Tab); darunter klein Endkunde, Tagessatz bzw. Festpreis und Personentage |
| **Berater** | für wen |
| **Opportunity** | ein Klick macht daraus eine Opportunity in der Phase *Neu* |
+1 -1
View File
@@ -268,7 +268,7 @@ Warum genau diese Konstanten festgelegt sind, steht in
| `components/acquisition/Acquisitions.tsx` | Akquise und Archiv (`view`); Suche, Sortierung, Übernahme, Löschen |
| `components/acquisition/AcquisitionForm.tsx` | Eingabe über der Liste; behält Datum, Anbieter, Kanal und Berater für den nächsten Eintrag |
| `components/acquisition/AcquisitionTable.tsx` | die Liste; `safeLink()` lässt nur http(s) zum Link werden |
| `components/acquisition/acquisitionUi.tsx` | `fieldClass` (abgesetzte Felder) und `OptionSelect` - zeigt einen Wert, der nicht mehr in der Liste steht, als solchen. *Anbieter* nutzt es nicht: Freitext mit `<datalist>` |
| `components/acquisition/acquisitionUi.tsx` | `fieldClass` (abgesetzte Felder) und `OptionSelect` - zeigt einen Wert, der nicht mehr in der Liste steht, als solchen; `alwaysOffer` hält den eigenen Namen für *Von* immer wählbar. *Anbieter* nutzt es nicht: Freitext mit `<datalist>` |
| `components/settings/AcquisitionSettings.tsx` | Reiter *Einstellungen → Akquise*: die vier Auswahllisten pflegen |
| `components/leads/leadUi.tsx` | `inputClass`, `labelClass`, `KindBadge`, `Avatar`, Farben der Kontaktart |
| `components/leads/mailPool.ts` | `findMailPoolMatch()`, `diffFields()`, `isConflict()`, `MAIL_POOL_FIELDS` - Dublettenabgleich des Vorbereichs |