def _image_process(f, project): header = True reader = csv.reader(f) fields = get_data_fields(project) images_meta = [] if header: next(reader, None) for row in reader: meta = {} # for field in fields: # meta[field['id']] = None image_url = row[0] data_url = re.sub(r'image_service', "data_service", image_url) xmlString = _get_image_meta_by_url(data_url) meta['image_uri'] = image_url meta['data_uri'] = data_url match = re.search(r'.* name=\"(.*)\" owner.*', xmlString, re.I) if match: meta['name'] = match.group(1) images_meta.append(meta) return images_meta
def view(request, data_uuid): """ """ if request.user.is_anonymous(): api_client = get_portal_api_client() else: api_client = request.user.agave_oauth.api_client try: data = Data(api_client=api_client, uuid=data_uuid) project = data.project except Exception as e: exception_msg = 'Unable to load data. %s' % e logger.error(exception_msg) messages.warning(request, exception_msg) return HttpResponseRedirect(reverse('ids_projects:project-list-private')) try: process_types = get_process_type_keys(project) data_fields = get_data_fields(project) data.set_fields(data_fields) except Exception as e: exception_msg = 'Unable to load config values. %s' % e logger.warning(exception_msg) context = {'process': data.process, 'project': data.project, 'specimen': data.specimen, 'data': data, 'process_types': process_types} return render(request, 'ids_projects/data/detail.html', context)
def edit(request, data_uuid): """""" api_client = request.user.agave_oauth.api_client try: data = Data(api_client=api_client, uuid=data_uuid) project = data.project except Exception as e: exception_msg = 'Unable to edit data. %s' % e logger.exception(exception_msg) messages.warning(request, exception_msg) return HttpResponseRedirect('/projects/') try: data_fields = get_data_fields(project) except Exception as e: exception_msg = 'Missing project type information, cannot edit data. %s' % e logger.error(exception_msg) messages.warning(request, exception_msg) return HttpResponseRedirect( reverse('ids_projects:project-view', kwargs={'project_uuid': project.uuid})) ####### # GET # ####### if request.method == 'GET': context = {'form_data_edit': DataForm(fields=data_fields, initial=data.value), 'data': data, 'project': data.project} return render(request, 'ids_projects/data/edit.html', context) ######## # POST # ######## elif request.method == 'POST': form = DataForm(data_fields, request.POST) if form.is_valid(): try: data.value.update(form.cleaned_data) data.save() messages.info(request, 'Data successfully edited.') return HttpResponseRedirect( reverse('ids_projects:data-view', kwargs={'data_uuid': data.uuid})) except Exception as e: exception_msg = 'Unable to edit data. %s' % e logger.error(exception_msg) messages.error(request, exception_msg) return HttpResponseRedirect( reverse('ids_projects:data-view', kwargs={'data_uuid': data.uuid}))