From e9ac5a38f53e781a54fd5c5337fe6009f820cccd Mon Sep 17 00:00:00 2001 From: Felix Ostrowski Date: Mon, 7 Sep 2020 16:03:01 +0200 Subject: [PATCH 1/2] Do not traverse relations when attaching GeoJSON --- app/services/export/GeoJsonExporter.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/app/services/export/GeoJsonExporter.java b/app/services/export/GeoJsonExporter.java index f5a96f6ec..e56569e98 100644 --- a/app/services/export/GeoJsonExporter.java +++ b/app/services/export/GeoJsonExporter.java @@ -123,24 +123,13 @@ private ArrayNode getCoordinates(ArrayNode locations) { private ArrayNode getLocations(JsonNode node) { ArrayNode locations = new ArrayNode(JsonNodeFactory.instance); - String[] traverse = new String[]{ - "mentions", "member", "agent", "participant", "provider", "publisher", "creator", "isRelatedTo" - }; if (node.isArray()) { for (JsonNode entry : node) { locations.addAll(getLocations(entry)); } - } else if (node.isObject()) { - if (node.has("location")) { - locations.addAll((ArrayNode) node.get("location")); - } else { - for (String property : traverse) { - if (node.has(property)) { - locations.addAll(getLocations(node.get(property))); - } - } - } + } else if (node.isObject() && node.has("location")) { + locations.addAll((ArrayNode) node.get("location")); } return locations; From 9dcafb83309cb7b29e9e882150f905c495c2191d Mon Sep 17 00:00:00 2001 From: Felix Ostrowski Date: Mon, 7 Sep 2020 16:09:36 +0200 Subject: [PATCH 2/2] Allow multiple locations --- public/json/schema.json | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/public/json/schema.json b/public/json/schema.json index c1ca0ed42..e0de9de89 100644 --- a/public/json/schema.json +++ b/public/json/schema.json @@ -946,7 +946,6 @@ }, "location": { "type": "array", - "maxItems": 1, "items": { "$ref": "#/definitions/Place" } @@ -1233,15 +1232,9 @@ "$ref": "#/definitions/iso-8601-date" }, "location": { - "title": "Action.location", - "description": "ResourceIndex.Action.edit.addressMessage", "type": "array", - "maxItems": 1, "items": { - "$ref": "#/definitions/Place", - "_display": { - "collapsed": true - } + "$ref": "#/definitions/Place" } }, "instrument": { @@ -1650,15 +1643,9 @@ } }, "location": { - "title": "Service.location", - "description": "ResourceIndex.Service.edit.info", "type": "array", - "maxItems": 1, "items": { - "$ref": "#/definitions/Place", - "_display": { - "collapsed": true - } + "$ref": "#/definitions/Place" } }, "about": { @@ -2094,7 +2081,6 @@ }, "location": { "type": "array", - "maxItems": 1, "items": { "$ref": "#/definitions/Place" } @@ -2484,7 +2470,6 @@ }, "location": { "type": "array", - "maxItems": 1, "items": { "$ref": "#/definitions/Place" } @@ -2845,7 +2830,6 @@ }, "location": { "type": "array", - "maxItems": 1, "items": { "$ref": "#/definitions/Place" } @@ -3112,6 +3096,12 @@ "$ref": "#/definitions/LocalizedString", "_display": { "rows": 5 } }, + "location": { + "type": "array", + "items": { + "$ref": "#/definitions/Place" + } + }, "url": { "title": "Product.url", "description": "descriptions.Product.url",