Skip to content

Commit 50959f8

Browse files
authored
Merge branch 'develop' into show_more_table
2 parents 8f4c71b + 9f9c696 commit 50959f8

File tree

10 files changed

+77
-21
lines changed

10 files changed

+77
-21
lines changed

.github/workflows/tox.yml

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: tox
2+
on: [push, pull_request]
3+
jobs:
4+
tox-lint:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@v3
8+
- uses: actions/setup-python@v4
9+
with:
10+
python-version: "3.8"
11+
- run: pip install --upgrade pip
12+
- run: pip install tox
13+
- run: tox -e lint # Perhaps use ${{ job.name }}
14+
15+
tox-docs:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v3
19+
- uses: actions/setup-python@v4
20+
with:
21+
python-version: "3.8"
22+
- run: pip install --upgrade pip
23+
- run: pip install tox
24+
- run: tox -e docs || true # Fix error and remove "|| true"!
25+
26+
tox-docs-linkcheck:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v3
30+
- uses: actions/setup-python@v4
31+
with:
32+
python-version: "3.8"
33+
- run: pip install --upgrade pip
34+
- run: pip install tox
35+
- run: tox -e docs-linkcheck || true # Fix error and remove "|| true"!
36+
37+
# tox:
38+
# strategy:
39+
# fail-fast: false
40+
# matrix:
41+
# os: [ubuntu-latest] # [macos-latest, ubuntu-latest, windows-latest]
42+
# python: ['3.10'] # ['3.6', '3.7', '3.8', '3.9', '3.10', 'pypy-3.7']
43+
# django-version: ["==3.1.*", "==3.2.*", "==4.0.*"]
44+
# exclude:
45+
# # Django 4.0 no longer supports python 3.7
46+
# - python-version: 3.7
47+
# django-version: "==4.0.*"
48+
# runs-on: ${{ matrix.os }}
49+
# steps:
50+
# - uses: actions/checkout@v3
51+
# - uses: actions/setup-python@v4
52+
# with:
53+
# python-version: ${{ matrix.python }}
54+
# - run: pip install --upgrade pip
55+
# - run: pip install tox
56+
# - run: tox -e py

doc/twitter_pagination.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ or fuction-based::
6464
'entry_list': Entry.objects.all(),
6565
'page_template': page_template,
6666
}
67-
if request.is_ajax():
67+
if request.headers.get('x-requested-with') == 'XMLHttpRequest':
6868
template = page_template
6969
return render(request, template, context)
7070

el_pagination/decorators.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def decorated(request, *args, **kwargs):
3030
# Switch the template when the request is Ajax.
3131
querystring_key = request.GET.get(QS_KEY,
3232
request.POST.get(QS_KEY, PAGE_LABEL))
33-
if request.is_ajax() and querystring_key == key:
33+
if request.headers.get('x-requested-with') == 'XMLHttpRequest' and querystring_key == key:
3434
kwargs[TEMPLATE_VARNAME] = template
3535
return view(request, *args, **kwargs)
3636
return decorated
@@ -82,7 +82,7 @@ def decorated(request, *args, **kwargs):
8282
template = _get_template(querystring_key, mapping)
8383
extra_context['page_template'] = template
8484
# Switch the template when the request is Ajax.
85-
if request.is_ajax() and template:
85+
if request.headers.get('x-requested-with') == 'XMLHttpRequest' and template:
8686
kwargs[TEMPLATE_VARNAME] = template
8787
return view(request, *args, **kwargs)
8888
return decorated

el_pagination/models.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from __future__ import unicode_literals
33

44
from django.template import loader
5-
from django.utils.encoding import force_text, iri_to_uri
5+
from django.utils.encoding import force_str, iri_to_uri
66

77
from el_pagination import loaders, settings, utils
88

@@ -32,7 +32,7 @@ def __init__(
3232
context=None):
3333
self._request = request
3434
self.number = number
35-
self.label = force_text(number) if label is None else label
35+
self.label = force_str(number) if label is None else label
3636
self.querystring_key = querystring_key
3737
self.context = context or {}
3838
self.context['request'] = request

el_pagination/templatetags/el_pagination_tags.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from django import template
77
from django.http import Http404
8-
from django.utils.encoding import force_text, iri_to_uri
8+
from django.utils.encoding import force_str, iri_to_uri
99

1010
from el_pagination import models, settings, utils
1111
from el_pagination.paginators import DefaultPaginator, EmptyPage, LazyPaginator
@@ -701,6 +701,6 @@ def render(self, context):
701701
context['request'], querystring_key, default=default_number)
702702

703703
if self.var_name is None:
704-
return force_text(page_number)
704+
return force_str(page_number)
705705
context[self.var_name] = page_number
706706
return ''

el_pagination/tests/test_models.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from django.template import Context
88
from django.test import TestCase
99
from django.test.client import RequestFactory
10-
from django.utils.encoding import force_text
10+
from django.utils.encoding import force_str
1111

