Skip to content

Commit a5fe355

Browse files
authored
Merge pull request #230 from GeoNode/return_detaiurl_for_sld_and_xml
Return detail_url for SLD and XML and prepare for the new input params
2 parents 1787c78 + 5b6f2f9 commit a5fe355

File tree

8 files changed

+35
-4
lines changed

8 files changed

+35
-4
lines changed

importer/api/serializer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class Meta:
1515
"store_spatial_files",
1616
"overwrite_existing_layer",
1717
"skip_existing_layers",
18+
"source"
1819
)
1920

2021
base_file = serializers.FileField()
@@ -23,3 +24,4 @@ class Meta:
2324
store_spatial_files = serializers.BooleanField(required=False, default=True)
2425
overwrite_existing_layer = serializers.BooleanField(required=False, default=False)
2526
skip_existing_layers = serializers.BooleanField(required=False, default=False)
27+
source = serializers.CharField(required=False, default='upload')

importer/api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def create(self, request, *args, **kwargs):
148148
legacy_upload_name=_file.name,
149149
action=action,
150150
name=_file.name,
151-
source="upload",
151+
source=extracted_params.get('source'),
152152
)
153153

154154
sig = import_orchestrator.s(

importer/handlers/common/metadata.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
22
from geonode.resource.enumerator import ExecutionRequestAction as exa
33
from importer.handlers.base import BaseHandler
4+
from importer.models import ResourceHandlerInfo
45
from importer.handlers.xml.serializer import MetadataFileSerializer
56
from importer.utils import ImporterRequestAction as ira
67
from importer.orchestrator import orchestrator
@@ -49,22 +50,44 @@ def extract_params_from_data(_data, action=None):
4950
"skip_existing_layers": _data.pop("skip_existing_layers", "False"),
5051
"overwrite_existing_layer": _data.pop("overwrite_existing_layer", "False"),
5152
"store_spatial_file": _data.pop("store_spatial_files", "True"),
53+
"source": _data.pop("source", "True"),
5254
}, _data
5355

5456
@staticmethod
5557
def perform_last_step(execution_id):
56-
pass
58+
_exec = orchestrator.get_execution_object(execution_id)
59+
60+
_exec.output_params.update(
61+
**{
62+
"detail_url": [
63+
x.resource.detail_url
64+
for x in ResourceHandlerInfo.objects.filter(execution_request=_exec)
65+
]
66+
}
67+
)
68+
_exec.save()
5769

5870
def import_resource(self, files: dict, execution_id: str, **kwargs):
5971
_exec = orchestrator.get_execution_object(execution_id)
6072
# getting the dataset
6173
alternate = _exec.input_params.get("dataset_title")
62-
dataset = get_object_or_404(Dataset, alternate=alternate)
74+
resource_id = _exec.input_params.get("resource_id")
75+
if resource_id:
76+
dataset = get_object_or_404(Dataset, pk=resource_id)
77+
elif alternate:
78+
dataset = get_object_or_404(Dataset, alternate=alternate)
6379

6480
# retrieving the handler used for the dataset
6581
original_handler = orchestrator.load_handler(
6682
dataset.resourcehandlerinfo_set.first().handler_module_path
6783
)()
84+
85+
ResourceHandlerInfo.objects.create(
86+
handler_module_path=dataset.resourcehandlerinfo_set.first().handler_module_path,
87+
resource=dataset,
88+
execution_request=_exec,
89+
kwargs=kwargs.get("kwargs", {}) or kwargs,
90+
)
6891

6992
self.handle_metadata_resource(_exec, dataset, original_handler)
7093

importer/handlers/common/raster.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ def extract_params_from_data(_data, action=None):
102102
"skip_existing_layers": _data.pop("skip_existing_layers", "False"),
103103
"overwrite_existing_layer": _data.pop("overwrite_existing_layer", "False"),
104104
"store_spatial_file": _data.pop("store_spatial_files", "True"),
105+
"source": _data.pop("source", "upload"),
105106
}, _data
106107

107108
@staticmethod

importer/handlers/common/vector.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def extract_params_from_data(_data, action=None):
112112
"skip_existing_layers": _data.pop("skip_existing_layers", "False"),
113113
"overwrite_existing_layer": _data.pop("overwrite_existing_layer", "False"),
114114
"store_spatial_file": _data.pop("store_spatial_files", "True"),
115+
"source": _data.pop("source", "upload"),
115116
}, _data
116117

117118
@staticmethod

importer/handlers/shapefile/handler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ def extract_params_from_data(_data, action=None):
9191
"skip_existing_layers": _data.pop("skip_existing_layers", "False"),
9292
"overwrite_existing_layer": _data.pop("overwrite_existing_layer", "False"),
9393
"store_spatial_file": _data.pop("store_spatial_files", "True"),
94+
"source": _data.pop("source", "upload"),
9495
}
9596

9697
return additional_params, _data

importer/handlers/shapefile/serializer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Meta:
1818
"store_spatial_files",
1919
"overwrite_existing_layer",
2020
"skip_existing_layers",
21+
"source"
2122
)
2223

2324
base_file = serializers.FileField()
@@ -29,3 +30,4 @@ class Meta:
2930
store_spatial_files = serializers.BooleanField(required=False, default=True)
3031
overwrite_existing_layer = serializers.BooleanField(required=False, default=False)
3132
skip_existing_layers = serializers.BooleanField(required=False, default=False)
33+
source = serializers.CharField(required=False, default='upload')

importer/handlers/xml/serializer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ class Meta:
88
ref_name = "MetadataFileSerializer"
99
model = Upload
1010
view_name = "importer_upload"
11-
fields = ("dataset_title", "base_file")
11+
fields = ("dataset_title", "base_file", "source")
1212

1313
base_file = serializers.FileField()
1414
dataset_title = serializers.CharField(required=True)
15+
source = serializers.CharField(required=False, default='resource_file_upload')

0 commit comments

Comments
 (0)