+
+def lanes_for(username=None):
+ """
+ Given a user id try to return recent lanes as a list of dictionaries
+ """
+ query = {}
+ if username is not None:
+ user = HTSUser.objects.get(username=username)
+ query.update({'library__affiliations__users__id': user.id})
+
+ lanes = Lane.objects.filter(**query).order_by('-flowcell__run_date')
+
+ result = []
+ for l in lanes:
+ result.append({ 'flowcell': l.flowcell.flowcell_id,
+ 'run_date': l.flowcell.run_date.isoformat(),
+ 'lane_number': l.lane_number,
+ 'library': l.library.id,
+ 'comment': l.comment})
+ return result
+
+def lanes_for_json(request, username):
+ """
+ Format lanes for a user
+ """
+ require_api_key(request)
+
+ try:
+ result = lanes_for(username)
+ except ObjectDoesNotExist, e:
+ raise Http404
+
+ #convert query set to python structure