Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f16489a
add generic Keyword model in vocabularies
aperrin66 May 12, 2025
b1e3619
add keywords, location and tags fields to Dataset
aperrin66 May 12, 2025
9facf41
add migration to populate new dataset location field
aperrin66 May 12, 2025
9a09655
change dataset fields order
aperrin66 May 13, 2025
a87e127
add migration to populate new Keyword model
aperrin66 May 13, 2025
93cb2f5
add JSON field to Parameter (temporary nullable)
aperrin66 May 13, 2025
0ac6600
add migration to populate new Parameter.data field
aperrin66 May 13, 2025
f2a155b
make Parameter.data unique
aperrin66 May 13, 2025
e6d1a13
remove obsolete catalog models + add migration
aperrin66 May 13, 2025
982661a
remove obsolete vocabularies models + add migration
aperrin66 May 13, 2025
25a0c6d
remove deleted models from catalog admin
aperrin66 May 13, 2025
337a068
update vaocabularies managers
aperrin66 May 13, 2025
05a805e
update vocabularies command
aperrin66 May 13, 2025
1e51c05
remove source from catalog manager
aperrin66 May 13, 2025
4f5e545
rename keyword.type to kind + add version and kind to Parameter
aperrin66 May 14, 2025
dc1ea36
fix vocabularies manager
aperrin66 May 14, 2025
38d02c4
remove things related to deleted models from base_viewer
aperrin66 May 14, 2025
6e6c9dc
make Dataset's str use entry_id
aperrin66 May 15, 2025
130ae09
make DatasetURI's str use uri
aperrin66 May 15, 2025
5537134
remove name and service field from dataseturi: info already in the URL
aperrin66 May 15, 2025
efbb148
set unique constraint on parameter
aperrin66 May 20, 2025
b5824ea
set Keyword ordering
aperrin66 May 21, 2025
d910cd9
update tag model to simple key-value
aperrin66 Jun 25, 2025
1ed4eec
add Tag.__str__
aperrin66 Jun 25, 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
8 changes: 0 additions & 8 deletions docs/source/geospaas/catalog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,6 @@ Subpackages
Submodules
==========

geospaas.catalog.managers
-------------------------

.. automodule:: geospaas.catalog.managers
:members:
:undoc-members:
:show-inheritance:

geospaas.catalog.models
-----------------------

Expand Down
10 changes: 0 additions & 10 deletions geospaas/base_viewer/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
from django.utils import timezone
from leaflet.forms.widgets import LeafletWidget

from geospaas.catalog.models import Source


class BaseSearchForm(forms.Form):
""" Basic version of form for basic seaching of django-geospaas metadata """
Expand All @@ -20,8 +18,6 @@ class BaseSearchForm(forms.Form):
time_coverage_start = forms.DateTimeField(
initial=timezone.datetime(2000, 1, 1, tzinfo=timezone.utc))
time_coverage_end = forms.DateTimeField(initial=timezone.now())
source = forms.ModelMultipleChoiceField(
Source.objects.all(), required=False)

def filter(self, ds):
""" Filtering method of the form. All filtering processes are coded here """
Expand All @@ -34,12 +30,6 @@ def filter(self, ds):
# Too late datasets are excluded from the filtering results
ds = ds.exclude(time_coverage_start__gt=t_1)

src = self.cleaned_data.get('source', None)
# Just the one(s) with correct selected source should pass the filtering actions
# if Source is given in the input form
if src:
ds = ds.filter(source__in=src)

# spatial filtering
if self.cleaned_data['polygon']:
# filtering by user provided polygon
Expand Down
2 changes: 1 addition & 1 deletion geospaas/base_viewer/templates/base_viewer/ds_info.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{% endblock ds_detailed_info %}
{% for url in ds.dataseturi_set.all %}
<div class="attr_title">Address:</div>
{% if show_local_address or url.service != local_file_service %}
{% if show_local_address %}
<div class="attr_content">{{ url.uri|escape|urlize}} </div>
{% else %}
<div class="attr_content">hidden local address of dataset</div>
Expand Down
4 changes: 2 additions & 2 deletions geospaas/base_viewer/urls.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from django.urls import path

from geospaas.base_viewer.views import IndexView, get_geometry_geojson
from geospaas.base_viewer.views import IndexView#, get_geometry_geojson


app_name = 'base_viewer'
urlpatterns = [
path('', IndexView.as_view(), name='index'),
path('geometry/<int:pk>', get_geometry_geojson, name='geometry_geojson'),
# path('geometry/<int:pk>', get_geometry_geojson, name='geometry_geojson'),
]
37 changes: 18 additions & 19 deletions geospaas/base_viewer/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,28 @@
from django.conf import settings

from geospaas.base_viewer.forms import BaseSearchForm
from geospaas.catalog.models import Dataset, GeographicLocation
from geospaas.catalog.managers import LOCAL_FILE_SERVICE
from geospaas.catalog.models import Dataset

def get_geometry_geojson(request, pk, *args, **kwargs):
""" Get GeographicLocation.Geometry as GeoJSON
# def get_geometry_geojson(request, pk, *args, **kwargs):
# """ Get GeographicLocation.Geometry as GeoJSON

