Provide a dummy eland result lane class if there's nothing appropriate in the xml
[htsworkflow.git] / htsworkflow / frontend / samples / views.py
index 853a0ff8a3aa217c6c2f2e426bc102324491bc76..3fbfe792fd9224a5c68f78d4abaf7f1ac91b999f 100644 (file)
@@ -3,8 +3,10 @@ from htsworkflow.frontend.experiments.models import FlowCell
 from htsworkflow.frontend.samples.changelist import ChangeList
 from htsworkflow.frontend.samples.models import Library
 from htsworkflow.frontend.samples.results import get_flowcell_result_dict, parse_flowcell_id
+from htsworkflow.frontend.bcmagic.forms import BarcodeMagicForm
 from htsworkflow.pipelines.runfolder import load_pipeline_run_xml
 from htsworkflow.pipelines import runfolder
+from htsworkflow.pipelines.eland import ResultLane
 from htsworkflow.frontend import settings
 from htsworkflow.util import makebed
 from htsworkflow.util import opener
@@ -22,7 +24,8 @@ import os
 
 LANE_LIST = [1,2,3,4,5,6,7,8]
 SAMPLES_CONTEXT_DEFAULTS = {
-    'app_name': 'Flowcell/Library Tracker'
+    'app_name': 'Flowcell/Library Tracker',
+    'bcmagic': BarcodeMagicForm()
 }
 
 def create_library_context(cl):
@@ -105,12 +108,17 @@ def library_to_flowcells(request, lib_id):
         eland_results.extend(_make_eland_results(fc, lane, interesting_flowcells))
         lane_summary_list.extend(lane_summary)
 
+    context = {
+        'page_name': 'Library Details',
+        'lib': lib,
+        'eland_results': eland_results,
+        'lane_summary_list': lane_summary_list,
+    }
+    context.update(SAMPLES_CONTEXT_DEFAULTS)
+
     return render_to_response(
         'samples/library_detail.html',
-        {'lib': lib,
-         'eland_results': eland_results,
-         'lane_summary_list': lane_summary_list,
-        },
+        context,
         context_instance = RequestContext(request))
 
 def summaryhtm_fc_cnm(request, flowcell_id, cnm):
@@ -231,7 +239,11 @@ def _summary_stats(flowcell_id, lane_id):
         run = load_pipeline_run_xml(xmlpath)
         gerald_summary = run.gerald.summary.lane_results
         for end in range(len(gerald_summary)):
-            eland_summary = run.gerald.eland_results.results[end][lane_id]
+            end_summary = run.gerald.eland_results.results[end]
+            if end_summary.has_key(lane_id):
+                eland_summary = run.gerald.eland_results.results[end][lane_id]
+            else:
+                eland_summary = ResultLane(lane_id=lane_id, end=end)
             # add information to lane_summary
             eland_summary.flowcell_id = flowcell_id
             eland_summary.clusters = gerald_summary[end][lane_id].cluster
@@ -438,4 +450,4 @@ def user_profile(request):
             }
     context.update(SAMPLES_CONTEXT_DEFAULTS)
     return render_to_response('registration/profile.html', context,
-                              context_instance=RequestContext(request))
\ No newline at end of file
+                              context_instance=RequestContext(request))