diff --git a/src/c3nav/mapdata/models/update.py b/src/c3nav/mapdata/models/update.py index 877ef51c..49d1a24d 100644 --- a/src/c3nav/mapdata/models/update.py +++ b/src/c3nav/mapdata/models/update.py @@ -201,6 +201,8 @@ class MapUpdate(models.Model): last_geometry_update = ([None] + [update.geometries_changed for update in new_updates])[-1] if last_geometry_update is not None: + geometry_update_cache_key = MapUpdate.build_cache_key(last_geometry_update.to_tuple) + from c3nav.mapdata.utils.cache.changes import changed_geometries changed_geometries.reset() @@ -230,7 +232,7 @@ class MapUpdate(models.Model): logger.info('Rebuilding level render data...') from c3nav.mapdata.render.renderdata import LevelRenderData - LevelRenderData.rebuild(update_cache_key) + LevelRenderData.rebuild(geometry_update_cache_key) transaction.on_commit( lambda: cache.set('mapdata:last_processed_geometries_update', last_geometry_update.to_tuple, None) diff --git a/src/c3nav/mapdata/render/renderdata.py b/src/c3nav/mapdata/render/renderdata.py index 5bccaa73..a8d5e521 100644 --- a/src/c3nav/mapdata/render/renderdata.py +++ b/src/c3nav/mapdata/render/renderdata.py @@ -55,7 +55,7 @@ class LevelRenderData: darken_area: MultiPolygon | None = None @staticmethod - def rebuild(update_cache_key, geometry_update_cache_key): + def rebuild(update_cache_key): # Levels are automatically sorted by base_altitude, ascending levels = tuple(Level.objects.prefetch_related('altitudeareas', 'buildings', 'doors', 'spaces', 'spaces__holes', 'spaces__areas', 'spaces__columns', @@ -352,9 +352,9 @@ class LevelRenderData: package.add_level(render_level.pk, theme, map_history, access_restriction_affected) - render_data.save(geometry_update_cache_key, render_level.pk, theme) + render_data.save(update_cache_key, render_level.pk, theme) - package.save_all(geometry_update_cache_key) + package.save_all(update_cache_key) cached = LocalContext()