コード例 #1
0
def update_layer_metadata_uuid(layer, uuid):
    if 'gvsigol_plugin_catalog' in settings.INSTALLED_APPS:
        from gvsigol_plugin_catalog.models import LayerMetadata

        try:
            lm = LayerMetadata.objects.get(layer=layer)
            if uuid is not None and uuid != u'':
                lm.metadata_uuid = uuid
                lm.save()
            else:
                lm.delete()
        except LayerMetadata.DoesNotExist as e:
            lm = LayerMetadata()
            lm.layer = layer
            lm.metadata_uuid = uuid
            lm.save()
        except LayerMetadata.MultipleObjectsReturned as e:
            lm = LayerMetadata.objects.filter(layer=layer).delete()
            lm = LayerMetadata()
            lm.layer = layer
            lm.metadata_uuid = uuid
            lm.save()
コード例 #2
0
def create_metadata(request, layer_id):
    if request.method == 'POST':
        try:
            layer = Layer.objects.get(id=int(layer_id))
            uuid, the_id = geonetwork_service.get_instance().metadata_insert(layer)
            lm = LayerMetadata()
            lm.layer = layer
            lm.metadata_id = the_id
            lm.metadata_uuid = uuid
            lm.save()
            return JsonResponse({'status': 'ok', 'uuid': uuid, 'id': the_id})
        except Exception as e:
            logger.exception(e)
            return HttpResponse(status=500, content=e.message)