From 7cac111e745430fb54ee4142410d7bb756d7d720 Mon Sep 17 00:00:00 2001 From: mattiagiupponi <51856725+mattiagiupponi@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:35:53 +0100 Subject: [PATCH] [Fixes #11716] extension for remote document is not saved (#11717) * [Fixes #11716] extension for remote document is not saved * [Fixes #11716] fix formatting --- geonode/documents/forms.py | 6 +++++- geonode/documents/views.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/geonode/documents/forms.py b/geonode/documents/forms.py index 286f98e0a6b..42671e98172 100644 --- a/geonode/documents/forms.py +++ b/geonode/documents/forms.py @@ -130,7 +130,7 @@ class DocumentCreateForm(TranslationModelForm): class Meta: model = Document - fields = ["title", "doc_file", "doc_url"] + fields = ["title", "doc_file", "doc_url", "extension"] widgets = { "name": HiddenInput(attrs={"cols": 80, "rows": 20}), } @@ -159,6 +159,7 @@ def clean(self): cleaned_data = super().clean() doc_file = self.cleaned_data.get("doc_file") doc_url = self.cleaned_data.get("doc_url") + extension = self.cleaned_data.get("extension") if not doc_file and not doc_url and "doc_file" not in self.errors and "doc_url" not in self.errors: logger.error("Document must be a file or url.") @@ -168,6 +169,9 @@ def clean(self): logger.error("A document cannot have both a file and a url.") raise forms.ValidationError(_("A document cannot have both a file and a url.")) + if extension: + cleaned_data["extension"] = extension.replace(".", "") + return cleaned_data def clean_doc_file(self): diff --git a/geonode/documents/views.py b/geonode/documents/views.py index 66b8df09bb7..127b287fd26 100644 --- a/geonode/documents/views.py +++ b/geonode/documents/views.py @@ -173,6 +173,7 @@ def form_valid(self, form): owner=self.request.user, doc_url=doc_form.pop("doc_url", None), title=doc_form.pop("title", file.name), + extension=doc_form.pop("extension", None), files=[storage_path], ), ) @@ -186,6 +187,7 @@ def form_valid(self, form): owner=self.request.user, doc_url=doc_form.pop("doc_url", None), title=doc_form.pop("title", None), + extension=doc_form.pop("extension", None), sourcetype=enumerations.SOURCE_TYPE_REMOTE, ), )