Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump django-cors-headers from 3.13.0 to 3.14.0 #832

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions geonode/documents/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,5 @@ class Meta:
"executions",
"file_path",
"doc_file",
"metadata",
)
16 changes: 14 additions & 2 deletions geonode/documents/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,19 @@
#
#########################################################################
import os
from django.contrib.auth import get_user_model
import logging

from django.contrib.auth import get_user_model
from urllib.parse import urljoin

from django.urls import reverse
from rest_framework.test import APITestCase

from guardian.shortcuts import assign_perm, get_anonymous_user
from geonode import settings
from geonode.documents.models import Document

from geonode.base.populate_test_data import create_models
from geonode.documents.models import Document

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -75,6 +76,17 @@ def test_documents(self):
# import json
# logger.error(f"{json.dumps(layers_data)}")

def test_extra_metadata_included_with_param(self):
resource = Document.objects.first()
url = urljoin(f"{reverse('documents-list')}/", f"{resource.pk}")
data = {"include[]": "metadata"}

response = self.client.get(url, format="json", data=data)
self.assertIsNotNone(response.data["document"].get("metadata"))

response = self.client.get(url, format="json")
self.assertNotIn("metadata", response.data["document"])

def test_creation_return_error_if_file_is_not_passed(self):
"""
If file_path is not available, should raise error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ <h2 class="page-title">{% trans "Metadata" %}&nbsp;{% blocktrans with document.t

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

Expand Down
4 changes: 4 additions & 0 deletions geonode/documents/templates/layouts/doc_panels.html
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,8 @@
<a>{% trans "Optional Metadata" %}</a>
{% endif %}
</li>
{% block extra_metadata_steps %}
{% endblock %}
</ul>
{% block mandatory %}
<div id="mandatory" class="tab-pane fade in active">
Expand Down Expand Up @@ -580,6 +582,8 @@
</div>
</div></div></div>
</div>
{% block extra_metadata_content %}
{% endblock %}
</div>
{% endblock ownership %}

Expand Down
20 changes: 17 additions & 3 deletions geonode/documents/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,14 @@ def form_valid(self, form):

@login_required
@check_keyword_write_perms
def document_metadata(request, docid, template="documents/document_metadata.html", ajax=True):
def document_metadata(
request,
docid,
template="documents/document_metadata.html",
panel_template="layouts/doc_panels.html",
custom_metadata=None,
ajax=True,
):
document = None
try:
document = _resolve_document(request, docid, "base.change_resourcebase_metadata", _PERMISSION_MSG_METADATA)
Expand Down Expand Up @@ -503,6 +510,8 @@ def document_metadata(request, docid, template="documents/document_metadata.html
context={
"resource": document,
"document": document,
"panel_template": panel_template,
"custom_metadata": custom_metadata,
"document_form": document_form,
"poc_form": poc_form,
"author_form": author_form,
Expand All @@ -524,7 +533,7 @@ def document_metadata_advanced(request, docid):
return document_metadata(request, docid, template="documents/document_metadata_advanced.html")


def document_metadata_detail(request, docid, template="documents/document_metadata_detail.html"):
def document_metadata_detail(request, docid, template="documents/document_metadata_detail.html", custom_metadata=None):
try:
document = _resolve_document(request, docid, "view_resourcebase", _PERMISSION_MSG_METADATA)
except PermissionDenied:
Expand All @@ -542,7 +551,12 @@ def document_metadata_detail(request, docid, template="documents/document_metada
group = None
site_url = settings.SITEURL.rstrip("/") if settings.SITEURL.startswith("http") else settings.SITEURL
register_event(request, EventType.EVENT_VIEW_METADATA, document)
return render(request, template, context={"resource": document, "group": group, "SITEURL": site_url})

return render(
request,
template,
context={"resource": document, "group": group, "SITEURL": site_url, "custom_metadata": custom_metadata},
)


@login_required
Expand Down
2 changes: 1 addition & 1 deletion geonode/geoapps/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class Meta:
model = GeoApp
name = "geoapp"
view_name = "geoapps-list"
fields = ("pk", "uuid", "data", "name", "executions")
fields = ("pk", "uuid", "data", "name", "executions", "metadata")

def extra_update_checks(self, validated_data):
_user_profiles = {}
Expand Down
18 changes: 15 additions & 3 deletions geonode/geoapps/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,16 @@
import json
import logging
from unittest.mock import MagicMock
from urllib.parse import urljoin

from django.urls import reverse
from django.contrib.auth import get_user_model
from django.urls import reverse
from rest_framework.test import APITestCase

from geonode.base.populate_test_data import create_models
from geonode.geoapps.api.exceptions import DuplicateGeoAppException, InvalidGeoAppException
from geonode.geoapps.api.serializers import GeoAppSerializer

from geonode.geoapps.models import GeoApp
from geonode.base.populate_test_data import create_models

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -75,6 +76,17 @@ def test_geoapps_list(self):
json.loads(response.data["geoapps"][0]["data"]), {"test_data": {"test": ["test_1", "test_2", "test_3"]}}
)

def test_extra_metadata_included_with_param(self):
_app = GeoApp.objects.first()
url = urljoin(f"{reverse('geoapps-list')}/", f"{_app.pk}")
data = {"include[]": "metadata"}

response = self.client.get(url, format="json", data=data)
self.assertIsNotNone(response.data["geoapp"].get("metadata"))

response = self.client.get(url, format="json")
self.assertNotIn("metadata", response.data["geoapp"])

def test_geoapps_crud(self):
"""
Ensure we can create/update GeoApps.
Expand Down
2 changes: 1 addition & 1 deletion geonode/geoapps/templates/apps/app_metadata.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ <h2 class="page-title">{% trans "Metadata" %}&nbsp;{% blocktrans with geoapp.tit

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

Expand Down
4 changes: 4 additions & 0 deletions geonode/geoapps/templates/layouts/app_panels.html
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,8 @@
<li data-step="3" data-toggle="tab" href="#ownership">
<a>{% trans "Optional Metadata" %}</a>
</li>
{% block extra_metadata_steps %}
{% endblock %}
</ul>
<div id="mandatory" class="tab-pane fade in active">
<!--<br />-->
Expand Down Expand Up @@ -510,6 +512,8 @@
</div>
</div></div></div>
</div>
{% block extra_metadata_content %}
{% endblock %}
</div>
<div id="settings" class="tab-pane fade" style="overflow: hidden;">
<!--<br />-->
Expand Down
25 changes: 22 additions & 3 deletions geonode/geoapps/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ def geoapp_edit(request, geoappid, template="apps/app_edit.html"):
return render(request, template, context=_ctx)


def geoapp_metadata_detail(request, geoappid, template="apps/app_metadata_detail.html"):
def geoapp_metadata_detail(request, geoappid, template="apps/app_metadata_detail.html", custom_metadata=None):
try:
geoapp_obj = _resolve_geoapp(request, geoappid, "view_resourcebase", _PERMISSION_MSG_METADATA)
except PermissionDenied:
Expand All @@ -171,12 +171,29 @@ def geoapp_metadata_detail(request, geoappid, template="apps/app_metadata_detail
group = None
site_url = settings.SITEURL.rstrip("/") if settings.SITEURL.startswith("http") else settings.SITEURL
register_event(request, EventType.EVENT_VIEW_METADATA, geoapp_obj)
return render(request, template, context={"resource": geoapp_obj, "group": group, "SITEURL": site_url})

return render(
request,
template,
context={
"resource": geoapp_obj,
"group": group,
"SITEURL": site_url,
"custom_metadata": custom_metadata,
},
)


@login_required
@check_keyword_write_perms
def geoapp_metadata(request, geoappid, template="apps/app_metadata.html", ajax=True):
def geoapp_metadata(
request,
geoappid,
template="apps/app_metadata.html",
ajax=True,
panel_template="layouts/app_panels.html",
custom_metadata=None,
):
geoapp_obj = None
try:
geoapp_obj = _resolve_geoapp(request, geoappid, "base.change_resourcebase_metadata", _PERMISSION_MSG_METADATA)
Expand Down Expand Up @@ -393,6 +410,8 @@ def geoapp_metadata(request, geoappid, template="apps/app_metadata.html", ajax=T
context={
"resource": geoapp_obj,
"geoapp": geoapp_obj,
"panel_template": panel_template,
"custom_metadata": custom_metadata,
"geoapp_form": geoapp_form,
"poc_form": poc_form,
"author_form": author_form,
Expand Down
1 change: 1 addition & 0 deletions geonode/layers/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ class Meta:
"styles",
"attribute_set",
"executions",
"metadata",
)

name = serializers.CharField(read_only=True)
Expand Down
19 changes: 15 additions & 4 deletions geonode/layers/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@

from unittest.mock import patch
from django.contrib.auth import get_user_model

from urllib.parse import urljoin

from django.conf import settings
from django.urls import reverse
from rest_framework.test import APITestCase
from geonode.geoserver.createlayer.utils import create_dataset

from guardian.shortcuts import assign_perm, get_anonymous_user
from geonode.geoserver.createlayer.utils import create_dataset

from django.conf import settings
from geonode.layers.models import Dataset, Attribute
from geonode.base.populate_test_data import create_models, create_single_dataset
from geonode.layers.models import Attribute, Dataset
from geonode.maps.models import Map, MapLayer

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -120,6 +120,17 @@ def test_datasets(self):
_dataset.use_featureinfo_custom_template = False
_dataset.save()

def test_extra_metadata_included_with_param(self):
_dataset = Dataset.objects.first()
url = urljoin(f"{reverse('datasets-list')}/", f"{_dataset.pk}")
data = {"include[]": "metadata"}

response = self.client.get(url, format="json", data=data)
self.assertIsNotNone(response.data["dataset"].get("metadata"))

response = self.client.get(url, format="json")
self.assertNotIn("metadata", response.data["dataset"])

def test_get_dataset_related_maps_and_maplayers(self):
dataset = Dataset.objects.first()
assign_perm("base.view_resourcebase", get_anonymous_user(), dataset.get_self_resource())
Expand Down
2 changes: 1 addition & 1 deletion geonode/layers/templates/datasets/dataset_metadata.html
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ <h2 class="page-title">{% trans "Metadata" %}&nbsp;{% blocktrans with dataset.ti

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

Expand Down
4 changes: 4 additions & 0 deletions geonode/layers/templates/layouts/panels.html
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,8 @@
<li data-step="4" data-toggle="tab" href="#dataset">
<a>{% trans "Dataset Attributes" %}</a>
</li>
{% block extra_metadata_steps%}
{% endblock %}
</ul>
{% endblock breadcrumbs %}
{% block mandatory %}
Expand Down Expand Up @@ -644,6 +646,8 @@
</div>
{% endblock %}
</div>
{% block extra_metadata_content %}
{% endblock %}
</div>
<div id="preview" class="tab-pane fade" style="overflow: hidden;">
<!-- <iframe id="preview_encoder_iframe" height="100%" width="100%" style="width:0;height:0;border:0;border:none;" src="{% url 'dataset_metadata_detail' resource.alternate %}"></iframe> -->
Expand Down
23 changes: 20 additions & 3 deletions geonode/layers/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,14 @@ def dataset_feature_catalogue(request, layername, template="../../catalogue/temp

@login_required
@check_keyword_write_perms
def dataset_metadata(request, layername, template="datasets/dataset_metadata.html", ajax=True):
def dataset_metadata(
request,
layername,
template="datasets/dataset_metadata.html",
panel_template="layouts/panels.html",
custom_metadata=None,
ajax=True,
):
try:
layer = _resolve_dataset(request, layername, "base.change_resourcebase_metadata", _PERMISSION_MSG_METADATA)
except PermissionDenied as e:
Expand Down Expand Up @@ -686,6 +693,8 @@ def dataset_metadata(request, layername, template="datasets/dataset_metadata.htm
context={
"resource": layer,
"dataset": layer,
"panel_template": panel_template,
"custom_metadata": custom_metadata,
"dataset_form": dataset_form,
"poc_form": poc_form,
"author_form": author_form,
Expand Down Expand Up @@ -942,7 +951,7 @@ def decimal_default(obj):
)


def dataset_metadata_detail(request, layername, template="datasets/dataset_metadata_detail.html"):
def dataset_metadata_detail(request, layername, template="datasets/dataset_metadata_detail.html", custom_metadata=None):
try:
layer = _resolve_dataset(request, layername, "view_resourcebase", _PERMISSION_MSG_METADATA)
except PermissionDenied:
Expand All @@ -964,7 +973,15 @@ def dataset_metadata_detail(request, layername, template="datasets/dataset_metad
perms_list = list(layer.get_self_resource().get_user_perms(request.user).union(layer.get_user_perms(request.user)))

return render(
request, template, context={"resource": layer, "perms_list": perms_list, "group": group, "SITEURL": site_url}
request,
template,
context={
"resource": layer,
"perms_list": perms_list,
"group": group,
"SITEURL": site_url,
"custom_metadata": custom_metadata,
},
)


Expand Down
2 changes: 1 addition & 1 deletion geonode/maps/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ class Meta:
model = Map
name = "map"
view_name = "maps-list"
fields = ("pk", "uuid", "urlsuffix", "featuredurl", "data", "maplayers", "executions")
fields = ("pk", "uuid", "urlsuffix", "featuredurl", "data", "maplayers", "executions", "metadata")


class SimpleMapSerializer(BaseDynamicModelSerializer):
Expand Down
Loading