def process(): response.headers["Content-Type"] = "application/json" package_id = request.params.get('package_id') hasAccess(package_id) if hasAppliedDoi(package_id): return {'error':True, 'message':'Cannot edit resource of package with applied DOI'} sheet_id = request.params.get('sheet_id') resource_id = request.params.get('resource_id') ids = request.params.get('resource_ids') if sheet_id == "": sheet_id = None try: options = json.loads(request.params.get('options')) except: options = {} # option, if a resource id and a datasheet id are passed, then the full 'merged' view will be return # only allow specified options safeOptions = {} for option in parseOptions: if option in options: safeOptions[option] = options[option] # see if we are editing multiple files or just one result = [] if ids is not None: ids = json.loads(ids) for resource_id in ids: workspace.prepareFile(package_id, resource_id, sheet_id, safeOptions) result.append(query.getResource(resource_id)) else: workspace.prepareFile(package_id, resource_id, sheet_id, safeOptions) result = query.getResource(resource_id, sheet_id) # update the dataset, so the metadata timestamp changes context = {'model': model, 'user': c.user} pkg = logic.get_action('package_show')(context, {'id': package_id}) # use this counter to poke the dataset. This will update the last modified timestamps # required for 'updated since last pushed UI' resourceUpdateCount = utils.getPackageExtra('resourceUpdateCount', pkg) if resourceUpdateCount is None: resourceUpdateCount = 1 else: resourceUpdateCount = int(resourceUpdateCount) + 1 utils.setPackageExtra('resourceUpdateCount', resourceUpdateCount, pkg) pkg = logic.get_action('package_update')(context, pkg) result = { 'metadata_modified' : pkg.get('metadata_modified'), 'result' : result } return jsonStringify(result)
def get(): response.headers["Content-Type"] = "application/json" pid = request.params.get('package_id') rid = request.params.get('resource_id') sid = request.params.get('sheet_id') if sid == "": sid = None hasAccess(pid) return jsonStringify(query.getResource(rid, sid))