Parameters
----------
pk : int
primary key of GeographicLocation object
# Parameters
# ----------
# pk : int
# primary key of GeographicLocation object

Returns
-------
response : HttpResponse
GeoJSON with geometry of GeographicLocation
# Returns
# -------
# response : HttpResponse
# GeoJSON with geometry of GeographicLocation

"""
gl = GeographicLocation.objects.filter(pk=pk)
if gl.count() == 0:
geojson = '{}'
else:
geojson = serialize('geojson', gl)
return HttpResponse(geojson)
# """
# gl = GeographicLocation.objects.filter(pk=pk)
# if gl.count() == 0:
# geojson = '{}'
# else:
# geojson = serialize('geojson', gl)
# return HttpResponse(geojson)


class IndexView(View):
Expand Down
5 changes: 1 addition & 4 deletions geospaas/catalog/admin.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
from django.contrib import admin

from leaflet.admin import LeafletGeoAdmin
from geospaas.catalog.models import GeographicLocation, Source, Dataset, DatasetURI, \
from geospaas.catalog.models import Dataset, DatasetURI, \
Parameter, DatasetRelationship

admin.site.register(GeographicLocation, LeafletGeoAdmin)

admin.site.register(Source, admin.ModelAdmin)
admin.site.register(Dataset, admin.ModelAdmin)
admin.site.register(DatasetURI, admin.ModelAdmin)
admin.site.register(Parameter, admin.ModelAdmin)
Expand Down
29 changes: 0 additions & 29 deletions geospaas/catalog/managers.py

This file was deleted.

38 changes: 38 additions & 0 deletions geospaas/catalog/migrations/0012_auto_20250512_1411.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Generated by Django 3.2.25 on 2025-05-12 14:11

import django.contrib.gis.db.models.fields
from django.db import migrations, models
import geospaas.catalog.models


class Migration(migrations.Migration):

dependencies = [
('vocabularies', '0006_auto_20250512_1411'),
('catalog', '0011_auto_20210525_1252'),
]

operations = [
migrations.CreateModel(
name='Tag',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('data', models.JSONField(validators=[geospaas.catalog.models.validate_tag])),
],
),
migrations.AddField(
model_name='dataset',
name='keywords',
field=models.ManyToManyField(to='vocabularies.Keyword'),
),
migrations.AddField(
model_name='dataset',
name='location',
field=django.contrib.gis.db.models.fields.GeometryField(blank=True, null=True, srid=4326),
),
migrations.AddField(
model_name='dataset',
name='tags',
field=models.ManyToManyField(to='catalog.Tag'),
),
]
21 changes: 21 additions & 0 deletions geospaas/catalog/migrations/0013_auto_20250512_1414.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 3.2.25 on 2025-05-12 14:14

from django.db import migrations


def populate_location(apps, schema_editor):
Dataset = apps.get_model("catalog", "dataset")
for dataset in Dataset.objects.all():
dataset.location = dataset.geographic_location.geometry
dataset.save(update_fields=["location"])


class Migration(migrations.Migration):

dependencies = [
('catalog', '0012_auto_20250512_1411'),
]

operations = [
migrations.RunPython(populate_location, reverse_code=migrations.RunPython.noop),
]
47 changes: 47 additions & 0 deletions geospaas/catalog/migrations/0014_auto_20250513_1302.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Generated by Django 3.2.25 on 2025-05-13 13:02

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('catalog', '0013_auto_20250512_1414'),
]

operations = [
migrations.RemoveField(
model_name='source',
name='instrument',
),
migrations.RemoveField(
model_name='source',
name='platform',
),
migrations.RemoveField(
model_name='dataset',
name='ISO_topic_category',
),
migrations.RemoveField(
model_name='dataset',
name='data_center',
),
migrations.RemoveField(
model_name='dataset',
name='gcmd_location',
),
migrations.RemoveField(
model_name='dataset',
name='geographic_location',
),
migrations.RemoveField(
model_name='dataset',
name='source',
),
migrations.DeleteModel(
name='GeographicLocation',
),
migrations.DeleteModel(
name='Source',
),
]
21 changes: 21 additions & 0 deletions geospaas/catalog/migrations/0015_auto_20250515_1401.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 3.2.25 on 2025-05-15 14:01

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('catalog', '0014_auto_20250513_1302'),
]

operations = [
migrations.RemoveField(
model_name='dataseturi',
name='name',
),
migrations.RemoveField(
model_name='dataseturi',
name='service',
),
]
32 changes: 32 additions & 0 deletions geospaas/catalog/migrations/0016_auto_20250625_0644.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Generated by Django 3.2.25 on 2025-06-25 06:44

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('catalog', '0015_auto_20250515_1401'),
]

operations = [
migrations.RemoveField(
model_name='tag',
name='data',
),
migrations.AddField(
model_name='tag',
name='name',
field=models.CharField(default='legacy', max_length=200),
preserve_default=False,
),
migrations.AddField(
model_name='tag',
name='value',
field=models.TextField(blank=True, null=True),
),
migrations.AddConstraint(
model_name='tag',
constraint=models.UniqueConstraint(fields=('name', 'value'), name='unique_tag'),
),
]
Loading
Loading