Commit graph

34 commits

Author SHA1 Message Date
898be43ebc Keep Revit and manual row quantities consistent
Editing "Anzahl" on a row with linked Revit objects set manualQuantity to
the new total, so the row no longer matched its objects and detaching
them failed with "row.manualQuantity must not exceed row.quantity".

Such rows now lock "Anzahl" in the editor. The new optional columns
"Anz. manuell" (editable) and "Anz. Revit" (read-only) show both shares;
stored column layouts get them hidden next to "Anzahl". The device-row
update derives the total from a manual-only edit and rejects any change
that breaks quantity = manual + Revit, for every source. Two history
fixtures inserted rows with quantity 1 and the column default
manualQuantity 0, a state no runtime path creates; they now insert 1/1.

Undoing "Revit-Objekte lösen" re-validated planning-value conflicts that
the user had confirmed on the original assignment and was rejected.
Undo/redo of row assignments now restores the accepted state without a
new confirmation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 14:03:29 +01:00
1cfeb06ec7 Replace Revit CSV backend with Linear XLSX 2026-09-30 08:46:07 +02:00
Grovy311
cd89c4a499 Add buildings above floors and a building structure page
Projects with several buildings could not be structured: floors and rooms
hung directly off the project. Floors can now belong to a building
(migration 0009: table buildings, nullable floors.building_id). Rooms and
distribution boards keep their floor; their building follows from it.
Existing floors stay without a building.

Buildings use the location-structure command store with
project-building.insert/.update/.delete, inverses and persistent Undo/Redo;
deleting a building with assigned floors is rejected. Floor commands carry
buildingId since command version 2. Version 1 floor commands from existing
history predate buildings and are upgraded with buildingId = null before
they are executed and persisted, so forward and inverse keep one version.

Project snapshot schema 7 stores buildings and floor.buildingId; versions
1-6 are upgraded without buildings. Restore and portable transfer include
buildings, and the transfer remaps building ids.

Buildings, floors and rooms move from the project overview to their own
page /projects/:id/struktur with three columns (Gebäude -> Etagen -> Räume)
that filter each other, and a sidebar entry. Floor selects in the board and
room dialogs are grouped by building. Unchanged dialogs close without a
command. Details in docs/building-structure.md; see issue #6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 12:52:34 +02:00
Grovy311
7692699ee2 Add print cover fields and office profile
- Project settings gain siteAddress, workStage, projectLead and
  projectEditor (project.update-settings schema version 3, migration 0009);
  versions 2 and 1 stay executable and keep the current cover values.
  Snapshot schema 6 carries the fields; older versions upgrade with null.
- Global office profile (office name/address) next to the document logo:
  table document_branding_settings, PUT /api/document-branding/office,
  editable from the print view toolbar.
- Cover page reads all fields; empty values show the "[ergänzen]" marker.
  The Planstände editor column shows the project editor.
- Shared logo constants moved to a dependency-free module so the Next.js
  bundler can import them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 10:39:18 +02:00
219da5ec3b Persist Revit CSV configuration 2026-08-02 16:33:18 +02:00
44b6fde940 Add public building project setting 2026-07-31 17:41:30 +02:00
734a2bcfc4 Create clean release database baseline 2026-07-31 14:07:26 +02:00
0fd564a930 Persist complete distribution board subtrees 2026-07-31 11:57:10 +02:00
18ca5eb3d4 Persist circuit protection updates 2026-07-31 07:37:38 +02:00
99bdf6491b Persist populated group deletion 2026-07-30 20:10:10 +02:00
3399fcd88b Persist circuit group moves 2026-07-30 20:03:11 +02:00
07925b2fd9 Persist circuit group renumbering 2026-07-30 19:56:59 +02:00
e702712bd8 Add circuit group reordering 2026-07-30 19:49:27 +02:00
1250f9a6af Add circuit group commands 2026-07-30 19:46:55 +02:00
69b020339e Add component update commands 2026-07-30 19:42:09 +02:00
604604f056 Add component structure commands 2026-07-30 19:38:48 +02:00
b1a11397b3 Add configurable distribution supply types 2026-07-29 09:31:20 +02:00
d77cfbeb49 Add versioned project settings modal 2026-07-28 18:16:22 +02:00
d23e7d990c Remove obsolete repository writes 2026-07-26 11:05:26 +02:00
ac465a1cc0 Persist project locations 2026-07-26 10:56:29 +02:00
1cf26a932e Persist distribution board setup 2026-07-25 23:41:27 +02:00
b2763f72d5 Persist project settings updates 2026-07-25 23:08:07 +02:00
384a5769ab Restore named project snapshots 2026-07-25 22:41:24 +02:00
abcb468807 Persist circuit reorders 2026-07-25 21:22:10 +02:00
ac16cca77a Add project device structure history 2026-07-24 09:09:59 +02:00
0bc6c7372f Add project device update history 2026-07-24 08:57:57 +02:00
2668fc2f16 Add project device sync history 2026-07-24 08:47:25 +02:00
4b4603b71b Add section renumber history 2026-07-24 08:34:31 +02:00
332dfdb5d9 Add circuit reorder history 2026-07-24 08:21:32 +02:00
53282e8c7c Add placeholder move history 2026-07-23 22:39:59 +02:00
0a51703315 Add device row move history 2026-07-23 22:29:44 +02:00
ca13efbfcb Add circuit history commands 2026-07-23 22:18:36 +02:00
bd5f4f925f Add device row history commands 2026-07-23 22:09:53 +02:00
e4c7cf06e9 Add project command API 2026-07-23 21:56:13 +02:00