diff --git a/.circleci/config.yml b/.circleci/config.yml index d541f4c5..534a3cdc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,11 +28,11 @@ commands: steps: - run: name: Install Codecov client - command: pip install codecov==2.1.9 + command: pip install codecov - run: name: Upload coverage # Retry as codecov can be flaky - command: for i in $(seq 1 10); do [ $i -gt 1 ] && echo "retrying $i" && sleep 5; codecov --required --disable search pycov gcov --root project --file .tox/coverage/py_coverage.xml .tox/coverage/cobertura-coverage.xml && s=0 && break || s=$?; done; (exit $s) + command: for i in $(seq 1 10); do [ $i -gt 1 ] && echo "retrying $i" && sleep 5; codecov --disable search pycov gcov --file .tox/coverage/py_coverage.xml .tox/coverage/cobertura-coverage.xml && s=0 && break || s=$?; done; (exit $s) jobs: py36: diff --git a/histomicsui/rest/image_browse_resource.py b/histomicsui/rest/image_browse_resource.py index c31d5212..f3ff3332 100644 --- a/histomicsui/rest/image_browse_resource.py +++ b/histomicsui/rest/image_browse_resource.py @@ -1,3 +1,4 @@ +import girder_large_image from girder.api import access from girder.api.describe import Description, autoDescribeRoute from girder.api.v1.item import Item as ItemResource @@ -31,10 +32,22 @@ def getAdjacentImages(self, currentImage, currentFolder=None): folder = folderModel.load( currentImage['folderId'], user=self.getCurrentUser(), level=AccessType.READ) + sort = [('name', 1)] + try: + conf = girder_large_image.YAMLConfigFile( + folder, '.large_image_config.yaml', self.getCurrentUser()) + if conf['itemList']['defaultSort']: + sort = [( + ('meta.' if entry['type'] == 'metadata' else '') + entry['value'], + 1 if entry['dir'] == 'down' else -1) + for entry in conf['itemList']['defaultSort']] + except Exception: + pass + if folder.get('isVirtual'): - children = folderModel.childItems(folder, sort=[('name', 1)], includeVirtual=True) + children = folderModel.childItems(folder, sort=sort, includeVirtual=True) else: - children = folderModel.childItems(folder, sort=[('name', 1)]) + children = folderModel.childItems(folder, sort=sort) allImages = [item for item in children if _isLargeImageItem(item)] try: