@@ -104,13 +104,15 @@ def extract_params_from_data(_data, action=None):
104104 title = json .loads (_data .get ("defaults" ))
105105 return {"title" : title .pop ("title" ), "store_spatial_file" : True }, _data
106106
107- return {
108- "action" : _data .pop ("action" , "upload" ),
109- "title" : _data .pop ("title" , None ),
110- "url" : _data .pop ("url" , None ),
111- "type" : _data .pop ("type" , None ),
112- "overwrite_existing_layer" : _data .pop ("overwrite_existing_layer" , False ),
113- }, _data
107+ return (
108+ BaseHandler .extract_params_from_data (_data )[0 ]
109+ | {
110+ "title" : _data .pop ("title" , None ),
111+ "url" : _data .pop ("url" , None ),
112+ "type" : _data .pop ("type" , None ),
113+ },
114+ _data ,
115+ )
114116
115117 def pre_validation (self , files , execution_id , ** kwargs ):
116118 """
@@ -199,6 +201,7 @@ def create_geonode_resource(
199201 execution_id : str ,
200202 resource_type : ResourceBase = ResourceBase ,
201203 asset = None ,
204+ custom : object = {},
202205 ):
203206 """
204207 Creating geonode base resource
@@ -213,6 +216,7 @@ def create_geonode_resource(
213216 None ,
214217 resource_type = resource_type ,
215218 defaults = self .generate_resource_payload (layer_name , alternate , asset , _exec , None , ** params ),
219+ custom = custom ,
216220 )
217221 resource_manager .set_thumbnail (None , instance = resource )
218222
@@ -268,6 +272,7 @@ def overwrite_geonode_resource(
268272 execution_id : str ,
269273 resource_type : Dataset = ResourceBase ,
270274 asset = None ,
275+ custom = {},
271276 ):
272277 _exec = self ._get_execution_request_object (execution_id )
273278 resource = resource_type .objects .filter (alternate__icontains = alternate , owner = _exec .user )
@@ -278,15 +283,15 @@ def overwrite_geonode_resource(
278283 if resource .exists () and _overwrite :
279284 resource = resource .first ()
280285
281- resource = resource_manager .update (resource .uuid , instance = resource )
286+ resource = resource_manager .update (resource .uuid , instance = resource , vals = custom )
282287 resource_manager .set_thumbnail (resource .uuid , instance = resource , overwrite = True )
283288 resource .refresh_from_db ()
284289 return resource
285290 elif not resource .exists () and _overwrite :
286291 logger .warning (
287292 f"The dataset required { alternate } does not exists, but an overwrite is required, the resource will be created"
288293 )
289- return self .create_geonode_resource (layer_name , alternate , execution_id , resource_type , asset )
294+ return self .create_geonode_resource (layer_name , alternate , execution_id , resource_type , asset , custom )
290295 elif not resource .exists () and not _overwrite :
291296 logger .warning ("The resource does not exists, please use 'create_geonode_resource' to create one" )
292297 return
0 commit comments