def render_to_response(self, context, **response_kwargs): print("Render to response") if BrowseView.output: # or self.download: BrowseView.output = False response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment: filename="output.csv"' writer = csv.writer(response, delimiter="\t") dump(self.qs, write=False, writer=writer, exclude=('created','updated', 'choice')) return response else: return super(BrowseView, self).render_to_response(context, **response_kwargs)
def search(request, keyword=None, template_name='longevitydb/search.html'): print("Searching", keyword) print(request.POST) variants = Variant.objects.all() context_data = {} if request.method == 'POST': # if ('keyword' in request.POST): # or (keyword and keyword != "Nothing"): print("Keyword is true") #print(request.POST) if keyword and keyword != "Nothing": keyword = keyword else: keyword = request.POST['keyword'] try: query = float(keyword) variants1 = variants.filter(Q(odds_ratio=query) | Q(pvalue=query) | Q(pmid=query) | Q(factor__entrez_gene_id=query)) except Exception as e: variants1 = variants.filter(Q(polymorphism__icontains=keyword) | Q(location__icontains=keyword) | Q(initial_number__icontains=keyword) | Q(replication_number__icontains=keyword) | Q(age_of_cases__icontains=keyword) | Q(factor__symbol=keyword) | Q(factor__name__icontains=keyword) | Q(factor__ensembl_gene_id=keyword) | Q(description__icontains=keyword) | Q(longer_lived_allele__icontains=keyword) | Q(shorter_lived_allele__icontains=keyword) | Q(ethnicity__name__icontains=keyword) | Q(study_type__name__icontains=keyword) | Q(technology__name__icontains=keyword) | Q(reference__title__icontains=keyword)).order_by('-id').order_by('pvalue') # keyword = 'Nothing' # if ('term' in request.POST) or (t and t != "Nothing"): # if t and t != "Nothing": # term = t # else: term = request.POST['keyword'].replace('"', '') # if 'GO:' in term: terms = GO.objects.filter(go_id=term) else: terms = GO.objects.filter(go_term__icontains=term) ids = ["Q(factor__entrez_gene_id=%s)" % go.entrez_gene_id for go in terms] if ids: sql = " | ".join(ids) print('SQL: %s' % sql.count('factor__entrez_gene')) variants2 = eval("variants.filter("+sql+")") variants = variants1 | variants2 else: variants = variants1 else: try: query = float(keyword) variants1 = variants.filter(Q(odds_ratio=query) | Q(pvalue=query) | Q(pmid=query) | Q(factor__entrez_gene_id=query)) except Exception as e: variants1 = variants.filter(Q(polymorphism__icontains=keyword) | Q(location__icontains=keyword) | Q(initial_number__icontains=keyword) | Q(replication_number__icontains=keyword) | Q(age_of_cases__icontains=keyword) | Q(factor__symbol=keyword) | Q(factor__name__icontains=keyword) | Q(factor__ensembl_gene_id=keyword) | Q(description__icontains=keyword) | Q(longer_lived_allele__icontains=keyword) | Q(shorter_lived_allele__icontains=keyword) | Q(ethnicity__name__icontains=keyword) | Q(study_type__name__icontains=keyword) | Q(technology__name__icontains=keyword) | Q(reference__title__icontains=keyword)).order_by('-id').order_by('pvalue') term = keyword if 'GO:' in term: terms = GO.objects.filter(go_id=term) else: terms = GO.objects.filter(go_term__icontains=term) ids = ["Q(factor__entrez_gene_id=%s)" % go.entrez_gene_id for go in terms] sql = " | ".join(ids) #print("SQL = " % sql.count('factor__entrez_gene_id')) variants2 = eval("variants.filter("+sql+")") variants = variants1 | variants2 qs = variants.distinct().order_by('pvalue') #.exclude(choice__name__contains='Review') #response_dict = {'keyword': keyword, 'term': term} response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment: filename="output.csv"' writer = csv.writer(response, delimiter="\t") dump(qs, write=False, writer=writer, exclude=('created','updated', 'choice')) return response # else: # term = 'Nothing' # from itertools import chain #variants = list(chain(variants1, variants2)) qs = variants.distinct().order_by('pvalue') #.exclude(choice__name__contains='Review') # context_data['keyword'] = keyword context_data['term'] = term # if keyword: # keyword = keyword # term = keyword # response_dict = {'keyword': keyword, 'term': term} # response = HttpResponse(content_type='text/csv') # response['Content-Disposition'] = 'attachment: filename="output.csv"' # writer = csv.writer(response, delimiter="\t") # dump(qs, write=False, writer=writer, exclude=('created','updated', 'choice')) # return response # table = VariantTable(qs) RequestConfig(request).configure(table) context_data['table'] = table #context_data = {} return render(request, template_name, context_data) else: table = VariantTable(Variant.objects.all().order_by('pvalue').exclude(pvalue=None)) RequestConfig(request).configure(table) context_data = {'keyword': "Nothing", 'table': table} return render(request, template_name, context_data)
if __name__ == "__main__": import service.generateRawInfo as generateRawInfo import configuration.config as config_interface import yinterface.yInterface as md_interface import marketApi.algoritms as algorithms_interface import utils.dumper as dumper value = generateRawInfo.GenerateRawInfo(config_interface, md_interface, algorithms_interface).do() dumper.dump(value, "d:\\tmp\\dumps")