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')
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)
+ )
'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'),
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.