# Project: AufmaßWeb (AufmassCreater v2.35) ## Obsidian Status-Speicherung **WICHTIG:** Am Ende jeder Session (oder wenn der Nutzer darum bittet), speichere den aktuellen Projektstatus in Obsidian: ### Vault-Pfad ``` C:\NC_KPT\Documents\_SecondBrain\DD_KPT\Agentic OS\ ``` ### Was speichern 1. **Journal/.md** – Heutige Session 2. **Goals/Current.md** – Gesamtstatus (`Stand:`+ Abgeschlossen + Nächste Schritte) 3. **Chats/.md** (optional) – Detaillierte Zusammenfassung ### Manuelles Skript Im Projekt-Root: `.\save-status.ps1` ### Wichtige Pfade - Projekt-Root: `C:\NC_KPT\Documents\_Zwischenablage\_Coding\AufmassCreater v2.35 (20260309)` - Web-App: `_aufmass_web\` (vollständig: `C:\NC_KPT\Documents\_Zwischenablage\_Coding\AufmassCreater v2.35 (20260309)\_aufmass_web`) - Python: `C:\Users\FK\AppData\Local\Programs\Python\Python39\python.exe` - Server: `http://localhost:5000` - DB: `_aufmass_web\data\aufmass.db` ## Modul-Status | Legacy | Größe | Python-Modul | Status | |--------|-------|-------------|--------| | `sasmecka` | 681 Z. | `sas_mecka.py` | ✅ Fertig | | `neffachberg` | 1319 Z. | `neff_achberg.py` | ✅ Fertig (298 Z.) | | `graben` | 1400+ Z. | `graben.py` | ⚠️ Stark vereinfacht | | `ftth` | 1336 Z. | `ftth.py` | ⚠️ Stark vereinfacht | | `gf` | 1638+ Z. | `gf_montage.py` | ⚠️ Stark vereinfacht | | `gruben` | 1225 Z. | `gruben.py` | ⚠️ Stark vereinfacht | | `kabelzug` | 262 Z. | `kabelzug.py` | ⚠️ Vereinfacht | | `absperrung` | 92 Z. | `absperrung.py` | ⚠️ Leicht vereinfacht | ## Custom Module Builder (Phasen 1-5) ✅ - **Phase 1** – CustomModule + CustomModuleAssignment DB-Modelle, CRUD-Routen, Template-Import, Permission-System - **Phase 2** – Drag & Drop Formular-Builder mit 9 Feldtypen, Conditional-Show, Live-Vorschau, Properties-Panel - **Phase 3** – Regel-Builder mit Tabsystem, Bedingungs-Editor (8 Operatoren), Aktions-Editor (LV-Lookup, Spalten-Overrides, Formel-Parser) - **Phase 4** – Execution Engine: Form-Renderer + Rule-Executor, HTMX-Routen (`/formular`, `/berechnen`), Integration in `bearbeiten.html` - **Phase 5** – Drag & Drop Sortierung per Firma mit SortableJS und Batch-Sort-API - **Seed**: "Kabelgraben Standard" mit 9 Feldern + 4 Regeln - **15 Routen**: Index, Neu, Bearbeiten, Builder, Löschen, Importieren, Als-Vorlage, User-Toggle, Form-JSON, Rules-JSON, Available, Formular, Berechnen, Sort-Batch, Sort ## Wichtige Code-Konventionen - **Zahlen**: `type="text" inputmode="decimal"`, `sanitizeNum()`/`parseNum()`/`germanNum()`/`validateNumField()` - **ST/LE/STD/h/Psch**: Faktor=1,0, Menge leer+amber Highlight - **Einfügeposition**: `rightLastClickedIdx` (nicht `:last-child`) - **Spalten-Filter**: Reine clientseitige Ansichtsfilter, keine Server-Anfrage - **Spalten-Resize**: `pointer-events:none` + 10px Hit-Areal - **Export "Aktuelle Ansicht"**: `?visible_ids=1,2,3` - **PDF-Engine**: fpdf2 mit DejaVuSans (nicht xhtml2pdf) - **TXT-Format**: 13 Felder, `|`-separiert, Abschnitt als 1. Spalte - **Modul-Architektur**: `_lookup_pos()` + `_make_pos()` + `berechne()` ## Letzte Änderungen (2026-06-09) - Pfade korrigiert: `C:` statt `E:` - NetBird VPS Clean-Rebuild + Dashboard Setup - AGENTS.md mit korrektem Obsidian-Vault-Pfad