def idba(request): response_dict = dict(settings.TEMPLATE_ARGS_BY_DEFAULT) response_dict.update(get_report_response_dict(os.path.join(settings.IDBA_DIRPATH))) response_dict['hide_date'] = True response_dict['data_set'] = { 'title': 'E. coli, single-cell', } return render_to_response('examples/idba.html', response_dict)
def example(request): response_dict = dict(settings.TEMPLATE_ARGS_BY_DEFAULT) response_dict.update(get_report_response_dict(settings.EXAMPLE_DIRPATH)) response_dict['title'] = response_dict['caption'] = 'Sample report' response_dict['hide_date'] = True response_dict['data_set'] = { 'title': 'E. coli, single-cell', } return render_to_response('report.html', response_dict)
def common_view(dir_name, caption, slug_name, download_fname, template_dir_name=None, html_template_name=None, data_set_name=None, title=None): template_dir_name = 'examples/' + (template_dir_name or dir_name) html_template_name = html_template_name or slug_name if download_fname: download_fpath = os.path.join(settings.FILES_DOWNLOADS_DIRPATH, download_fname) if os.path.exists(download_fpath): # if download_fname[-4:] == '.zip': # mimetype = 'application/zip' # else: # mimetype = 'application/force-download' # f = FileWrapper(fpath) # response = HttpResponse(mimetype=mimetype) # response['Content-Disposition'] = 'attachment; filename=%s' % download_fname # response['X-Sendfile'] = download_fpath # response['Content-Length'] = 100 # return response wrapper = FileWrapper(open(download_fpath, 'r')) content_type = mimetypes.guess_type(download_fpath)[0] response = HttpResponse(wrapper, content_type=content_type) response['Content-Length'] = os.path.getsize(download_fpath) response['Content-Disposition'] = 'attachment; filename=' + smart_str(download_fname) return response else: raise Http404('File %s does not exist' % download_fname) else: response_dict = dict(settings.TEMPLATE_ARGS_BY_DEFAULT) report_dict = get_report_response_dict( os.path.join(settings.FILES_DIRPATH, dir_name, slug_name)) response_dict.update(report_dict) response_dict['caption'] = caption response_dict['title'] = title response_dict['hide_date'] = True response_dict['download_link'] = slug_name + '_quast_report.zip' response_dict['download_text'] = download_text response_dict['data_set'] = { 'title': data_set_name, } return render_to_response(template_dir_name + html_template_name + '.html', response_dict)
def common_view(dir_name, caption, slug_name, download_fname): if download_fname: download_fpath = os.path.join(settings.FILES_DOWNLOADS_DIRPATH, slug_name, download_fname) if os.path.exists(download_fpath): # if download_fname[-4:] == '.zip': # mimetype = 'application/zip' # else: # mimetype = 'application/force-download' # f = FileWrapper(fpath) # response = HttpResponse(mimetype=mimetype) # response['Content-Disposition'] = 'attachment; filename=%s' % download_fname # response['X-Sendfile'] = download_fpath # response['Content-Length'] = 100 # return response wrapper = FileWrapper(open(download_fpath, 'r')) content_type = mimetypes.guess_type(download_fpath)[0] response = HttpResponse(wrapper, content_type=content_type) response['Content-Length'] = os.path.getsize(download_fpath) response['Content-Disposition'] = 'attachment; filename=' + smart_str(download_fname) return response else: raise Http404('File %s does not exist' % download_fname) else: response_dict = settings.TEMPLATE_ARGS_BY_DEFAULT report_dict = get_report_response_dict( os.path.join(settings.PAPER_DIRPATH, slug_name), caption, link=slug_name + '_quast_report.zip' ) response_dict.update(report_dict) response_dict['download'] = True # response_dict['download_link'] = slug_name + '_quast_report.zip' response_dict['download_text'] = download_text return render_to_response(dir_name + slug_name + '.html', response_dict)
def report_view(dir_name, caption, slug_name, template_dir_name=None, html_template_name=None, data_set_name=None, title=None): template_dir_name = 'examples/' + (template_dir_name or dir_name) html_template_name = html_template_name or slug_name response_dict = dict(settings.TEMPLATE_ARGS_BY_DEFAULT) report_dict = get_report_response_dict(os.path.join(settings.FILES_DIRPATH, dir_name, slug_name)) response_dict.update(report_dict) response_dict['caption'] = caption response_dict['title'] = title response_dict['hide_date'] = True response_dict['download_link'] = slug_name + '_quast_report.zip' response_dict['download_text'] = download_text response_dict['download'] = True response_dict['data_set'] = { 'title': data_set_name, } return render_to_response(template_dir_name + html_template_name + '.html', response_dict)
def index_view(us, response_dict, request): # Evaluation if request.method == 'POST': log_msg = 'Somebody posted a form:' for k, v in request.POST.items(): if k == 'contigs:': log_msg += '\n\t%s' % k for contig in v.split('\n'): log_msg += '\n\t\t%s' % contig else: log_msg += '\n\t%s:\t%s' % (str(k), str(v)) # mailer.info(log_msg) form = DataSetForm(us, request.POST) report_id = form.data.get('report_id') if not report_id: logger.error('data_set_form.data.get(\'report_id\') is None') return HttpResponseBadRequest('No report_id in form') try: qs = QuastSession.objects.get(report_id=report_id) except QuastSession.DoesNotExist: logger.error('QuastSession with report_id=%s does not exist' % report_id) return HttpResponseBadRequest('No quast session with report_id=%s' % report_id) else: #TODO: Temporary, used because user_session was always deleted when registering a user if not qs.user_session: qs.user_session = us #TODO: End of temporary # Contigs fnames from this form # contigs_in_form = data_set_form.data.get('contigs') # # split = contigs_in_form.split('\r\n') # if len(split) == 1: # split = contigs_in_form.split('\n') # if len(split) == 1: # logger.error('No contigs fnames got from "data_set_form.contigs": the value got is %s', str(contigs_in_form)) # return HttpResponseBadRequest("Error: no contigs loaded") # contigs_fnames = split[:-1] if form.is_valid(): qs.submitted = True qs.min_contig = form.cleaned_data['min_contig'] qs.scaffolds = form.cleaned_data['scaffolds'] qs.eukaryotic = form.cleaned_data['domain'] == 'True' qs.estimated_ref_size = form.cleaned_data['estimated_ref_size'] qs.find_genes = form.cleaned_data['find_genes'] qs.data_set = get_data_set(request, form, us, default_name=qs.report_id) us.set_min_contig(qs.min_contig) us.set_scaffolds(qs.scaffolds) us.set_eukaryotic(qs.eukaryotic) us.set_estimated_ref_size(qs.estimated_ref_size) us.set_find_genes(qs.find_genes) us.set_default_data_set(qs.data_set) us.save() qs.comment = form.cleaned_data.get('comment') qs.caption = form.cleaned_data.get('caption') qs.generate_link() qs.save() logger.info('quast_app.views.index.POST: ' 'caption = %s, link = %s, data set = %s, ' 'min_contig = %d, scaffolds = %r, eukaryotic = %r, find_genes = %r', qs.caption, qs.get_report_html_link(), qs.data_set.name if qs.data_set else '<unknown>', qs.min_contig, qs.scaffolds, qs.eukaryotic, qs.find_genes) # Starting Quast start_quast_session(us, qs) # return HttpResponseRedirect(reverse('True})) request.session['after_evaluation'] = True # return redirect('quast_app.views.index') return HttpResponseRedirect(reverse("quast_app.views.index")) # return redirect('quast_app.views.report', link=quast_session.link) else: logger.info('quast_app.views.index.POST: form invalid, errors are: = %s', str(form.errors.items())) elif request.method == 'GET': # min_contig = request.session.get('min_contig') or qconfig.min_contig # scaffolds = request.session.get('scaffolds') or False # eukaryotic = request.session.get('eukaryotic') or False # estimated_ref_size = request.session.get('estimated_ref_size') or None # find_genes = request.session.get('find_genes') or False qs = QuastSession.create(us) form = DataSetForm(us, initial={ 'report_id': qs.report_id, 'name_selected': qs.data_set.name if qs.data_set else None, 'min_contig': qs.min_contig, 'scaffolds': qs.scaffolds, 'domain': qs.eukaryotic, 'estimated_ref_size': qs.estimated_ref_size, 'find_genes': qs.find_genes, }) response_dict['report_id'] = qs.report_id # Default data set for this user # if user_session.get_default_data_set(): # default_data_set_name = user_session.get_default_data_set().name # else: # default_data_set_name = request.session.get('default_data_set_name') or '' # if default_data_set_name: # try: # default_data_set = DataSet.objects.get(name=default_data_set_name) # user_session.set_default_data_set(default_data_set) # except DataSet.DoesNotExist: # pass # # form.set_default_data_set_name(default_data_set_name) else: logger.warn('Request method is %s' % request.method) return HttpResponseBadRequest("GET and POST are only supported here") # uploaded_contigs_fnames = [c_f.fname for c_f in user_session.contigsfile_set.all()] response_dict.update({ 'csrf_token': get_token(request), 'contigs_fnames': [], 'contig_max_size_mb': settings.CONTIG_MAX_SIZE_MB, 'qs_form': form, 'email': us.get_email(), 'session_key': us.session_key, 'is_authorized': us.user is not None, }) # REPORTS response_dict.update(get_reports_response_dict( us, after_evaluation=request.session.get('after_evaluation', False), limit=settings.REPORTS_SHOW_LIMIT)) request.session['after_evaluation'] = False # EXAMPLE response_dict.update(get_report_response_dict(settings.EXAMPLE_DIRPATH)) response_dict['hide_date'] = True response_dict['data_set'] = { 'title': 'E. coli, single-cell', } return render_to_response( 'index.html', response_dict, context_instance=RequestContext(request))