From: Diane Trout Date: Wed, 8 Apr 2009 00:47:34 +0000 (+0000) Subject: Stop assuming that library_id == pk. X-Git-Tag: 0.2.0.4~1 X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=commitdiff_plain;h=13b0610dfe43ae185aaf64ddf0086b39bccb32e9 Stop assuming that library_id == pk. I needed to fix the get_absolute_url to lookup by library_id, we needed a redirect function to get to the right admin page. And for sequence runs I don't have any eland results so the get result files failed because it was assuming that the eland_result from the run xml would always have all 8 lanes defined in its dictionary. Now I check to see if its defined and if its not I don't display anything. --- diff --git a/htsworkflow/frontend/samples/models.py b/htsworkflow/frontend/samples/models.py index 26d7185..7199fbf 100644 --- a/htsworkflow/frontend/samples/models.py +++ b/htsworkflow/frontend/samples/models.py @@ -237,4 +237,4 @@ class Library(models.Model): @models.permalink def get_absolute_url(self): - return ('htsworkflow.frontend.samples.views.library_to_flowcells', [str(self.id)]) + return ('htsworkflow.frontend.samples.views.library_to_flowcells', [str(self.library_id)]) diff --git a/htsworkflow/frontend/samples/views.py b/htsworkflow/frontend/samples/views.py index ee42626..478c547 100644 --- a/htsworkflow/frontend/samples/views.py +++ b/htsworkflow/frontend/samples/views.py @@ -9,7 +9,7 @@ from htsworkflow.frontend import settings from htsworkflow.util import makebed from htsworkflow.util import opener -from django.http import HttpResponse +from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext from django.template.loader import get_template @@ -316,7 +316,7 @@ def _make_eland_results(flowcell_id, lane, interesting_flowcells): results = [] for cycle in cur_fc.keys(): - result_path = cur_fc[cycle]['eland_results'][lane] + result_path = cur_fc[cycle]['eland_results'].get(lane, None) result_link = make_result_link(flowcell_id, cycle, lane, result_path) results.append({'flowcell_id': flowcell_id, 'cycle': cycle, @@ -333,6 +333,9 @@ def make_summary_url(flowcell_id, cycle_name): return url def make_result_link(flowcell_id, cycle_name, lane, eland_result_path): + if eland_result_path is None: + return ("", "", "") + result_type = get_eland_result_type(eland_result_path) result_url = '/results/%s/%s/eland_result/%s' % (flowcell_id, cycle_name, lane) result_label = 'eland %s' % (result_type,) @@ -377,4 +380,8 @@ def _files(flowcell_id, lane): return '' return '(' + '|'.join(output) + ')' - + +def library_id_to_admin_url(request, lib_id): + lib = Library.objects.get(library_id=lib_id) + return HttpResponseRedirect('/admin/samples/library/%s' % (lib.id,)) +