def edit_data(request): context = {} task = request.POST['task'] profile_id = request.session['profile_id'] if task == 'data': context['table_data'] = htags.generate_copo_datafiles_data(profile_id) if task == 'wiz': context['wiz_message'] = lkup.DF_WIZARD out = jsonpickle.encode(context) return HttpResponse(out, content_type='json')
def inspect_file(request): # utillity method to examine a file and return meta-data to the frontend output_dict = {'file_type': 'unknown', 'do_compress': False} # get reference to file file_id = request.GET['file_id'] chunked_upload = ChunkedUpload.objects.get(id=int(file_id)) file_name = os.path.join(MEDIA_ROOT, chunked_upload.file.name) # size threshold to determine if a file should be compressed zip_threshold = 200000000 # size in bytes # check if file is compressed is_zipped = u.is_gzipped(file_name) if chunked_upload.offset >= zip_threshold and not is_zipped: output_dict['do_compress'] = True # check for file type if u.is_pdf_file(file_name): output_dict['file_type'] = 'pdf' else: try: if (u.is_fastq_file(file_name)): output_dict['file_type'] = 'fastq' elif (u.is_sam_file(file_name)): output_dict['file_type'] = 'sam' elif (u.is_bam_file(file_name)): output_dict['file_type'] = 'bam' except: output_dict['file_type'] = '' # add datafile schema chunked_upload.type = output_dict['file_type'] chunked_upload.save() # ...and obtain the inserted record profile_id = request.session['profile_id'] df = DataFile(profile_id).save_datafile(file_id) output_dict['data_file_id'] = str(df["_id"]) output_dict['table_data'] = htags.generate_copo_datafiles_data(profile_id, df) out = jsonpickle.encode(output_dict) return HttpResponse(out, content_type='json')