mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-04 06:06:19 +01:00
Merge branch 'fix-pagination' into 'master'
[FIX] Count filtered records before applying the limit See merge request allianceauth/allianceauth!1790
This commit is contained in:
@@ -195,6 +195,9 @@ class DataTablesView(View):
|
|||||||
*self.get_order(table_conf)
|
*self.get_order(table_conf)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Get the count after filtering
|
||||||
|
qs_count = qs.count()
|
||||||
|
|
||||||
# build output
|
# build output
|
||||||
if length > 0:
|
if length > 0:
|
||||||
qs = qs[start:limit]
|
qs = qs[start:limit]
|
||||||
@@ -210,7 +213,7 @@ class DataTablesView(View):
|
|||||||
datatables_data = {}
|
datatables_data = {}
|
||||||
datatables_data['draw'] = draw
|
datatables_data['draw'] = draw
|
||||||
datatables_data['recordsTotal'] = self.get_model_qs(request, *args, **kwargs).all().count()
|
datatables_data['recordsTotal'] = self.get_model_qs(request, *args, **kwargs).all().count()
|
||||||
datatables_data['recordsFiltered'] = qs.count()
|
datatables_data['recordsFiltered'] = qs_count
|
||||||
datatables_data['data'] = items
|
datatables_data['data'] = items
|
||||||
|
|
||||||
return JsonResponse(datatables_data)
|
return JsonResponse(datatables_data)
|
||||||
|
|||||||
@@ -144,6 +144,16 @@ class TestDataTables(TestCase):
|
|||||||
self.assertEqual(data[0][0], "1001")
|
self.assertEqual(data[0][0], "1001")
|
||||||
self.assertEqual(data[19][0], "1020")
|
self.assertEqual(data[19][0], "1020")
|
||||||
|
|
||||||
|
def test_records_filtered(self):
|
||||||
|
self.get_params["length"] = "20"
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||||
|
response = TestView()
|
||||||
|
response.setup(request)
|
||||||
|
content = json.loads(response.get(request).content)
|
||||||
|
self.assertEqual(content["recordsFiltered"], 20)
|
||||||
|
self.assertEqual(content["recordsTotal"], 20)
|
||||||
|
|
||||||
def test_view_global_search(self):
|
def test_view_global_search(self):
|
||||||
self.get_params["search[value]"] = "1020"
|
self.get_params["search[value]"] = "1020"
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
|
|||||||
Reference in New Issue
Block a user