django4: replaced deprecated request.is_ajax() call (#68585)

This commit is contained in:
Agate 2022-08-31 15:54:14 +02:00
parent c81c303e0a
commit 9492991c9d
6 changed files with 13 additions and 8 deletions

View File

@ -37,6 +37,7 @@ from rest_framework.response import Response
from combo.data.models import CellBase, ConfigJsonCell
from combo.public.views import render_cell
from combo.utils import is_ajax
from .models import DashboardCell, Tile
from .templatetags.dashboard import get_cell_data
@ -45,7 +46,7 @@ from .templatetags.dashboard import get_cell_data
def dashboard_success(request, dashboard, cell_data):
dashboard_url = dashboard.page.get_online_url()
if request.is_ajax():
if is_ajax(request):
return HttpResponse(
json.dumps({'err': 0, 'url': request.build_absolute_uri(dashboard_url), 'cell_data': cell_data}),
content_type='application/json',

View File

@ -49,7 +49,7 @@ from django.views.generic import DetailView, ListView, TemplateView, View
from combo.data.models import Page
from combo.profile.utils import get_user_from_name_id
from combo.public.views import publish_page
from combo.utils import DecryptionError, aes_hex_decrypt, check_request_signature
from combo.utils import DecryptionError, aes_hex_decrypt, check_request_signature, is_ajax
from .models import (
EXPIRED,
@ -844,7 +844,7 @@ class ItemView(TemplateView):
return {'item': None, 'err_desc': _('No item was found.')}
def get_template_names(self):
if self.request.is_ajax:
if is_ajax(self.request):
return ['lingo/combo/item.html']
return ['lingo/combo/invoice_fullpage.html']

View File

@ -66,7 +66,7 @@ from combo.data.utils import (
import_site_tar,
)
from combo.urls_utils import staff_required
from combo.utils.misc import is_portal_agent
from combo.utils.misc import is_ajax, is_portal_agent
from .forms import (
CellDuplicateForm,
@ -1043,7 +1043,7 @@ class PageListCellEditLinkView(ManagedPageMixin, UpdateView):
return self.model().get_form_class_for_link_list_cell()
def form_valid(self, form):
if self.request.is_ajax():
if is_ajax(self.request):
self.object = form.save()
response = self.form_invalid(form) # avoid redirection
else:

View File

@ -141,7 +141,7 @@ def ajax_page_cell(request, page_pk, cell_reference):
action_response = cell.post(request)
except PostException as e:
exception = e
if not request.is_ajax():
if not utils.is_ajax(request):
messages.error(request, force_str(e) if force_str(e) != 'None' else _('Error sending data.'))
if action_response:
@ -152,7 +152,7 @@ def ajax_page_cell(request, page_pk, cell_reference):
response['Content-Disposition'] = action_response.headers['Content-Disposition']
return response
if not request.is_ajax():
if not utils.is_ajax(request):
return HttpResponseRedirect(cell.page.get_online_url())
response = render_cell(request, cell)

View File

@ -17,7 +17,7 @@
# import specific symbols for compatibility
from .cache import cache_during_request
from .crypto import DecryptionError, aes_hex_decrypt, aes_hex_encrypt
from .misc import ellipsize, flatten_context
from .misc import ellipsize, flatten_context, is_ajax
from .requests_wrapper import NothingInCacheException, requests
from .signature import check_query, check_request_signature, sign_url
from .urls import TemplateError, get_templated_url, is_templated_url

View File

@ -64,3 +64,7 @@ def is_portal_agent():
if service.get('is-portal-agent') and not service.get('secret'):
return True
return False
def is_ajax(request):
return request.headers.get('x-requested-with') == 'XMLHttpRequest'