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.data.models import CellBase, ConfigJsonCell
from combo.public.views import render_cell from combo.public.views import render_cell
from combo.utils import is_ajax
from .models import DashboardCell, Tile from .models import DashboardCell, Tile
from .templatetags.dashboard import get_cell_data 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): def dashboard_success(request, dashboard, cell_data):
dashboard_url = dashboard.page.get_online_url() dashboard_url = dashboard.page.get_online_url()
if request.is_ajax(): if is_ajax(request):
return HttpResponse( return HttpResponse(
json.dumps({'err': 0, 'url': request.build_absolute_uri(dashboard_url), 'cell_data': cell_data}), json.dumps({'err': 0, 'url': request.build_absolute_uri(dashboard_url), 'cell_data': cell_data}),
content_type='application/json', 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.data.models import Page
from combo.profile.utils import get_user_from_name_id from combo.profile.utils import get_user_from_name_id
from combo.public.views import publish_page 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 ( from .models import (
EXPIRED, EXPIRED,
@ -844,7 +844,7 @@ class ItemView(TemplateView):
return {'item': None, 'err_desc': _('No item was found.')} return {'item': None, 'err_desc': _('No item was found.')}
def get_template_names(self): def get_template_names(self):
if self.request.is_ajax: if is_ajax(self.request):
return ['lingo/combo/item.html'] return ['lingo/combo/item.html']
return ['lingo/combo/invoice_fullpage.html'] return ['lingo/combo/invoice_fullpage.html']

View File

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

View File

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

View File

@ -17,7 +17,7 @@
# import specific symbols for compatibility # import specific symbols for compatibility
from .cache import cache_during_request from .cache import cache_during_request
from .crypto import DecryptionError, aes_hex_decrypt, aes_hex_encrypt 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 .requests_wrapper import NothingInCacheException, requests
from .signature import check_query, check_request_signature, sign_url from .signature import check_query, check_request_signature, sign_url
from .urls import TemplateError, get_templated_url, is_templated_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'): if service.get('is-portal-agent') and not service.get('secret'):
return True return True
return False return False
def is_ajax(request):
return request.headers.get('x-requested-with') == 'XMLHttpRequest'