Skip to content

Commit

Permalink
Merge pull request #534 from EOxServer/thumbnails
Browse files Browse the repository at this point in the history
Thumbnails fixes
  • Loading branch information
constantinius committed Sep 9, 2022
2 parents 970fb79 + 3bae720 commit aa2a234
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 14 deletions.
3 changes: 3 additions & 0 deletions autotest/autotest/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
re_path(r'^ows', include("eoxserver.services.urls")),
re_path(r'^opensearch/', include('eoxserver.services.opensearch.urls')),

# enable the coverage URLs
re_path(r'^coverages/', include('eoxserver.resources.coverages.urls')),

# enable the client
re_path(r'^client/', include('eoxserver.webclient.urls')),

Expand Down
3 changes: 3 additions & 0 deletions eoxserver/instance_template/project_name/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@
re_path(r'^ows', include("eoxserver.services.urls")),
re_path(r'^opensearch/', include('eoxserver.services.opensearch.urls')),

# enable the coverage URLs
re_path(r'^coverages/', include('eoxserver.resources.coverages.urls')),

# enable the client
re_path(r'^client/', include('eoxserver.webclient.urls')),

Expand Down
17 changes: 17 additions & 0 deletions eoxserver/resources/coverages/registration/stac.py
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,23 @@ def register_stac_product(stac_item, product_type=None, storage=None,
asset, file_href, product, storage, browse_type
)

# adding thumbnail image, which is the first one with role thumbnail
thumbnail_asset = next(
(
asset
for asset in assets
if 'thumbnail' in asset.get('roles')
),
None
)
if thumbnail_asset:
models.MetaDataItem.objects.create(
eo_object=product,
semantic=models.MetaDataItem.semantic_names['thumbnail'],
storage=storage,
location=get_path_from_href(thumbnail_asset['href'], file_href),
)

return (product, replaced)


Expand Down
14 changes: 9 additions & 5 deletions eoxserver/resources/coverages/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
import shutil

from django.http import (
HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, FileResponse
HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, FileResponse,
Http404
)
from django.contrib.gis.geos import GEOSGeometry
from django.db import transaction
Expand Down Expand Up @@ -73,10 +74,13 @@ def metadata(request, identifier, semantic):

frmt = request.GET.get('format')

semantic_code = {
name: code
for code, name in models.MetaDataItem.SEMANTIC_CHOICES
}[semantic]
try:
semantic_code = {
name: code
for code, name in models.MetaDataItem.SEMANTIC_CHOICES
}[semantic]
except KeyError as exc:
raise Http404(semantic) from exc

qs = models.MetaDataItem.objects.filter(
eo_object__identifier=identifier, semantic=semantic_code,
Expand Down
21 changes: 12 additions & 9 deletions eoxserver/services/opensearch/formats/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
from django.http import QueryDict
from lxml.builder import ElementMaker
try:
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse, NoReverseMatch
except ImportError:
from django.urls import reverse
from django.urls import reverse, NoReverseMatch

from django.conf import settings
from django.utils.module_loading import import_string
Expand Down Expand Up @@ -300,7 +300,7 @@ def encode_item_links(self, request, collection_id, item):
)
)

if wms_small:
if thumbnail_link or wms_small:
# "Thumbnail" image
links.append(
MEDIA("content",
Expand Down Expand Up @@ -594,12 +594,15 @@ def _create_download_link(self, request, product):
def _create_thumbail_link(self, request, item):
semantic = models.MetaDataItem.semantic_codes['thumbnail']
if item.metadata_items.filter(semantic=semantic).exists():
return request.build_absolute_uri(
reverse("metadata", kwargs={
'identifier': item.identifier,
'semantic': 'thumbnail'
})
)
try:
return request.build_absolute_uri(
reverse("metadata", kwargs={
'identifier': item.identifier,
'semantic': 'thumbnail'
})
)
except NoReverseMatch:
return None

def _make_metadata_href(self, request, item, metadata_item):
semantic_name = models.MetaDataItem.semantic_names[metadata_item.semantic]
Expand Down

0 comments on commit aa2a234

Please sign in to comment.