diff --git a/ckanext/spatial/lib/csw_client.py b/ckanext/spatial/lib/csw_client.py index 6da2062..a592464 100644 --- a/ckanext/spatial/lib/csw_client.py +++ b/ckanext/spatial/lib/csw_client.py @@ -6,7 +6,7 @@ for convenience. import logging from owslib.etree import etree -from owslib.fes import PropertyIsEqualTo +from owslib.fes import PropertyIsEqualTo, SortBy, SortProperty log = logging.getLogger(__name__) @@ -66,6 +66,11 @@ class CswService(OwsService): Perform various operations on a CSW service """ from owslib.csw import CatalogueServiceWeb as _Implementation + + def __init__(self): + super(CswService, self).__init__() + self.sortby = SortBy([SortProperty('dc:identifier')]) + def getrecords(self, qtype=None, keywords=[], typenames="csw:Record", esn="brief", skip=0, count=10, outputschema="gmd", **kw): @@ -83,6 +88,7 @@ class CswService(OwsService): "startposition": skip, "maxrecords": count, "outputschema": namespaces[outputschema], + "sortby": self.sortby } log.info('Making CSW request: getrecords2 %r', kwa) csw.getrecords2(**kwa) @@ -110,7 +116,8 @@ class CswService(OwsService): "startposition": startposition, "maxrecords": page, "outputschema": namespaces[outputschema], - "cql":cql, + "cql": cql, + "sortby": self.sortby } i = 0 matches = 0