Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
062b432
Added the flow for feeds of continents and oceans
uxairibrar May 26, 2025
f646ca1
Adding test data for publication
uxairibrar May 29, 2025
e1301a2
Added different formats
uxairibrar May 31, 2025
863b3e6
Merge remote-tracking branch 'origin/main' into features/feeds_oceans…
uxairibrar May 31, 2025
a88deeb
Updated PR Issues
uxairibrar Jun 23, 2025
1be5672
Merge remote-tracking branch 'origin/main' into features/feeds_oceans…
uxairibrar Jun 23, 2025
95d1829
Merge conflicting 0003 migrations in publications
uxairibrar Jun 23, 2025
9598446
Updated the Readme
uxairibrar Jun 23, 2025
cd9ca95
Add comment about manualy data source closing
nuest Jun 24, 2025
dab5e56
Discard changes to publications/templates/footer.html
nuest Jun 24, 2025
d2b1b30
Re-add feeds without formatting to footer.html
nuest Jun 24, 2025
4feeae1
Remove formatting only changes
nuest Jun 24, 2025
ca2d1af
Updated URL and Test File
uxairibrar Jul 7, 2025
e7c70ef
Updated Path
uxairibrar Jul 7, 2025
6615e70
Merge branch 'main' into features/feeds_oceans_continents
nuest Jul 8, 2025
a95043e
reset migrations and update fixture
nuest Jul 8, 2025
2ce23d6
reformat feeds HTML page
nuest Jul 8, 2025
50b47df
include load_global_regions in README and only download unless existing
nuest Jul 8, 2025
a5ff73a
remove unused import
nuest Jul 8, 2025
f930f0c
rename test file and add fix most tests for feeds
nuest Jul 8, 2025
f59ea74
add admin UI for GlobalRegions
nuest Jul 8, 2025
1416e16
ignore cached global region geometries file
nuest Jul 8, 2025
6b16f9c
Resolved Global_Feeds Issue
uxairibrar Jul 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
273 changes: 273 additions & 0 deletions fixtures/test_data_global_feeds.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,273 @@
[
{
"model": "publications.publication",
"pk": 4,
"fields": {
"status": "p",
"title": "First Africa Publication",
"abstract": "Sample publication covering a cluster of ca. 5–6 major cities in West Africa.",
"publicationDate": "2025-05-29",
"doi": "10.5555/africa1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((3.0000 4.5000, 9.0000 4.5000, 9.0000 12.5000, 3.0000 12.5000, 3.0000 4.5000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Africa Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Africa multi-city test."
}
},

{
"model": "publications.publication",
"pk": 5,
"fields": {
"status": "p",
"title": "First Asia Publication",
"abstract": "Sample publication covering a cluster of ca. 5–6 major cities in the Beijing area.",
"publicationDate": "2025-05-29",
"doi": "10.5555/asia1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((116.0000 39.0000, 118.0000 39.0000, 118.0000 41.0000, 116.0000 41.0000, 116.0000 39.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Asia Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Asia multi-city test."
}
},

{
"model": "publications.publication",
"pk": 6,
"fields": {
"status": "p",
"title": "First Europe Publication",
"abstract": "Sample publication covering a cluster of ca. 5–6 major cities around Berlin.",
"publicationDate": "2025-05-29",
"doi": "10.5555/europe1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((13.1300 52.3700, 13.6800 52.3700, 13.6800 52.6700, 13.1300 52.6700, 13.1300 52.3700)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Europe Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Europe multi-city test."
}
},

{
"model": "publications.publication",
"pk": 7,
"fields": {
"status": "p",
"title": "First North America Publication",
"abstract": "Sample publication covering a cluster of ca. 5–6 major cities around New York City.",
"publicationDate": "2025-05-29",
"doi": "10.5555/northamerica1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-74.1600 40.5400, -73.8100 40.5400, -73.8100 40.9400, -74.1600 40.9400, -74.1600 40.5400)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "North America Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for North America multi-city test."
}
},

{
"model": "publications.publication",
"pk": 8,
"fields": {
"status": "p",
"title": "First South America Publication",
"abstract": "Sample publication covering a cluster of ca. 5–6 major cities around São Paulo.",
"publicationDate": "2025-05-29",
"doi": "10.5555/southamerica1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-47.0000 -23.8000, -46.2500 -23.8000, -46.2500 -23.3000, -47.0000 -23.3000, -47.0000 -23.8000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "South America Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for South America multi-city test."
}
},

{
"model": "publications.publication",
"pk": 9,
"fields": {
"status": "p",
"title": "First Antarctica Publication",
"abstract": "Sample publication located in the small site-sized polygon around McMurdo Station.",
"publicationDate": "2025-05-29",
"doi": "10.5555/antarctica1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((166.60 -77.90, 166.70 -77.90, 166.70 -77.80, 166.60 -77.80, 166.60 -77.90)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Antarctica Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Antarctica site test."
}
},
{
"model": "publications.publication",
"pk": 10,
"fields": {
"status": "p",
"title": "First Australia Publication",
"abstract": "Sample publication located in the small city-sized polygon around central Sydney.",
"publicationDate": "2025-05-29",
"doi": "10.5555/australia1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((151.20 -33.90, 151.30 -33.90, 151.30 -33.80, 151.20 -33.80, 151.20 -33.90)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Australia Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Australia city test."
}
},
{
"model": "publications.publication",
"pk": 11,
"fields": {
"status": "p",
"title": "First South Atlantic Ocean Publication",
"abstract": "Sample publication covering a small survey area in the South Atlantic Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/southatlantic1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-25.0000 -25.0000, -15.0000 -25.0000, -15.0000 -15.0000, -25.0000 -15.0000, -25.0000 -25.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for South Atlantic Ocean small‐area test."
}
},
{
"model": "publications.publication",
"pk": 12,
"fields": {
"status": "p",
"title": "First Southern Ocean Publication",
"abstract": "Sample publication covering a small research area in the Southern Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/southernocean1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-30.0000 -60.0000, 30.0000 -60.0000, 30.0000 -50.0000, -30.0000 -50.0000, -30.0000 -60.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Southern Ocean small‐area test."
}
},
{
"model": "publications.publication",
"pk": 13,
"fields": {
"status": "p",
"title": "First Indian Ocean Publication",
"abstract": "Sample publication covering a small survey area in the Indian Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/indianocean1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((70.0000 -10.0000, 80.0000 -10.0000, 80.0000 0.0000, 70.0000 0.0000, 70.0000 -10.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Indian Ocean small‐area test."
}
},
{
"model": "publications.publication",
"pk": 14,
"fields": {
"status": "p",
"title": "First North Pacific Ocean Publication",
"abstract": "Sample publication covering a small sampling area in the North Pacific Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/northpacific1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-140.0000 30.0000, -130.0000 30.0000, -130.0000 40.0000, -140.0000 40.0000, -140.0000 30.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for North Pacific Ocean small‐area test."
}
},
{
"model": "publications.publication",
"pk": 15,
"fields": {
"status": "p",
"title": "First North Atlantic Ocean Publication",
"abstract": "Sample publication covering a small sampling area in the North Atlantic Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/northatlantic1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-40.0000 30.0000, -30.0000 30.0000, -30.0000 40.0000, -40.0000 40.0000, -40.0000 30.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for North Atlantic Ocean small‐area test."
}
},
{
"model": "publications.publication",
"pk": 16,
"fields": {
"status": "p",
"title": "First Arctic Ocean Publication",
"abstract": "Sample publication covering a small survey area in the Arctic Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/arcticocean1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-20.0000 70.0000, 20.0000 70.0000, 20.0000 80.0000, -20.0000 80.0000, -20.0000 70.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for Arctic Ocean small‐area test."
}
},
{
"model": "publications.publication",
"pk": 17,
"fields": {
"status": "p",
"title": "First South Pacific Ocean Publication",
"abstract": "Sample publication covering a small research area in the South Pacific Ocean.",
"publicationDate": "2025-05-29",
"doi": "10.5555/southpacific1",
"url": null,
"geometry": "SRID=4326;GEOMETRYCOLLECTION(POLYGON ((-140.0000 -20.0000, -130.0000 -20.0000, -130.0000 -10.0000, -140.0000 -10.0000, -140.0000 -20.0000)))",
"creationDate": "2025-05-29T12:00:00Z",
"lastUpdate": "2025-05-29T12:00:00Z",
"source": "Marine Test Journal",
"timeperiod_startdate": "[\"2025-01-01\"]",
"timeperiod_enddate": "[\"2025-12-31\"]",
"provenance": "Manually added for South Pacific Ocean small‐area test."
}
}
]
42 changes: 42 additions & 0 deletions publications/feeds_geometry.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

import logging
import urllib.parse
from django.http import JsonResponse
from django.contrib.syndication.views import Feed
from .feeds import GeoFeed
from .models import GlobalRegion, Publication
from django.conf import settings
logger = logging.getLogger(__name__)

class GeoFeedByGeometry(GeoFeed):
def __init__(self, feed_type_variant="georss"):
super().__init__(feed_type_variant=feed_type_variant)

def get_object(self, request, geometry_slug):
decoded = urllib.parse.unquote(geometry_slug).strip().lower()
if decoded.endswith(".geojson"):
decoded = decoded[:-len(".geojson")]
decoded = decoded.replace("_", " ").replace("-", " ")

try:
region = GlobalRegion.objects.get(name=decoded)
return region

except GlobalRegion.DoesNotExist:
logger.warning("Region not found (no name match): %r", decoded)

def items(self, region):
return (
Publication.objects.filter(
status="p",
geometry__isnull=False,
geometry__intersects=region.geom,
)
.order_by("-creationDate")[:10]
)

def item_link(self, item):
if item.url:
return item.url
else:
return ""
Loading
Loading