Skip to content

Commit

Permalink
implement sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
nicokant committed Nov 10, 2023
1 parent 95969a3 commit 9c7af04
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
11 changes: 11 additions & 0 deletions metadata_catalogue/datasets/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
from .libs.csw_mapping import CSWMapping
from .libs.csw_query import Group

SORT_CONFIG = {
"title": "metadata__title",
}


class DatasetQuerySet(models.QuerySet):
def as_csw(self, *args, warn=True, **kwargs):
Expand All @@ -21,6 +25,13 @@ def csw_filter(self, filter):
return q
return self

def csw_sort(self, sort):
try:
return self.order_by(f'{"-" if sort["order"] == "DESC" else ""}{SORT_CONFIG[sort["propertyname"]]}')
except KeyError:
logger.warn(f"Not implemented! {sort.propertyname}")
return self


class DatasetManager(models.Manager):
def get_queryset(self):
Expand Down
3 changes: 2 additions & 1 deletion metadata_catalogue/datasets/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ def query(self, constraint, sortby=None, typenames=None, maxrecords=10, startpos
limit = int(maxrecords)
offset = int(startposition)
query = Dataset.objects.csw_filter(constraint)
# TODO: sort
if sortby:
query = query.csw_sort(sortby)
return [str(query.count()), query[offset : offset + limit].as_csw()]

# # run the raw query and get total
Expand Down

0 comments on commit 9c7af04

Please sign in to comment.