From 95793c78c925685cbdaade0c0db0ee38ff5bb38e Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 27 Apr 2026 11:16:48 +0100 Subject: [PATCH] Refactor self-review functionality: replace inline actions with dedicated partials and enhance dynamic panel updates --- .../atlas/collection_case_view_take.html | 84 +++++------- .../atlas/partials/_self_review_block.html | 62 +++++++++ .../partials/_selfreview_popup_success.html | 121 +++++++++--------- 3 files changed, 155 insertions(+), 112 deletions(-) create mode 100644 atlas/templates/atlas/partials/_self_review_block.html diff --git a/atlas/templates/atlas/collection_case_view_take.html b/atlas/templates/atlas/collection_case_view_take.html index 15c7a0f4..9c6f9478 100644 --- a/atlas/templates/atlas/collection_case_view_take.html +++ b/atlas/templates/atlas/collection_case_view_take.html @@ -213,32 +213,8 @@ {% include "atlas/partials/collection_question_answer_block.html" %} {% if collection.self_review %} -
-
-
- - Add Self Review - - - -
-
- {% if self_review %} -

Self Feedback

- - {% for review in self_review %} - {{review.get_display_block}} - - {% endfor %} - {% endif %} +
+ {% include 'atlas/partials/_self_review_block.html' with panel_key='que' %}
{% else %}

Answer score: {{answer.score}}

@@ -277,31 +253,9 @@ {% if question_completed %}
{% if collection.self_review %} -
-
- - Add Self Review - - - -
+
+ {% include 'atlas/partials/_self_review_block.html' with panel_key='rep' %}
- {% if self_review %} -

Self Feedback

- - {% for review in self_review %} - {{review.get_display_block}} - - {% endfor %} - {% endif %} {% else %}

Answer score: {{answer.score}}

Answer feedback: {{answer.feedback|safe}} @@ -675,6 +629,34 @@ window.selfReviewCurrentEmbedUrl = null; + window.refreshSelfReviewPanels = async function () { + try { + var resp = await fetch(window.location.href, { credentials: 'same-origin' }); + var html = await resp.text(); + var parser = new DOMParser(); + var doc = parser.parseFromString(html, 'text/html'); + + var currentPanels = document.querySelectorAll('.js-self-review-panel[data-refresh-key]'); + currentPanels.forEach(function (currentPanel) { + var key = currentPanel.getAttribute('data-refresh-key'); + if (!key) return; + var replacement = doc.querySelector('.js-self-review-panel[data-refresh-key="' + key + '"]'); + if (replacement) { + currentPanel.outerHTML = replacement.outerHTML; + } + }); + } catch (e) { + console.warn('Unable to refresh self review panels', e); + } + }; + + window.addEventListener('message', function (event) { + if (!event || !event.data) return; + if (event.data.type === 'self_review_saved') { + window.refreshSelfReviewPanels(); + } + }); + window.bindSelfReviewEmbedForm = function () { var root = document.getElementById('selfReviewSidebarBody'); if (!root) return; @@ -707,7 +689,7 @@ root.innerHTML = '
Self review saved. You can continue reviewing this case.
'; setTimeout(function () { window.closeSelfReviewSidebar(); - window.location.reload(); + window.refreshSelfReviewPanels(); }, 500); return; } diff --git a/atlas/templates/atlas/partials/_self_review_block.html b/atlas/templates/atlas/partials/_self_review_block.html new file mode 100644 index 00000000..94e50b62 --- /dev/null +++ b/atlas/templates/atlas/partials/_self_review_block.html @@ -0,0 +1,62 @@ +
+
+ + Add Self Review + + + +
+ + {% if self_review %} +

Self Feedback

+
+ {% for review in self_review %} +
+
+
+ Updated: {{ review.review_update_date|date:"Y-m-d H:i" }} +
+
+ + Edit + + + +
+
+ +
+ Findings: + {{ review.findings|default:"-" }}/5 +
+
+ Interpretation: + {{ review.interpretation|default:"-" }}/5 +
+ {% if review.comments %} +
{{ review.comments|linebreaksbr }}
+ {% else %} +
No comments added.
+ {% endif %} +
+ {% endfor %} +
+ {% endif %} +
\ No newline at end of file diff --git a/atlas/templates/atlas/partials/_selfreview_popup_success.html b/atlas/templates/atlas/partials/_selfreview_popup_success.html index 5c7417aa..09435f45 100644 --- a/atlas/templates/atlas/partials/_selfreview_popup_success.html +++ b/atlas/templates/atlas/partials/_selfreview_popup_success.html @@ -1,69 +1,68 @@ - - - Self Review Saved - - - - -
-
-

Self review saved

-

This window will close shortly and refresh the case page.

+ + + Self Review Saved + + + + +
+
+

Self review saved

+

This window will close shortly and refresh the case page.

+
-
- - + setTimeout(function () { + window.close(); + }, 700); + })(); + +