diff --git a/atlas/templates/atlas/collection_case_view_take.html b/atlas/templates/atlas/collection_case_view_take.html
index b21dcdcc..15c7a0f4 100644
--- a/atlas/templates/atlas/collection_case_view_take.html
+++ b/atlas/templates/atlas/collection_case_view_take.html
@@ -668,8 +668,9 @@
});
window.openSelfReviewPopup = function (url) {
+ var popupUrl = url + (url.indexOf('?') === -1 ? '?popup=1' : '&popup=1');
var features = 'width=980,height=840,resizable=yes,scrollbars=yes';
- window.open(url, 'selfReviewPopup', features);
+ window.open(popupUrl, 'selfReviewPopup', features);
};
window.selfReviewCurrentEmbedUrl = null;
@@ -704,7 +705,10 @@
if (resp.redirected) {
root.innerHTML = '
Self review saved. You can continue reviewing this case.
';
- setTimeout(function () { window.closeSelfReviewSidebar(); }, 700);
+ setTimeout(function () {
+ window.closeSelfReviewSidebar();
+ window.location.reload();
+ }, 500);
return;
}
diff --git a/atlas/templates/atlas/partials/_selfreview_popup_success.html b/atlas/templates/atlas/partials/_selfreview_popup_success.html
new file mode 100644
index 00000000..5c7417aa
--- /dev/null
+++ b/atlas/templates/atlas/partials/_selfreview_popup_success.html
@@ -0,0 +1,69 @@
+
+
+
+
+ Self Review Saved
+
+
+
+
+
+
+
Self review saved
+
This window will close shortly and refresh the case page.
+
+
+
+
+
+
diff --git a/atlas/views.py b/atlas/views.py
index 9af89cd1..45a8f7be 100755
--- a/atlas/views.py
+++ b/atlas/views.py
@@ -5674,10 +5674,30 @@ class SelfReviewUpdate(UpdateView):
context["case"] = self.case
context["review"] = self.review
context["embed"] = self.request.GET.get("embed") == "1"
+ context["popup"] = self.request.GET.get("popup") == "1"
return context
def get_success_url(self) -> str:
- return self.user_exam.exam.get_case_take_url(self.case)
+ if getattr(self, "object", None) is not None:
+ return self.object.user_exam.exam.get_case_take_url(self.object.case)
+
+ user_exam_id = self.kwargs["user_exam_id"]
+ case_id = self.kwargs["case_id"]
+ user_exam = get_object_or_404(CidUserExam, pk=user_exam_id)
+ case = get_object_or_404(Case, pk=case_id)
+ return user_exam.exam.get_case_take_url(case)
+
+ def form_valid(self, form):
+ self.object = form.save()
+
+ if self.request.GET.get("popup") == "1":
+ return render(
+ self.request,
+ "atlas/partials/_selfreview_popup_success.html",
+ {"target_url": self.get_success_url()},
+ )
+
+ return HttpResponseRedirect(self.get_success_url())
# def get_object(self):
# return self.review
@@ -5728,10 +5748,30 @@ class AddSelfReview(CreateView):
context["user_exam"] = self.user_exam
context["case"] = self.case
context["embed"] = self.request.GET.get("embed") == "1"
+ context["popup"] = self.request.GET.get("popup") == "1"
return context
def get_success_url(self) -> str:
- return self.user_exam.exam.get_case_take_url(self.case)
+ if getattr(self, "object", None) is not None:
+ return self.object.user_exam.exam.get_case_take_url(self.object.case)
+
+ user_exam_id = self.kwargs["user_exam_id"]
+ case_id = self.kwargs["case_id"]
+ user_exam = get_object_or_404(CidUserExam, pk=user_exam_id)
+ case = get_object_or_404(Case, pk=case_id)
+ return user_exam.exam.get_case_take_url(case)
+
+ def form_valid(self, form):
+ self.object = form.save()
+
+ if self.request.GET.get("popup") == "1":
+ return render(
+ self.request,
+ "atlas/partials/_selfreview_popup_success.html",
+ {"target_url": self.get_success_url()},
+ )
+
+ return HttpResponseRedirect(self.get_success_url())
# return reverse("atlas:collection_take_overview_user", kwargs={"pk": self.user_exam.collection.id })