| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-05-07 | 1.1 kB | |
| v2.9.19 -- Bid comparison sticky column + photo MIME hardening source code.tar.gz | 2026-05-07 | 458.7 MB | |
| v2.9.19 -- Bid comparison sticky column + photo MIME hardening source code.zip | 2026-05-07 | 460.4 MB | |
| Totals: 3 Items | 919.1 MB | 0 | |
Highlights
Bid comparison readable@1366px: sticky first column (line item label) + sticky header keep context visible when scrolling horizontally across bidder columns. New toggle collapses rows whose price spread (max-min / mean) is under a threshold (default 5%) — surfaces the rows that actually differ between bidders.
Photo MIME hardening:
- HEIC/HEIF/AVIF (ISO-BMFF ftyp brands: heic, heix, hevc, heim, mif1, msf1, avif, avis) now detected by magic-byte
- TIFF (both endiannesses, II\x00 and MM\x00) now detected by magic-byte
- Photo upload requires content_type AND magic bytes to agree (content_type alone is fully request-controlled)
- SVG removed from file-manager whitelist (XSS surface — embedded scripts in inline SVG would execute on download/preview)
- Photo download switched to
Content-Disposition: attachmentwith sanitized filename so<script>.jpg-style names can't render in-browser
Install
pip install --upgrade openconstructionerp
Verify
VPS deployment: https://openconstructionerp.com (live, /api/health returns 2.9.19) PyPI: https://pypi.org/project/openconstructionerp/2.9.19/