UI fuer Firmen-Verwaltung mit Ansprechpartner-Links (Modul 12/16 UI-Backlog) #384

Closed
opened 2026-09-15 21:00:59 +00:00 by Leopoldadmin · 0 comments
Owner

UI-Backlog Modul 12: Companies (Firmen-API)

Backend: /api/v1/companies (contacts plugin, 9 Ops): GET list (search/industry/sort), POST create, GET export (csv/xlsx), GET detail (mit Ansprechpartnern), PUT update, DELETE (?cascade), POST/DELETE link/unlink contacts, GET emails. Permissions: contacts:read/write/delete.

Frontend (Commit 06b7284):

  • api/companies.ts — 8 TanStack-Hooks (useCompanies, useCompany, useCompanyEmails, useCreateCompany, useUpdateCompany, useDeleteCompany, useLinkContact, useUnlinkContact)
  • pages/Companies.tsx — Firmen-Liste mit Status-Badges (lead/customer/inactive), Industry/City/Email/Phone/Website-Icons, Suche (Enter-Submit), Branchen-Filter, A→Z/Z→A-Sortierung, CSV/XLSX-Export, Create/Edit-Modal (9 Felder), Delete-Confirm, Detail-Modal mit Ansprechpartner-Verwaltung (Link via UUID, Unlink)
  • Phase-Q-Registrierung: contacts plugin.py-Manifest: page_route /companies + menu_item nav.companies (Building2, order 11) + ICON_MAP-Ergänzung + Komponenten-Map regeneriert (42 Einträge)
  • i18n de/en: nav.companies + 24 neue companies-Keys (Merge mit bestehendem ungenutztem Block, jetzt 53 Keys)
  • Tests: __tests__/pages/Companies.test.tsx 12/12 (Permission-Gating, Create-Validierung, Edit-Diff-Payload, Delete, Detail-Modal mit Link/Unlink, Enter-Suche)

Verifikation:

  • tsc exit=0, Vitest 12/12, Production-Build OK
  • Full Deploy: Health 200, Alembic 0144, RLS 113
  • Live: GET /companies HTTP 200 (echte Firmendaten); Manifest page_route+menu_item live; echter-Login DOM-Check: h1='Companies', 3 Firmenkarten gerendert, Export-Buttons, Nav-Link, kein Spinner, keine JS-Fehler

DoD: erfüllt.

## UI-Backlog Modul 12: Companies (Firmen-API) **Backend:** `/api/v1/companies` (contacts plugin, 9 Ops): GET list (search/industry/sort), POST create, GET export (csv/xlsx), GET detail (mit Ansprechpartnern), PUT update, DELETE (?cascade), POST/DELETE link/unlink contacts, GET emails. Permissions: contacts:read/write/delete. **Frontend (Commit 06b7284):** - `api/companies.ts` — 8 TanStack-Hooks (useCompanies, useCompany, useCompanyEmails, useCreateCompany, useUpdateCompany, useDeleteCompany, useLinkContact, useUnlinkContact) - `pages/Companies.tsx` — Firmen-Liste mit Status-Badges (lead/customer/inactive), Industry/City/Email/Phone/Website-Icons, Suche (Enter-Submit), Branchen-Filter, A→Z/Z→A-Sortierung, CSV/XLSX-Export, Create/Edit-Modal (9 Felder), Delete-Confirm, Detail-Modal mit Ansprechpartner-Verwaltung (Link via UUID, Unlink) - **Phase-Q-Registrierung:** contacts plugin.py-Manifest: page_route /companies + menu_item nav.companies (Building2, order 11) + ICON_MAP-Ergänzung + Komponenten-Map regeneriert (42 Einträge) - i18n de/en: nav.companies + 24 neue companies-Keys (Merge mit bestehendem ungenutztem Block, jetzt 53 Keys) - Tests: `__tests__/pages/Companies.test.tsx` 12/12 (Permission-Gating, Create-Validierung, Edit-Diff-Payload, Delete, Detail-Modal mit Link/Unlink, Enter-Suche) **Verifikation:** - tsc exit=0, Vitest 12/12, Production-Build OK - Full Deploy: Health 200, Alembic 0144, RLS 113 - Live: GET /companies HTTP 200 (echte Firmendaten); Manifest page_route+menu_item live; echter-Login DOM-Check: h1='Companies', 3 Firmenkarten gerendert, Export-Buttons, Nav-Link, kein Spinner, keine JS-Fehler **DoD:** erfüllt.
Leopoldadmin added the task label 2026-09-15 21:00:59 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leopoldadmin/leocrm#384