From 7d11c88b0141dce9f8d5c2ebc7b2e898f837979e Mon Sep 17 00:00:00 2001 From: Gwendolyn Date: Sun, 17 Dec 2023 14:14:06 +0100 Subject: [PATCH] hopefully fixes C3NAV-37C3-J --- src/c3nav/editor/views/changes.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/c3nav/editor/views/changes.py b/src/c3nav/editor/views/changes.py index 579b6c99..1b58997b 100644 --- a/src/c3nav/editor/views/changes.py +++ b/src/c3nav/editor/views/changes.py @@ -217,13 +217,23 @@ def changeset_detail(request, pk): continue for pk, changed_object in changed_objects.items(): - obj = objects[model][pk] - - obj_desc = format_lazy(_('{model} #{id}'), model=obj.__class__._meta.verbose_name, id=pk) - if is_created_pk(pk): - obj_still_exists = pk in changeset.created_objects.get(obj.__class__, ()) + if pk in objects[model]: + obj = objects[model][pk] + obj_desc = format_lazy(_('{model} #{id}'), model=obj.__class__._meta.verbose_name, id=pk) + if is_created_pk(pk): + obj_still_exists = pk in changeset.created_objects.get(obj.__class__, ()) + else: + obj_still_exists = pk not in changeset.deleted_existing.get(obj.__class__, ()) else: - obj_still_exists = pk not in changeset.deleted_existing.get(obj.__class__, ()) + obj = changed_object.obj._obj + obj_still_exists = False + if changed_object.deleted: + obj_desc = format_lazy(_('{model} #{id}'), model=obj.__class__._meta.verbose_name, id=pk) + + else: + obj_desc = format_lazy(_('{model} #{id} (deleted outside this changeset)'), + model=obj.__class__._meta.verbose_name, id=pk) + edit_url = None if obj_still_exists and can_edit and not isinstance(obj, LocationRedirect):