import re
from django.contrib.auth.decorators import login_required
-from django.contrib.csrf.middleware import csrf_exempt
+from django.views.decorators.csrf import csrf_exempt
from django.core.exceptions import ObjectDoesNotExist
from django.core.mail import send_mail, mail_admins
from django.http import HttpResponse, Http404
from django.conf import settings
+from django.utils import timezone
from htsworkflow.frontend.auth import require_api_key
from htsworkflow.frontend.experiments.models import \
raise Http404
fc_json = json.dumps(fc_dict)
- return HttpResponse(fc_json, mimetype = 'application/json')
+ return HttpResponse(fc_json, content_type = 'application/json')
def lanes_for(username=None):
"""
#convert query set to python structure
result_json = json.dumps(result)
- return HttpResponse(result_json, mimetype='application/json')
+ return HttpResponse(result_json, content_type='application/json')
def updStatus(request):
rec.run_status = UpdatedStatus
#if there's a message update that too
- mytimestamp = datetime.now().__str__()
+ mytimestamp = timezone.now().__str__()
mytimestamp = re.sub(pattern=":[^:]*$",repl="",string=mytimestamp)
if request.REQUEST.has_key('msg'):
rec.run_note += ", "+request.REQUEST['msg']+" ("+mytimestamp+")"
except ObjectDoesNotExist:
cnfgfile = 'Entry not found for RunFolder = '+runfolder
- return HttpResponse(cnfgfile, mimetype='text/plain')
+ return HttpResponse(cnfgfile, content_type='text/plain')
def getLaneLibs(req):
granted = False
outputfile = 'Flowcell entry not found for: '+fcid
else: outputfile = 'Missing input: flowcell id'
- return HttpResponse(outputfile, mimetype='text/plain')
+ return HttpResponse(outputfile, content_type='text/plain')
def estimateFlowcellDuration(flowcell):
"""
Attempt to estimate how long it will take to run a flowcell
"""
- # (3600 seconds * 1.5 hours per cycle )
- sequencing_seconds_per_cycle= 3600 * 1.5
- # 800 is a rough guess
- pipeline_seconds_per_cycle = 800
-
cycles = flowcell.read_length
if flowcell.paired_end:
cycles *= 2
- sequencing_time = timedelta(0, cycles * sequencing_seconds_per_cycle)
- analysis_time = timedelta(0, cycles * pipeline_seconds_per_cycle)
+ sequencing_time = timedelta(0, cycles * flowcell.flowcell_model.per_cycle_time)
+ analysis_time = timedelta(0, flowcell.flowcell_model.fixed_time)
estimate_mid = sequencing_time + analysis_time
return estimate_mid
estimate_mid = estimateFlowcellDuration(flowcell)
# offset for how long we've been running
- running_time = datetime.now() - flowcell.run_date
+ running_time = timezone.now() - flowcell.run_date
estimate_mid -= running_time
return estimate_mid