|
38 | 38 | from geonode.base.utils import remove_country_from_languagecode |
39 | 39 | from geonode.base.views import LinkedResourcesAutocomplete, RegionAutocomplete, HierarchicalKeywordAutocomplete |
40 | 40 | from geonode.groups.models import GroupProfile |
| 41 | +from geonode.metadata.i18n import get_localized_label |
41 | 42 | from geonode.metadata.manager import metadata_manager |
42 | 43 | from geonode.people.utils import get_available_users |
43 | 44 |
|
@@ -96,32 +97,35 @@ def schema(self, request, pk=None): |
96 | 97 | def schema_instance(self, request, pk=None): |
97 | 98 | try: |
98 | 99 | resource = ResourceBase.objects.get(pk=pk) |
| 100 | + lang = request.query_params.get("lang", get_language_from_request(request)[:2]) |
99 | 101 |
|
100 | 102 | if request.method == "GET": |
101 | | - lang = request.query_params.get("lang", get_language_from_request(request)[:2]) |
102 | 103 | schema_instance = metadata_manager.build_schema_instance(resource, lang) |
103 | 104 | return JsonResponse( |
104 | 105 | schema_instance, content_type="application/schema-instance+json", json_dumps_params={"indent": 3} |
105 | 106 | ) |
106 | 107 |
|
107 | | - elif request.method in ("PUT"): |
| 108 | + elif request.method == "PUT": |
108 | 109 | logger.debug(f"handling request {request.method}") |
109 | 110 | # try: |
110 | 111 | # logger.debug(f"handling content {json.dumps(request.data, indent=3)}") |
111 | 112 | # except Exception as e: |
112 | 113 | # logger.warning(f"Can't parse JSON {request.data}: {e}") |
113 | 114 | errors = metadata_manager.update_schema_instance(resource, request.data) |
114 | 115 |
|
| 116 | + msg_t = ( |
| 117 | + ("m_metadata_update_error", "Some errors were found while updating the resource") |
| 118 | + if errors |
| 119 | + else ("m_metadata_update_ok", "The resource was updated successfully") |
| 120 | + ) |
| 121 | + msg = get_localized_label(lang, msg_t[0]) or msg_t[1] |
| 122 | + |
115 | 123 | response = { |
116 | | - "message": ( |
117 | | - "Some errors were found while updating the resource" |
118 | | - if errors |
119 | | - else "The resource was updated successfully" |
120 | | - ), |
| 124 | + "message": msg, |
121 | 125 | "extraErrors": errors, |
122 | 126 | } |
123 | 127 |
|
124 | | - return Response(response, status=400 if errors else 200) |
| 128 | + return Response(response, status=422 if errors else 200) |
125 | 129 |
|
126 | 130 | except ResourceBase.DoesNotExist: |
127 | 131 | result = {"message": "The dataset was not found"} |
|
0 commit comments