summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-06-26 14:14:12 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-06-26 14:14:12 +0200
commit18d95208a6cfe3cfe03edcc333deff3af14ee6fd (patch)
tree8d461bf2227807da8be2bb45bbaddfb94e5f084d
parent886425410c20585a6cbf2003b98b406812f2478f (diff)
downloadIshtar-18d95208a6cfe3cfe03edcc333deff3af14ee6fd.tar.bz2
Ishtar-18d95208a6cfe3cfe03edcc333deff3af14ee6fd.zip
✨ JS - manage reload on modal close with tab activation for direct action url
-rw-r--r--archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html2
-rw-r--r--archaeological_finds/views.py9
-rw-r--r--ishtar_common/static/js/ishtar.js16
3 files changed, 21 insertions, 6 deletions
diff --git a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html
index c546cf725..09cee8cd7 100644
--- a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html
+++ b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html
@@ -20,7 +20,7 @@
<i class="fa fa-plus"></i> doc./image
</a>
{% if not statement_condition.initial or statement_condition.no_associated_statement_condition %}
- <a class="btn-qa-confirm btn btn-danger" href="#" data-confirm="{% trans 'Are you sure to delete this statement condition?' %}" data-target="{% url 'find-statement-condition-delete' statement_condition.pk %}" title="{% trans 'Delete' %}">
+ <a class="btn-qa-confirm btn btn-danger" href="#" data-confirm="{% trans 'Are you sure to delete this statement condition?' %}" data-target="{% url 'find-statement-condition-delete' statement_condition.pk %}" title="{% trans 'Delete' %}" data-window="{{sheet_id}}" data-window-tab="warehouse-tab">
<i class="fa fa-trash" aria-hidden="true"></i>
</a>
{% endif %}
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index b6ee6f37d..63301f778 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -1608,7 +1608,10 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None,
request.POST, current_item=item, user=request.user.ishtaruser)
if form.is_valid():
form.save()
- return HttpResponseRedirect(reverse("success"))
+ url = reverse("success")
+ message = str(_("Changes made successfully."))
+ url += "?message=" + urllib.parse.quote(message)
+ return HttpResponseRedirect(url)
else:
form = forms_treatments.QAStatementCondition(
current_item=item, user=request.user.ishtaruser, initial=initial)
@@ -1623,7 +1626,9 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None,
url += "add"
window_id = request.GET.get("window_id", "")
window_tab = "warehouse-tab"
- reload = "reload_window_" + window_id.replace("-", "_")
+ reload = ""
+ if window_id:
+ reload = "reload_window_" + window_id.replace("-", "_")
window_id_root = "-".join(window_id.split("-")[:-1])
return render(
request,
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js
index 3835d8677..cb3638e1c 100644
--- a/ishtar_common/static/js/ishtar.js
+++ b/ishtar_common/static/js/ishtar.js
@@ -1049,7 +1049,8 @@ var register_qa = function(){
$(".btn-qa").click(function(){
let target = $(this).attr('data-target');
let window_id = $(this).attr('data-window');
- dt_qa_open(target, null, window_id);
+ let window_tab = $(this).attr('data-window-tab');
+ dt_qa_open(target, null, window_id, window_tab);
});
};
@@ -1059,7 +1060,8 @@ var register_qa_confirm = function(){
let target = $(this).attr('data-target');
if (!confirm(confirm_message)) return;
let window_id = $(this).attr('data-window');
- dt_qa_open(target, null, window_id);
+ let window_tab = $(this).attr('data-window-tab');
+ dt_qa_open(target, null, window_id, window_tab);
});
};
@@ -1264,7 +1266,7 @@ var dt_generate_qa_url = function (table, url){
return url;
};
-var dt_qa_open = function (url, modal_id, window_id){
+var dt_qa_open = function (url, modal_id, window_id, window_tab){
if (!modal_id) modal_id = "modal-dynamic-form";
if (!$('#' + modal_id).length){
let src = '<div class="modal" id="' + modal_id + '" tabindex="-1" role="dialog"';
@@ -1290,6 +1292,14 @@ var dt_qa_open = function (url, modal_id, window_id){
$('#' + modal_id).modal("show");
let table_scroll_height = $(window).height() - 180;
$(".table-scroll table").height(table_scroll_height + "px");
+ if (window_id && window_tab){
+ // reload the content and activate the tab
+ let current_window_id = $("div.card.sheet[id^=" + window_id + "]").attr('id').replaceAll('-', "_");
+ let parameters = {};
+ parameters["window-id"] = window_id;
+ parameters["window-tab"] = window_tab;
+ window["reload_window_" + current_window_id](parameters);
+ }
},
data: data,
error: function() {