summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-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 5442b08fe..af0c1aff4 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 _, get_language
-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
@@ -103,7 +104,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 bd20e4919..c503c42b9 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"]