Commit Graph

88 Commits

Author SHA1 Message Date
Matthias Hochmeister
633a75cb0b feat(ausruestungsanfrage): add personal item tracking, catalog enforcement, and detail pages 2026-04-14 16:49:20 +02:00
Matthias Hochmeister
1215e9ea70 feat: personal equipment tracking, order assignment, purge fix, widget consolidation
- Migration 084: new persoenliche_ausruestung table with catalog link, user
  assignment, soft delete; adds zuweisung_typ/ausruestung_id/persoenlich_id
  columns to ausruestung_anfrage_positionen; seeds feature group + 5 permissions

- Fix user data purge: table was shop_anfragen, renamed to ausruestung_anfragen
  in mig 046 — caused full transaction rollback. Also keep mitglieder_profile
  row but NULL FDISK-synced fields (dienstgrad, geburtsdatum, etc.) instead of
  deleting the profile

- Personal equipment CRUD: backend service/controller/routes at
  /api/persoenliche-ausruestung; frontend page with DataTable, user filter,
  catalog Autocomplete, FAB create dialog; widget in Status group; sidebar
  entry (Checkroom icon); card in MitgliedDetail Tab 0

- Ausruestungsanfrage item assignment: when a request reaches erledigt,
  auto-opens ItemAssignmentDialog listing all delivered positions; each item
  can be assigned as general equipment (vehicle/storage), personal item (user,
  prefilled with requester), or not tracked; POST /requests/:id/assign backend

- StatCard refactored to use WidgetCard as outer shell for consistent header
  styling across all dashboard widget templates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 19:19:35 +02:00
Matthias Hochmeister
b477e5dbe0 feat: user data purge, breadcrumbs, first-login dialog, widget consolidation, bookkeeping cascade
- Admin can purge all personal data for a user (POST /api/admin/users/:userId/purge-data)
  while keeping the account; clears profile, notifications, bookings, ical tokens, preferences
- Add isNewUser flag to auth callback response; first-login dialog prompts for Standesbuchnummer
- Add PageBreadcrumbs component and apply to 18 sub-pages across the app
- Cascade budget_typ changes from parent pot to all children recursively, converting amounts
  (detailliert→einfach: sum into budget_gesamt; einfach→detailliert: zero all for redistribution)
- Migrate NextcloudTalkWidget to use shared WidgetCard template for consistent header styling

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 16:15:28 +02:00
Matthias Hochmeister
dd5cd71fd1 feat(dashboard,admin): widget group customization and FDISK data purge 2026-04-13 15:06:34 +02:00
Matthias Hochmeister
43ce1f930c feat(frontend): implement unified design system with 17 reusable template components, skeleton loading states, and golden-ratio-based layouts 2026-04-13 10:43:27 +02:00
Matthias Hochmeister
5acfd7cc4f feat(buchhaltung): add transfers, bank statements, Haushaltsplan, and PDF export 2026-03-30 17:05:18 +02:00
Matthias Hochmeister
d833b3c224 feat(buchhaltung): recurring job, budget alerts, audit endpoint, konto-typen CRUD 2026-03-30 15:04:06 +02:00
Matthias Hochmeister
b21abce9e3 feat(buchhaltung): budget types, erstattungen, recurring tab move, overview dividers, order completion guard 2026-03-30 14:07:04 +02:00
Matthias Hochmeister
13aa4be599 feat(buchhaltung): add categories, recurring tx scheduling, sub-pot budget validation, and UX polish 2026-03-30 12:56:33 +02:00
Matthias Hochmeister
0c5432b50e feat: add account hierarchy, budget types (GWG/Anlagen/Instandhaltung), and Buchhaltung UI overhaul with collapsible tree, pending badge, and konto detail page 2026-03-30 09:49:28 +02:00
Matthias Hochmeister
bc39963746 feat: add Buchhaltung dashboard widget, CSV export, Bestellungen linking, recurring bookings, and approval workflow 2026-03-28 20:34:53 +01:00
Matthias Hochmeister
18b1300de8 feat: add Buchhaltung module with fiscal years, budget accounts, transactions, and approval workflow 2026-03-28 19:48:32 +01:00
Matthias Hochmeister
4349de9bc9 feat: checklist multi-type assignments, tab layouts for Fahrzeuge/Ausruestung, admin cleanup
- Migration 074: convert checklist vorlage single FK fields to junction tables
  (vorlage_fahrzeug_typen, vorlage_fahrzeuge, vorlage_ausruestung_typen, vorlage_ausruestungen)
