fix: persist migrated custom regions format on first load

This commit is contained in:
thekiwismarthome
2026-08-09 14:38:36 +12:00
parent 5e2a7e8d35
commit 88cadea42f
@@ -162,11 +162,16 @@ class ShoppingListStorage:
custom_regions_data = await self._store_custom_regions.async_load() custom_regions_data = await self._store_custom_regions.async_load()
if custom_regions_data: if custom_regions_data:
raw = custom_regions_data.get("regions", {}) raw = custom_regions_data.get("regions", {})
needs_migration = any(isinstance(v, str) for v in raw.values())
self._custom_regions = { self._custom_regions = {
k: (v if isinstance(v, dict) else {"name": v, "currency_symbol": None, "language": None}) k: (v if isinstance(v, dict) else {"name": v, "currency_symbol": None, "language": None})
for k, v in raw.items() for k, v in raw.items()
} }
_LOGGER.debug("Loaded %d custom regions", len(self._custom_regions)) if needs_migration:
await self._save_custom_regions()
_LOGGER.info("Migrated %d custom regions to new dict format", len(self._custom_regions))
else:
_LOGGER.debug("Loaded %d custom regions", len(self._custom_regions))
# Initialize search engine after products are loaded # Initialize search engine after products are loaded
if self._products: if self._products: