Download Latest Version OpenConstructionERP_12.2.0_x64_en-US.msi (375.0 MB)
Email in envelope

Get an email when there's a new version of OpenConstructionERP

Home / v4.5.0
Name Modified Size InfoDownloads / Week
Parent folder
SHA256SUMS.pem 2026-05-23 3.6 kB
SHA256SUMS.sig 2026-05-23 96 Bytes
SHA256SUMS 2026-05-23 109 Bytes
openconstructionerp-4.5.0-py3-none-any.whl 2026-05-23 19.9 MB
README.md 2026-05-23 5.5 kB
v4.5.0 -- PropDev complete + BIM Walk fix + Geo Hub deeplinks + SMTP forms source code.tar.gz 2026-05-23 249.5 MB
v4.5.0 -- PropDev complete + BIM Walk fix + Geo Hub deeplinks + SMTP forms source code.zip 2026-05-23 252.3 MB
Totals: 7 Items   521.7 MB 0

OpenConstructionERP v4.5.0 — Property Development complete, BIM Walk fix, Geo Hub deeplinks, SMTP forms

A 75-commit feature wave on top of v4.4.1. Major themes:

Property Development (PropDev) — deep rebuild

  • Lead → Reservation → SPA → Handover → Warranty end-to-end clickflow now works without a glitch. SPA conversion auto-creates the primary ContractParty; Payment Schedule FSM allows pending → paid transitions.
  • Plot create form uses the project context — no more "pick project" dropdown.
  • House Type catalogue — searchable picker over all 180+ ISO countries plus a Custom region (free text) escape hatch for cross-border scopes (DACH, EU-wide, GCC, …). Full 6-section pro modal with live preview. New fields: country_code, region_label, bedrooms, bathrooms, parking_spots, floors, currency.
  • Sub-entity tabs for Phases, Blocks, Brokers, Price Matrix, Escrow with full CRUD, bulk plot assignment, dry-run for matrix apply.
  • Dev-wide Warranty Claims with handover_id, source_snag_id, severity, photos, sla_deadline.
  • SnagsBlock per handover with photo upload, promote-to-warranty, cross-link to Punchlist.
  • Compact icon-button tab navigation — fits in any viewport width.
  • Document Templates — full upload UI, 3-col grid, preview, variables modal, per-development default.
  • Validation Rules moved out of PropDev settings (it was a system-wide concern misplaced under PropDev).
  • Fixed P0 page-breaking "Illegal constructor" error caused by missing Lock import in PropertyDevPage (JS was resolving to window.Lock Web Locks API).

Contacts ↔ PropDev module bridge (new)

  • Leads and Buyers can now point at a Contact via contact_id FK. Idempotent tagging stamps module_tags so a contact created from PropDev is recognisable everywhere. (Migration v3117.)

Geo Hub (Cesium 3D Tiles)

  • Three-mode picker (Global / Project / Development) with live HUD: cursor lat/lon, altitude, scale bar, north arrow.
  • Anchored Projects rail driven by GET /api/v1/geo-hub/projects.
  • Deeplinks via ?model=, ?plot=, ?dev_id=, ?phase=, ?block=.
  • Pin layers wired for HSE incidents, Punchlist items, Daily Diary entries.
  • "View on map" CTAs added throughout BIM, PropDev, Daily Diary.

BIM

  • Walk mode keyboard handling fixed — WASD/Arrows/Space/PageUp/PageDown/Ctrl/Shift now intercepted via capture-phase listeners and preventDefault on every walk key. No more scrolling the page or moving sidebars while you walk through a model.
  • Bottom Models panel is collapsible.
  • Toolbar relocated next to the ViewCube.
  • Section Box and Measure tools polished.
  • Converter install progress bar — live file-count + MB done indicator on /bim and /dwg-takeoff while DDC RVT/DWG converters install.

Marketing site forms → our own SMTP

  • /inquiry, /subscribe, /partners-apply now routed through the deployment's own Python service (marketing-site/demo-register-api.py) via Caddy handle blocks → :8891.
  • Per-IP rate limit + honeypot + reused-identity gate.
  • All forms fall back to mailto:info@datadrivenconstruction.io if SMTP isn't configured.

App shell polish

  • Newsletter Subscribe button in the header next to Support Us (same h-8 px-3 sizing).
  • WhatsNewCard — compact single-row carousel with 6 chip popovers; dismiss collapses to a small pill that re-expands on click.
  • 8-step Product Tour spotlight overlay with ResizeObserver-guarded cutout.
  • Sidebar Menu Editor at the bottom (before Add-module buttons), flex-1 width matching, with hidden-modules localStorage.
  • Property modules grouped into a dedicated sidebar section.

Reliability / correctness

  • Fresh-install alembic shortcut (env.py + v3112 bootstrap) — create_all + stamp at heads when the DB is blank. Belt-and-suspenders fix on top of v4.4.1's [#154] hotfix.
  • Network errors filtered from auto-bug-report picker (#155) — getLastError now prefers level=error over warning AND drops handled Failed to fetch blips.
  • Daily Diary "View on map" missing useNavigate hook fix.
  • Meetings: import-summary IDOR closure, document_ids cross-tenant check, non-ISO due-date coercion, meeting.action_items_created event with stable event_key.

Backend

  • Alembic migrations: v3112 bootstrap, v3113 plot_extra+warranty_enrich, v3114 merge, v3115 dev_extra (country_code, lat/lon, dev_type, sales_target, people fields), v3116 custom_templates, v3117 contact_bridge, v3118 house_type_extra, v3119 parking_spots.
  • New PropertyDevCustomTemplate model (v3116).
  • New Contact.module_tags JSON + custom_properties (v3117).

Frontend

  • New shared <CountryCombobox> over 180+ ISO countries with type-ahead (English + local-script names) and freeform custom-region mode.
  • New frontend/src/shared/lib/countries.ts dataset.
  • New <WhatsNewCard>, <ProductTour>, <SubscribeButton>, <ConverterInstallProgressBar>, <HouseTypeEditModal>.

Migration & operator notes

  • VPS DB path stays sqlite:////root/OpenConstructionERP/data/openestimate.db (4 slashes).
  • Alembic still single-head: v3119_propdev_house_type_parking_spots.
  • rm -rf backend/app/_frontend_dist dist/ before building the wheel (PWA precache hashes go stale otherwise).
  • Marketing forms degrade gracefully to mailto: when SMTP isn't wired — operators can stand up the form endpoints at their leisure.

— Artem & contributors

Source: README.md, updated 2026-05-23