mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-03 21:56:20 +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)
|
||||
)
|
||||
|
||||
# Get the count after filtering
|
||||
qs_count = qs.count()
|
||||
|
||||
# build output
|
||||
if length > 0:
|
||||
qs = qs[start:limit]
|
||||
@@ -210,7 +213,7 @@ class DataTablesView(View):
|
||||
datatables_data = {}
|
||||
datatables_data['draw'] = draw
|
||||
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
|
||||
|
||||
return JsonResponse(datatables_data)
|
||||
|
||||
@@ -144,6 +144,16 @@ class TestDataTables(TestCase):
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
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):
|
||||
self.get_params["search[value]"] = "1020"
|
||||
self.client.force_login(self.user)
|
||||
|
||||
Reference in New Issue
Block a user