diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-03-26 15:07:19 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-07-21 15:07:41 +0200 |
commit | 18556dec8d2989f715d2251342aa4368fda857c8 (patch) | |
tree | b355300b8710c45b1f86795793ea8224b91ce6c9 /ishtar_common | |
parent | f4a1bd2de96dfc246bd89c8849f1f6188616cd9c (diff) | |
download | Ishtar-18556dec8d2989f715d2251342aa4368fda857c8.tar.bz2 Ishtar-18556dec8d2989f715d2251342aa4368fda857c8.zip |
♻️ django 3.2 deprecation: replace is_ajax by custom method
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/context_processors.py | 5 | ||||
-rw-r--r-- | ishtar_common/utils.py | 8 | ||||
-rw-r--r-- | ishtar_common/views.py | 6 |
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 8089715d3..ca78993c2 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -917,6 +917,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 50c16419c..e37136bcd 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -93,6 +93,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 @@ -771,7 +772,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: @@ -842,7 +843,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"] |