diff --git a/atlas/templates/atlas/normals_list.html b/atlas/templates/atlas/normals_list.html
index fecf2923..260191a3 100644
--- a/atlas/templates/atlas/normals_list.html
+++ b/atlas/templates/atlas/normals_list.html
@@ -27,8 +27,18 @@
diff --git a/atlas/views.py b/atlas/views.py
index 8dfb084e..d6423cfc 100755
--- a/atlas/views.py
+++ b/atlas/views.py
@@ -500,6 +500,14 @@ def toggle_case_normal(request, pk):
if normal is not None:
normal.delete()
+ # Remove any cached relation on the case and reload so the template
+ # sees the updated state (no normal_case).
+ try:
+ if hasattr(case, "normal_case"):
+ delattr(case, "normal_case")
+ except Exception:
+ pass
+ case = get_case_for_case_detail(pk)
else:
# Attempt to auto-extract age from DICOM
age = None
@@ -668,6 +676,14 @@ def create_case_normal(request, pk):
nc.added_by = request.user
nc.save()
+ # Ensure the case reflects the newly created NormalCase when rendering
+ try:
+ if hasattr(case, "normal_case"):
+ delattr(case, "normal_case")
+ except Exception:
+ pass
+ case = get_case_for_case_detail(pk)
+
# Return the updated toggle fragment and close modal via inline script
is_atlas_editor = request.user.is_superuser or request.user.groups.filter(name="atlas_editor").exists()
is_case_author = case.author.filter(id=request.user.id).exists()