From 576be08232ea7dba4cc46ef142b15d9a517de5e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 13 Dec 2024 01:11:53 +0000 Subject: [PATCH] fix handle_m2m_changed --- src/c3nav/editor/operations.py | 3 +++ src/c3nav/editor/overlay.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) 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)