Skip to main content
Module: ots_whise_odoo_migration. It imports WHISE estates, pictures and documents from three semicolon-separated UTF-8 CSVs into Propty. Property-level fields: WHISE import fields. This is not a live WHISE API sync. It is a batch CSV importer (UI: WHISE-imports, group real_estate.group_realestate_manager).

Batch models

Batch state keys: draft, ready, running, storage_full, done, done_errors, cancelled. Estate line state keys: pending, done, skipped, conflict, error.
Estate line operation keys: create, update, link.
Picture/document line state keys: pending, done, skipped, error.

Identifiers

Upsert: search by those ids before create. If a property has the same normalized whise_address_key and no whise_estate_id, the importer links (operation = link) instead of creating a duplicate.

Estate CSV → property fields

Required estates.csv columns: EstateId, StatusId, Address1, Number, Zip, Box, City, UpdateDate. Numeric sentinel -1002 is treated as empty.

Child lines (only if the property has none yet)

Pictures & documents

pictures.csv: PictureId, EstateId, Url, Order, Public. Public → real_estate.image (sequence = Order * 10). Private → ir.attachment unless skipped. documents.csv: DocumentId, EstateID (capital D), Url, Public, Filename. Filename keywords set certificate flags (has_epc_certificate, has_asbestos_certificate, …) and the matching *_attachment_id.

Representative / dossierverantwoordelijke

RepresentativeId is not stored as a WHISE id. The importer looks up res.users by name or partner_id.name (=ilike). On a unique match it writes responsible_realtor_id.

Read a raw CSV row after import

payload is the full estate CSV row as JSON.