#118 API pagination
* adds pagination and related parameters to GET apis * updates api GET test
This commit is contained in:
@@ -10,6 +10,7 @@ from abc import abstractmethod
|
||||
|
||||
from django.contrib.gis import geos
|
||||
from django.contrib.gis.geos import GEOSGeometry
|
||||
from django.core.paginator import Paginator
|
||||
|
||||
from konova.utils.message_templates import DATA_UNSHARED
|
||||
|
||||
@@ -19,6 +20,10 @@ class AbstractModelAPISerializer:
|
||||
lookup = None
|
||||
properties_data = None
|
||||
|
||||
rpp = None
|
||||
page_number = None
|
||||
paginator = None
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
@@ -80,9 +85,12 @@ class AbstractModelAPISerializer:
|
||||
Returns:
|
||||
serialized_data (dict)
|
||||
"""
|
||||
entries = self.model.objects.filter(**self.lookup)
|
||||
entries = self.model.objects.filter(**self.lookup).order_by("id")
|
||||
self.paginator = Paginator(entries, self.rpp)
|
||||
requested_entries = self.paginator.page(self.page_number)
|
||||
|
||||
serialized_data = {}
|
||||
for entry in entries:
|
||||
for entry in requested_entries.object_list:
|
||||
serialized_data[str(entry.id)] = self._model_to_geo_json(entry)
|
||||
return serialized_data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user