From e8a64bcf881adb2b9c877e5fb4f0029d9b616d14 Mon Sep 17 00:00:00 2001 From: mattiagiupponi Date: Thu, 19 Oct 2023 17:10:19 +0200 Subject: [PATCH] Fixes #11578: align geoapp metadata update to other resources --- geonode/geoapps/views.py | 31 +++++++++++++++++++------------ geonode/settings.py | 3 +++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/geonode/geoapps/views.py b/geonode/geoapps/views.py index 788dcaccbe1..69d53410e72 100644 --- a/geonode/geoapps/views.py +++ b/geonode/geoapps/views.py @@ -327,21 +327,15 @@ def geoapp_metadata( geoapp_form.cleaned_data.pop("linked_resources") geoapp_obj = geoapp_form.instance + geoapp_obj.keywords.clear() + geoapp_obj.keywords.add(*new_keywords) + geoapp_obj.regions.clear() + geoapp_obj.regions.add(*new_regions) + geoapp_obj.category = new_category _vals = dict(**geoapp_form.cleaned_data, **additional_vals) _vals.update({"resource_type": resource_type, "sourcetype": SOURCE_TYPE_LOCAL}) - resource_manager.update( - geoapp_obj.uuid, - instance=geoapp_obj, - keywords=new_keywords, - regions=new_regions, - vals=_vals, - notify=True, - extra_metadata=json.loads(extra_metadata), - ) - resource_manager.set_thumbnail(geoapp_obj.uuid, instance=geoapp_obj, overwrite=False) - register_event(request, EventType.EVENT_CHANGE_METADATA, geoapp_obj) if not ajax: return HttpResponseRedirect(hookset.geoapp_detail_url(geoapp_obj)) @@ -373,7 +367,20 @@ def geoapp_metadata( if any([x in geoapp_form.changed_data for x in ["is_approved", "is_published"]]): vals["is_approved"] = geoapp_form.cleaned_data.get("is_approved", geoapp_obj.is_approved) vals["is_published"] = geoapp_form.cleaned_data.get("is_published", geoapp_obj.is_published) - resource_manager.update(geoapp_obj.uuid, instance=geoapp_obj, notify=True, vals=vals) + else: + vals.pop("is_approved", None) + vals.pop("is_published", None) + + resource_manager.update( + geoapp_obj.uuid, + instance=geoapp_obj, + notify=True, + vals=vals, + extra_metadata=json.loads(extra_metadata), + ) + + resource_manager.set_thumbnail(geoapp_obj.uuid, instance=geoapp_obj, overwrite=False) + return HttpResponse(json.dumps({"message": message})) elif request.method == "POST" and ( not geoapp_form.is_valid() or not category_form.is_valid() or not tkeywords_form.is_valid() diff --git a/geonode/settings.py b/geonode/settings.py index eae71d843fa..873444f1e16 100644 --- a/geonode/settings.py +++ b/geonode/settings.py @@ -2361,3 +2361,6 @@ def get_geonode_catalogue_service(): DEFAULT_DATASET_DOWNLOAD_HANDLER = "geonode.layers.download_handler.DatasetDownloadHandler" DATASET_DOWNLOAD_HANDLERS = ast.literal_eval(os.getenv("DATASET_DOWNLOAD_HANDLERS", "[]")) + +DEFAULT_ANONYMOUS_VIEW_PERMISSION = False +DEFAULT_ANONYMOUS_DOWNLOAD_PERMISSION = False