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 / v2.9.21
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-05-07 2.3 kB
v2.9.21 -- Perf wins + BOQ custom columns on resources + BIM error visibility (#113) source code.tar.gz 2026-05-07 458.7 MB
v2.9.21 -- Perf wins + BOQ custom columns on resources + BIM error visibility (#113) source code.zip 2026-05-07 460.4 MB
Totals: 3 Items   919.2 MB 0

Highlights

Backend perf

  • ORJSONResponse is now the default response class — ~5–10× faster JSON serialisation on dict/list payloads across every endpoint. orjson was already a base dep.
  • Cache-Control: max-age=31536000, immutable on hashed /assets/*, no-cache on the SPA index.html fallback — repeat-visit page loads now hit the network only for a small revalidation of index.html instead of re-downloading ~2 MB of JS/CSS.

Frontend perf

  • buildGeocodeQuery extracted to its own module so consumers like DashboardProjectsMap no longer side-effect-import the ~220 KB maplibre CSS into the boot bundle.

Project detail UX

  • Weather forecast laid out in 3 rows on tablet/desktop (was 2) — sm:grid-cols-6.
  • Map height now tracks the weather block via grid items-stretch + h-full instead of a fixed 32rem; falls back to fixed height when weather is hidden.

BOQ custom columns

  • Text/number custom columns now inherit the parent position's value on resource sub-rows. Previously empty cells. Resource cells render the inherited value read-only with italic + muted styling so the user can tell it's not editable in place — to change a custom value, edit the position row.
  • Derived resource_sum and percentage_of_unit_rate columns now render per-resource values. A resource row whose _resourceType matches the column's resource_role renders its own qty × rate contribution (resource_sum) or its share of the parent's total resource sum (percentage_of_unit_rate).
  • editable predicate now blocks resource + add-resource rows so silent valueSetter failures stop happening.

BIM viewer — closes #113

  • Geometry-load failures now surface in the UI as an amber banner with the error message and a Retry button. Previously the catch handler logged to console only and the user saw an empty canvas with no signal. Covers stale-token 401, redeploy 404, malformed GLB/DAE, OOM during BVH build.

Install

pip install --upgrade openconstructionerp

Verify

VPS deployment: https://openconstructionerp.com (live, /api/health returns 2.9.21) PyPI: https://pypi.org/project/openconstructionerp/2.9.21/

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