summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-26 15:07:19 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-06-13 18:08:06 +0200
commitf83a1ca1190d2357f668ea182c7b20181fe117e7 (patch)
treeb9f0095cffd72449c2d261f50b0427426a55852a
parent62e6c83e6d4c901a7c511a195e696ee81b29eba8 (diff)
downloadIshtar-f83a1ca1190d2357f668ea182c7b20181fe117e7.tar.bz2
Ishtar-f83a1ca1190d2357f668ea182c7b20181fe117e7.zip
♻️ django 3.2 deprecation: replace is_ajax by custom method
-rw-r--r--ishtar_common/context_processors.py5
-rw-r--r--ishtar_common/utils.py8
-rw-r--r--ishtar_common/views.py6
3 files changed, 15 insertions, 4 deletions
diff --git a/ishtar_common/context_processors.py b/ishtar_common/context_processors.py
index 77040e496..b046631f3 100644
--- a/ishtar_common/context_processors.py
+++ b/ishtar_common/context_processors.py
@@ -27,9 +27,10 @@ from django.contrib.sites.models import Site
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
-from ishtar_common.version import __version__
from ishtar_common.models import get_current_profile
from ishtar_common.models_rest import ApiExternalSource, ApiKeyMatch
+from ishtar_common.utils import is_xmlhttprequest
+from ishtar_common.version import __version__
from bootstrap_datepicker.widgets import DatePicker
from .menus import Menu
@@ -102,7 +103,7 @@ def get_base_context(request):
dct["SITE_PROFILE"] = get_current_profile()
- is_main_page = not request.is_ajax() and not getattr(request, "is_js", False)
+ is_main_page = not is_xmlhttprequest(request) and not getattr(request, "is_js", False)
# messages
dct["MESSAGES"] = []
if (
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index b4437b367..7f0808602 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -911,6 +911,14 @@ def is_downloadable(curl):
return True
+def is_xmlhttprequest(request):
+ """
+ Replace "is_ajax".
+ Be careful: do not work with Fetch API.
+ """
+ return request.headers.get('x-requested-with') == 'XMLHttpRequest'
+
+
def get_file_from_link(file_link):
"""
return filename and temp_file object from a web link
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index d46cd3323..73511c03e 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -92,6 +92,7 @@ from ishtar_common.utils import (
put_session_message,
get_model_by_slug,
human_date,
+ is_xmlhttprequest
)
from ishtar_common.widgets import JQueryAutoComplete
from ishtar_common import tasks
@@ -770,7 +771,7 @@ def unpin(request, item_type, cascade=False):
def update_current_item(request, item_type=None, pk=None):
if not item_type or not pk:
- if not request.is_ajax() and not request.method == "POST":
+ if not is_xmlhttprequest(request) and not request.method == "POST":
raise Http404
item_type = request.POST["item"]
if "value" in request.POST and "item" in request.POST:
@@ -841,7 +842,8 @@ def pin_search(request, item_type):
item_type = "administrativeact"
key = "pin-search-" + item_type
if not item_type or not (
- request.is_ajax() and request.method == "POST" and "value" in request.POST
+ is_xmlhttprequest(request) and request.method == "POST"
+ and "value" in request.POST
):
raise Http404
request.session[key] = request.POST["value"]