diff --git a/src/c3nav/mapdata/models/geometry/space.py b/src/c3nav/mapdata/models/geometry/space.py index 0922ea04..76061d1c 100644 --- a/src/c3nav/mapdata/models/geometry/space.py +++ b/src/c3nav/mapdata/models/geometry/space.py @@ -76,7 +76,7 @@ class SpaceGeometryMixin(GeometryMixin): def register_change(self, force=False): space = self.space force = force or self.all_geometry_changed - if force or self.geometry_changed or self.pk is None: + if force or self._state.adding or self.geometry_changed: changed_geometries.register(space.level_id, space.geometry.intersection( unwrap_geom(self.geometry if force else self.get_changed_geometry()) )) @@ -184,7 +184,7 @@ class ObstacleGroup(TitledMixin, models.Model): self._orig = {"color": self.color} def save(self, *args, **kwargs): - if self.pk and any(getattr(self, attname) != value for attname, value in self._orig.items()): + if not self._state.adding and any(getattr(self, attname) != value for attname, value in self._orig.items()): self.register_changed_geometries() super().save(*args, **kwargs) diff --git a/src/c3nav/mapdata/models/locations.py b/src/c3nav/mapdata/models/locations.py index a7048c1d..ee9426ea 100644 --- a/src/c3nav/mapdata/models/locations.py +++ b/src/c3nav/mapdata/models/locations.py @@ -290,7 +290,7 @@ class LocationGroupCategory(SerializableMixin, models.Model): group.register_changed_geometries(do_query=False) def save(self, *args, **kwargs): - if self.pk and any(getattr(self, attname) != value for attname, value in self._orig.items()): + if not self._state.adding and any(getattr(self, attname) != value for attname, value in self._orig.items()): self.register_changed_geometries() super().save(*args, **kwargs) @@ -396,7 +396,7 @@ class LocationGroup(Location, models.Model): return (1, self.category.priority, self.priority) def save(self, *args, **kwargs): - if self.pk and any(getattr(self, attname) != value for attname, value in self._orig.items()): + if not self._state.adding and any(getattr(self, attname) != value for attname, value in self._orig.items()): self.register_changed_geometries() super().save(*args, **kwargs)