diff --git a/smash/web/api_urls.py b/smash/web/api_urls.py index 9440d2450cd744b59c26da1b6e4d8f608806cc8c..304f018ed9f83b9d6e3be8c5cdefa1523c4805f9 100644 --- a/smash/web/api_urls.py +++ b/smash/web/api_urls.py @@ -25,7 +25,7 @@ urlpatterns = [ url(r'^appointment_types$', appointment_type.appointment_types, name='web.api.appointment_types'), # appointments - url(r'^configuration_items$', configuration.configuration_items, name='web.api.configuration'), + url(r'^configuration_items$', configuration.configuration_items, name='web.api.configuration_items'), # subjects data url(r'^cities$', subject.cities, name='web.api.cities'), diff --git a/smash/web/api_views/configuration.py b/smash/web/api_views/configuration.py index 62d77774b8302245d2aaf9f118ee01c95a847bcc..efa7daf01d38021fc713b615bad5938ac526615f 100644 --- a/smash/web/api_views/configuration.py +++ b/smash/web/api_views/configuration.py @@ -6,14 +6,28 @@ from web.models import ConfigurationItem @login_required def configuration_items(request): + # id of the query from dataTable: https://datatables.net/manual/server-side + draw = int(request.GET.get("draw", "-1")) + + start = int(request.GET.get("start", "0")) + length = int(request.GET.get("length", "10")) + items = ConfigurationItem.objects.all() + count = items.count() + count_filtered = count + + sliced_items = items[start:(start + length)] + data = [] - for configuration_item in items: + for configuration_item in sliced_items: data.append({ "id": configuration_item.id, "name": configuration_item.name, "value": configuration_item.value }) return JsonResponse({ + "draw": draw, + "recordsTotal": count, + "recordsFiltered": count_filtered, "data": data })