1212
from el_pagination import models as el_models
1313
from el_pagination import settings, utils
@@ -95,7 +95,7 @@ def check_page(
9595
self, page, number, is_first, is_last, is_current, label=None):
9696
"""Perform several assertions on the given page attrs."""
9797
if label is None:
98-
label = force_text(page.number)
98+
label = force_str(page.number)
9999
self.assertEqual(label, page.label)
100100
self.assertEqual(number, page.number)
101101
self.assertEqual(is_first, page.is_first)
@@ -105,7 +105,7 @@ def check_page(
105105
def check_page_list_callable(self, callable_or_path):
106106
"""Check the provided *page_list_callable* is actually used."""
107107
with local_settings(PAGE_LIST_CALLABLE=callable_or_path):
108-
rendered = force_text(self.pages.get_rendered()).strip()
108+
rendered = force_str(self.pages.get_rendered()).strip()
109109
expected = '<span class="endless_separator">...</span>'
110110
self.assertEqual(expected, rendered)
111111

@@ -181,20 +181,20 @@ def test_total_count(self):
181181
def test_page_render(self):
182182
# Ensure the page is correctly rendered.
183183
page = self.pages.first()
184-
rendered_page = force_text(page.render_link())
184+
rendered_page = force_str(page.render_link())
185185
self.assertIn('href="/"', rendered_page)
186186
self.assertIn(page.label, rendered_page)
187187

188188
def test_current_page_render(self):
189189
# Ensure the page is correctly rendered.
190190
page = self.pages.current()
191-
rendered_page = force_text(page.render_link())
191+
rendered_page = force_str(page.render_link())
192192
self.assertNotIn('href', rendered_page)
193193
self.assertIn(page.label, rendered_page)
194194

195195
def test_page_list_render(self):
196196
# Ensure the page list is correctly rendered.
197-
rendered = force_text(self.pages.get_rendered())
197+
rendered = force_str(self.pages.get_rendered())
198198
self.assertEqual(5, rendered.count('<a href'))
199199
self.assertIn(settings.PREVIOUS_LABEL, rendered)
200200
self.assertIn(settings.NEXT_LABEL, rendered)
@@ -205,7 +205,7 @@ def test_page_list_render_using_arrows(self):
205205
page_list_callable = (
206206
'el_pagination.tests.test_models.page_list_callable_arrows')
207207
with local_settings(PAGE_LIST_CALLABLE=page_list_callable):
208-
rendered = force_text(self.pages.get_rendered())
208+
rendered = force_str(self.pages.get_rendered())
209209
self.assertEqual(7, rendered.count('<a href'))
210210
self.assertIn(settings.FIRST_LABEL, rendered)
211211
self.assertIn(settings.LAST_LABEL, rendered)
@@ -215,7 +215,7 @@ def test_page_list_render_just_one_page(self):
215215
page = DefaultPaginator(range(10), 10).page(1)
216216
pages = el_models.PageList(self.request, page, self.page_label,
217217
context=Context())
218-
self.assertEqual('', force_text(pages))
218+
self.assertEqual('', force_str(pages))
219219

220220
def test_different_default_number(self):
221221
# Ensure the page path is generated based on the default number.

el_pagination/tests/test_utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def test_default(self):
4949

5050
def test_custom_querystring_key(self):
5151
# Ensure the page returned correctly reflects the ``querystring_key``.
52-
request = self.factory.get('?mypage=4')
52+
request = self.factory.get('?{0}=4'.format(PAGE_LABEL)) # noqa: F523
5353
page_number = utils.get_page_number_from_request(
5454
request, querystring_key='mypage')
5555
self.assertEqual(4, page_number)

el_pagination/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def get_template_names(self):
152152
key = 'querystring_key'
153153
querystring_key = request.GET.get(key,
154154
request.POST.get(key, PAGE_LABEL))
155-
if request.is_ajax() and querystring_key == self.key:
155+
if request.headers.get('x-requested-with') == 'XMLHttpRequest' and querystring_key == self.key:
156156
return [self.page_template or self.get_page_template()]
157157
return super(
158158
AjaxMultipleObjectTemplateResponseMixin, self).get_template_names()

tests/requirements.pip

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ coverage==4.3.4
66
django-nose==1.4.6
77
flake8
88
isort<5.0.0
9-
ipdb==0.10.2
9+
ipdb
1010
nose==1.3.7
1111
selenium<4.0
1212
sphinx==1.5.5

tox.ini

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ setenv =
3030
DJANGO_TEST_PROCESSES=1
3131

3232
[testenv:lint]
33-
basepython = python3.6
33+
basepython = python3.8
3434
commands =
3535
flake8
3636
isort --check-only -df
@@ -43,7 +43,7 @@ commands =
4343
deps =
4444
sphinx
4545
sphinx_rtd_theme
46-
basepython = python3.6
46+
basepython = python3.8
4747
changedir=doc
4848
commands =
4949
sphinx-build -W -b html -d {envtmpdir}/doctrees doc doc/_build/html
@@ -55,7 +55,7 @@ commands =
5555

5656
[testenv:docs-linkcheck]
5757
deps = {[testenv:docs]deps}
58-
basepython = python3.6
58+
basepython = python3.8
5959
commands =
6060
sphinx-build -b html -d {envtmpdir}/doctrees doc doc/_build/html
6161
sphinx-build -b linkcheck doc doc/_build/html

0 commit comments

Comments
 (0)