Skip to content

Commit 888a713

Browse files
committed
[Fixes: 10521] Make metadata wizard more flexible for custom metadata
1 parent 36f414d commit 888a713

File tree

17 files changed

+103
-18
lines changed

17 files changed

+103
-18
lines changed

geonode/documents/api/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,5 @@ class Meta:
5858
"executions",
5959
"file_path",
6060
"doc_file",
61+
"metadata",
6162
)

geonode/documents/templates/documents/document_metadata.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ <h2 class="page-title">{% trans "Metadata" %}&nbsp;{% blocktrans with document.t
5656

5757
{% csrf_token %}
5858
<div id="mdeditor_form" class="col-md-12 form-controls">
59-
{% form document_form using "layouts/doc_panels.html" %}
59+
{% form document_form using panel_template %}
6060
{# document_form|as_bootstrap #}
6161
</div>
6262

geonode/documents/templates/layouts/doc_panels.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,8 @@
266266
<a>{% trans "Optional Metadata" %}</a>
267267
{% endif %}
268268
</li>
269+
{% block extra_metadata_steps %}
270+
{% endblock %}
269271
</ul>
270272
{% block mandatory %}
271273
<div id="mandatory" class="tab-pane fade in active">
@@ -580,6 +582,8 @@
580582
</div>
581583
</div></div></div>
582584
</div>
585+
{% block extra_metadata_content %}
586+
{% endblock %}
583587
</div>
584588
{% endblock ownership %}
585589

geonode/documents/views.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,14 @@ def form_valid(self, form):
293293

294294
@login_required
295295
@check_keyword_write_perms
296-
def document_metadata(request, docid, template="documents/document_metadata.html", ajax=True):
296+
def document_metadata(
297+
request,
298+
docid,
299+
template="documents/document_metadata.html",
300+
panel_template="layouts/doc_panels.html",
301+
custom_metadata=None,
302+
ajax=True,
303+
):
297304
document = None
298305
try:
299306
document = _resolve_document(request, docid, "base.change_resourcebase_metadata", _PERMISSION_MSG_METADATA)
@@ -503,6 +510,8 @@ def document_metadata(request, docid, template="documents/document_metadata.html
503510
context={
504511
"resource": document,
505512
"document": document,
513+
"panel_template": panel_template,
514+
"custom_metadata": custom_metadata,
506515
"document_form": document_form,
507516
"poc_form": poc_form,
508517
"author_form": author_form,
@@ -524,7 +533,7 @@ def document_metadata_advanced(request, docid):
524533
return document_metadata(request, docid, template="documents/document_metadata_advanced.html")
525534

526535

527-
def document_metadata_detail(request, docid, template="documents/document_metadata_detail.html"):
536+
def document_metadata_detail(request, docid, template="documents/document_metadata_detail.html", custom_metadata=None):
528537
try:
529538
document = _resolve_document(request, docid, "view_resourcebase", _PERMISSION_MSG_METADATA)
530539
except PermissionDenied:
@@ -542,7 +551,12 @@ def document_metadata_detail(request, docid, template="documents/document_metada
542551
group = None
543552
site_url = settings.SITEURL.rstrip("/") if settings.SITEURL.startswith("http") else settings.SITEURL
544553
register_event(request, EventType.EVENT_VIEW_METADATA, document)
545-
return render(request, template, context={"resource": document, "group": group, "SITEURL": site_url})
554+
555+
return render(
556+
request,
557+
template,
558+
context={"resource": document, "group": group, "SITEURL": site_url, "custom_metadata": custom_metadata},
559+
)
546560

547561

548562
@login_required

geonode/geoapps/api/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class Meta:
3737
model = GeoApp
3838
name = "geoapp"
3939
view_name = "geoapps-list"
40-
fields = ("pk", "uuid", "data", "name", "executions")
40+
fields = ("pk", "uuid", "data", "name", "executions", "metadata")
4141

4242
def extra_update_checks(self, validated_data):
4343
_user_profiles = {}

geonode/geoapps/templates/apps/app_metadata.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ <h2 class="page-title">{% trans "Metadata" %}&nbsp;{% blocktrans with geoapp.tit
5555

5656
{% csrf_token %}
5757
<div id="mdeditor_form" class="col-md-12 form-controls">
58-
{% form geoapp_form using "layouts/app_panels.html" %}
58+
{% form geoapp_form using panel_template %}
5959
{# geoapp_form|as_bootstrap #}
6060
</div>
6161

geonode/geoapps/templates/layouts/app_panels.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@
256256
<li data-step="3" data-toggle="tab" href="#ownership">
257257
<a>{% trans "Optional Metadata" %}</a>
258258
</li>
259+
{% block extra_metadata_steps %}
260+
{% endblock %}
259261
</ul>
260262
<div id="mandatory" class="tab-pane fade in active">
261263
<!--<br />-->
@@ -510,6 +512,8 @@
510512
</div>
511513
</div></div></div>
512514
</div>
515+
{% block extra_metadata_content %}
516+
{% endblock %}
513517
</div>
514518
<div id="settings" class="tab-pane fade" style="overflow: hidden;">
515519
<!--<br />-->

geonode/geoapps/views.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def geoapp_edit(request, geoappid, template="apps/app_edit.html"):
154154
return render(request, template, context=_ctx)
155155

156156

157-
def geoapp_metadata_detail(request, geoappid, template="apps/app_metadata_detail.html"):
157+
def geoapp_metadata_detail(request, geoappid, template="apps/app_metadata_detail.html", custom_metadata=None):
158158
try:
159159
geoapp_obj = _resolve_geoapp(request, geoappid, "view_resourcebase", _PERMISSION_MSG_METADATA)
160160
except PermissionDenied:
@@ -172,12 +172,29 @@ def geoapp_metadata_detail(request, geoappid, template="apps/app_metadata_detail
172172
group = None
173173
site_url = settings.SITEURL.rstrip("/") if settings.SITEURL.startswith("http") else settings.SITEURL
174174
register_event(request, EventType.EVENT_VIEW_METADATA, geoapp_obj)
175-
return render(request, template, context={"resource": geoapp_obj, "group": group, "SITEURL": site_url})
175+
176+
return render(
177+
request,
178+
template,
179+
context={
180+
"resource": geoapp_obj,
181+
"group": group,
182+
"SITEURL": site_url,
183+
"custom_metadata": custom_metadata,
184+
},
185+
)
176186

177187

178188
@login_required
179189
@check_keyword_write_perms
180-
def geoapp_metadata(request, geoappid, template="apps/app_metadata.html", ajax=True):
190+
def geoapp_metadata(
191+
request,
192+
geoappid,
193+
template="apps/app_metadata.html",
194+
ajax=True,
195+
panel_template="layouts/app_panels.html",
196+
custom_metadata=None,
197+
):
181198
geoapp_obj = None
182199
try:
183200
geoapp_obj = _resolve_geoapp(request, geoappid, "base.change_resourcebase_metadata", _PERMISSION_MSG_METADATA)
@@ -394,6 +411,8 @@ def geoapp_metadata(request, geoappid, template="apps/app_metadata.html", ajax=T
394411
context={
395412
"resource": geoapp_obj,
396413
"geoapp": geoapp_obj,
414+
"panel_template": panel_template,
415+
"custom_metadata": custom_metadata,
397416
"geoapp_form": geoapp_form,
398417
"poc_form": poc_form,
399418
"author_form": author_form,

geonode/layers/api/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ class Meta:
178178
"styles",
179179
"attribute_set",
180180
"executions",
181+
"metadata",
181182
)
182183

183184
name = serializers.CharField(read_only=True)

geonode/layers/templates/datasets/dataset_metadata.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ <h2 class="page-title">{% trans "Metadata" %}&nbsp;{% blocktrans with dataset.ti
7878

7979
{% csrf_token %}
8080
<div id="mdeditor_form" class="col-md-12 form-controls">
81-
{% form dataset_form using "layouts/panels.html" %}
81+
{% form dataset_form using panel_template %}
8282
{# dataset_form|as_bootstrap #}
8383
</div>
8484

0 commit comments

Comments
 (0)