Move lanes_for from samples to experiments
authorDiane Trout <diane@ghic.org>
Tue, 5 May 2015 21:18:41 +0000 (14:18 -0700)
committerDiane Trout <diane@ghic.org>
Tue, 5 May 2015 21:18:41 +0000 (14:18 -0700)
experiments/views.py
htsworkflow/urls.py
samples/views.py

index 7d30bbeb19d337da8ce3b5f2af57422b640da49b..1e7c3f2c2c11bcc5dbce56f085ffd99439b8f0b9 100644 (file)
@@ -19,6 +19,9 @@ from .models import DataRun, DataFile, FlowCell, Lane, Sequencer
 from .experiments import estimateFlowcellDuration, estimateFlowcellTimeRemaining, roundToDays, \
      getUsersForFlowcell, \
      makeEmailLaneMap
+from samples.changelist import HTSChangeList
+from samples.models import HTSUser
+
 
 def index(request):
     all_runs = DataRun.objects.order_by('-run_start_time')
@@ -187,3 +190,33 @@ def sequencer(request, sequencer_id):
     context = RequestContext(request,
                              {'sequencer': sequencer})
     return render_to_response('experiments/sequencer.html', context)
+
+
+def lanes_for(request, username=None):
+    """
+    Generate a report of recent activity for a user
+    """
+    query = {}
+    if username is not None:
+        try:
+            user = HTSUser.objects.get(username=username)
+            query.update({'library__affiliations__users__id': user.id})
+        except HTSUser.DoesNotExist as e:
+            raise Http404('User not found')
+
+    fcl = HTSChangeList(request, Lane,
+                        list_filter=['library__affiliations',
+                                     'library__library_species'],
+                        search_fields=['flowcell__flowcell_id', 'library__id', 'library__library_name'],
+                        list_per_page=200,
+                        model_admin=LaneOptions(Lane, None),
+                        extra_filters=query
+                        )
+
+    context = {'lanes': fcl, 'title': 'Lane Index'}
+
+    return render_to_response(
+        'samples/lanes_for.html',
+        context,
+        context_instance=RequestContext(request)
+    )
index 1bfbf3d40018d261a570e464f1a39e8e1a602394..bb8364280e69f5ad649b41081b613a62c4389263 100644 (file)
@@ -17,8 +17,8 @@ urlpatterns = patterns('',
         'experiments.views.flowcell_detail'),
     url(r'^inventory/', include('inventory.urls')),
     url(r'^library/', include('samples.urls')),
-    url(r'^lanes_for/$', 'samples.views.lanes_for'),
-    url(r'^lanes_for/(?P<username>\w+)', 'samples.views.lanes_for'),
+    url(r'^lanes_for/$', 'experiments.views.lanes_for'),
+    url(r'^lanes_for/(?P<username>[-_ \w]+)', 'experiments.views.lanes_for'),
     ### library id to admin url
     url(r'^library_id_to_admin_url/(?P<lib_id>\w+)/$',
         'samples.views.library_id_to_admin_url'),
index d3398358815821982ceafb6d2466c8fb7622d5a0..050c2a5d58b816e3c1b0e0fbd3ef683f58e19375 100644 (file)
@@ -160,31 +160,6 @@ def library_to_flowcells(request, lib_id):
         context_instance=RequestContext(request))
 
 
-def lanes_for(request, username=None):
-    """
-    Generate a report of recent activity for a user
-    """
-    query = {}
-    if username is not None:
-        user = HTSUser.objects.get(username=username)
-        query.update({'library__affiliations__users__id': user.id})
-    fcl = HTSChangeList(request, Lane,
-                        list_filter=[],
-                        search_fields=['flowcell__flowcell_id', 'library__id', 'library__library_name'],
-                        list_per_page=200,
-                        model_admin=LaneOptions,
-                        queryset=Lane.objects.filter(**query)
-                        )
-
-    context = {'lanes': fcl, 'title': 'Lane Index'}
-
-    return render_to_response(
-        'samples/lanes_for.html',
-        context,
-        context_instance=RequestContext(request)
-    )
-
-
 def summaryhtm_fc_cnm(request, flowcell_id, cnm):
     """
     returns a Summary.htm file if it exists.