diff --git a/src/c3nav/editor/operations.py b/src/c3nav/editor/operations.py index a3993e7c..5ee856b5 100644 --- a/src/c3nav/editor/operations.py +++ b/src/c3nav/editor/operations.py @@ -247,6 +247,9 @@ class DatabaseOperationCollection(BaseSchema): def append(self, item: DatabaseOperation): self.operations.append(item) + def __getitem__(self, item): + return self.operations[item] + def prefetch(self) -> "PrefetchedDatabaseOperationCollection": return PrefetchedDatabaseOperationCollection(operations=self, instances=self.prev.get_instances()) diff --git a/src/c3nav/editor/overlay.py b/src/c3nav/editor/overlay.py index 743e9897..4e17aeb7 100644 --- a/src/c3nav/editor/overlay.py +++ b/src/c3nav/editor/overlay.py @@ -148,7 +148,8 @@ class DatabaseOverlayManager: if self.operations: last_change = self.operations[-1] - if isinstance(last_change, UpdateManyToManyOperation) and last_change == ref and last_change == field.name: + if (isinstance(last_change, UpdateManyToManyOperation) + and last_change.obj == ref and last_change == field.name): if action == "post_add": last_change.add_values.update(pk_set) last_change.remove_values.difference_update(pk_set)