- Backend checklist service: multi-type create/update/query with array fields
- Backend cleanup service: add checklist-history and reset-checklist-history targets
- Frontend types/service: singular FK fields replaced with arrays (fahrzeug_typ_ids, etc.)
- Frontend Checklisten.tsx: multi-select Autocomplete pickers for all assignment types
- Fahrzeuge.tsx/Ausruestung.tsx: add tab layout (Uebersicht + Einstellungen), inline type CRUD
- FahrzeugEinstellungen/AusruestungEinstellungen: replaced with redirects to tab URLs
- Sidebar: add Uebersicht sub-items, update Einstellungen paths to tab URLs
- DataManagementTab: add checklist-history cleanup and reset sections

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 18:57:46 +01:00
Matthias Hochmeister
b62fd55246 fix: correct vorlageId casing in startExecution, make checklist rows clickable with alternating backgrounds 2026-03-28 17:57:45 +01:00
Matthias Hochmeister
534a24edbf fix: use PATCH for vehicle type update and correct permission check in FahrzeugEinstellungen 2026-03-28 17:30:40 +01:00
Matthias Hochmeister
6b46e97eb6 feat: vehicle/equipment type system, equipment checklist support, and checklist overview redesign 2026-03-28 17:27:01 +01:00
Matthias Hochmeister
0c2ea829aa feat: add issue kanban/attachments/deadlines, dashboard widget DnD, and checklisten system 2026-03-28 15:19:41 +01:00
Matthias Hochmeister
29d66e37a1 shared catalog in Bestellungen, catalog picker in line items, Ersatzbeschaffung flag, vendor detail flash fix 2026-03-27 14:50:31 +01:00
Matthias Hochmeister
35b3718e38 catalog search/sort, edit-page characteristics, preferred vendor per article 2026-03-27 13:17:05 +01:00
Matthias Hochmeister
90f691d607 add linking between internal and external orders 2026-03-27 11:18:06 +01:00
Matthias Hochmeister
d5e5f2d44e update 2026-03-26 09:29:59 +01:00
Matthias Hochmeister
884397b520 calendar and vehicle booking rework 2026-03-26 08:47:38 +01:00
Matthias Hochmeister
7cc4facc11 calendar and vehicle booking rework 2026-03-25 16:01:03 +01:00
Matthias Hochmeister
74d978171c calendar and vehicle booking rework 2026-03-25 15:44:11 +01:00
Matthias Hochmeister
561334791b rework external order tracking system 2026-03-25 13:24:52 +01:00
Matthias Hochmeister
feb39d234f rework from modal to page 2026-03-25 10:23:28 +01:00
Matthias Hochmeister
5ceae7c364 fix permissions 2026-03-25 07:54:40 +01:00
Matthias Hochmeister
59140939df fix permissions 2026-03-25 07:48:00 +01:00
Matthias Hochmeister
f228dd67ba fix permissions 2026-03-24 17:54:36 +01:00
Matthias Hochmeister
6c7531438e rework issue system 2026-03-24 14:21:17 +01:00
Matthias Hochmeister
abb337c683 rework internal order system 2026-03-24 14:02:16 +01:00
Matthias Hochmeister
9a52e41372 rework internal order system 2026-03-24 13:28:46 +01:00
Matthias Hochmeister
6ff5cc89ad rework internal order system 2026-03-24 08:59:46 +01:00
Matthias Hochmeister
3c0a8a6832 rework internal order system 2026-03-24 08:41:24 +01:00
Matthias Hochmeister
99f02b8425 rework internal order system 2026-03-24 08:11:32 +01:00
Matthias Hochmeister
1b13e4f89e new features 2026-03-23 18:43:30 +01:00
Matthias Hochmeister
97c9af7f14 new features 2026-03-23 17:54:19 +01:00
Matthias Hochmeister
55ded22a6f new features 2026-03-23 16:58:46 +01:00
Matthias Hochmeister
8c66492b27 new features 2026-03-23 16:09:42 +01:00
Matthias Hochmeister
bfcf1556da new features 2026-03-23 15:07:17 +01:00
Matthias Hochmeister
3326156b15 new features 2026-03-23 14:01:39 +01:00
Matthias Hochmeister
5032e1593b new features 2026-03-23 13:08:19 +01:00
Matthias Hochmeister
725d4d1729 rights system 2026-03-23 12:18:46 +01:00
Matthias Hochmeister
a575b61d26 rights system 2026-03-23 12:00:09 +01:00
Matthias Hochmeister
d173c8235e rights system 2026-03-23 11:48:00 +01:00
Matthias Hochmeister
515f14956e rights system 2026-03-23 10:50:52 +01:00
Matthias Hochmeister
2bb22850f4 rights system 2026-03-23 10:07:53 +01:00
Matthias Hochmeister
c15d4a50e0 update 2026-03-16 15:26:43 +01:00
Matthias Hochmeister
f3ad989a9e update 2026-03-16 15:01:09 +01:00
Matthias Hochmeister
5f329bb5c1 update 2026-03-16 12:11:32 +01:00