Proposals / follow-ups
- Category names. The xls has no code→name mapping for categories — we
emit
"Kategorie NN"placeholders. Source the real Czech + English names from the original SW's admin screens or a separate CSV, then re-runbuild_yaml.py(which is why category names live incategories.ymland not inline with assets). - Price refresh. Replace the 2014 snapshot with a fresh catalog once available. The generator is keyed off PČV, so dropping a newer xls and re-running will update prices without losing any DRS placements, as long as PČV codes stay stable.
- Description split.
qualitative_indicatorsmixes "what it is" with "what it has" — consider splitting off a structuredspecs: list[Spec](bullets) and keepingqualitative_indicatorsas free HTML for the editor. - FX / foreign pricing.
foreign_priceandinstallation_foreign_pricehave no currency column. If it's always EUR, hard-code the label; if mixed, add aforeign_currencyfield before refreshing. - Media. No images in the xls. Add an
!image_linkfield and seed product photos per PČV once a source is available. - DRS ingestion.
imports/Finální DRS/has per-floor DGN/DWG/PDF files namedH1-<N> Pôdorys <N>.NP.*. A futurebuild_drs_yaml.pycan parse the filenames into!building { code: "H1" }+!floor { code: "1.NP" }stubs, and attach each PDF as a!documentonFloor.drawing_reference. - Bulk placement workflow. With 11 876 catalog items × hundreds of
rooms, editing
RoomAssetone-by-one in admin is not viable. Plan for (a) a CSV/xlsx import keyed by room number + PČV, and (b) a Wagtail ViewSet for Room with an asset-picker that autocompletes over PČV/name. - Search backend. The default Wagtail search on 11 876 rows works but scales poorly once we add descriptions. Evaluate Postgres full-text or the Wagtail Postgres search backend before shipping.