X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;ds=sidebyside;f=django_simple%2Ftodo%2Fviews.py;h=61d5b618223d8be3864a5eb2beb3d9af34a8bb54;hb=041ac85ddbd6a090a7b0973acb8caaa6a1db2089;hp=941d637bf18c3a7bfa3104d778e49920ac9d7c3c;hpb=14a8ce5fdea84a849138c00b781957aa582b19d5;p=django_unres.git diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 941d637..61d5b61 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -124,11 +124,27 @@ def add(request): def add_min(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': + if '_example' in request.POST: + data= {'name':task.name,'pdbid':'1BDD'} + form = TaskForm_min(initial=data) + else: form = TaskForm_min(request.POST,request.FILES) if form.is_valid(): task.name=form.cleaned_data["name"] task.type="min" - task.myfile1=form.cleaned_data["file1"] + pdbid=form.cleaned_data["pdbid"] + + basename = str(task.owner) + suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") + task.jobdirname = "_".join([basename, suffix]) + + if pdbid: + os.mkdir(task.jobdirname) + task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + task.jobdirname+'/plik.pdb') + task.pdbcode=pdbid + else: + task.myfile1=form.cleaned_data["file1"] seq,task.ssbond=from_pdb(task.myfile1) task.md_seq="" @@ -136,13 +152,10 @@ def add_min(request,task_id): task.md_seq=task.md_seq+seq[i:i+40]+" " task.ready=True - basename = str(task.owner) - suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") - task.jobdirname = "_".join([basename, suffix]) task.save() if is_lazy_user(request.user): - return render(request, "details.html",{'task':task}) + return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') else: return redirect('/') else: @@ -156,6 +169,10 @@ def add_min(request,task_id): def add_min_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': + if '_example' in request.POST: + data= {'name':task.name,'pdbid':'1EI0','unres_ff':'opt-wtfsa-2'} + form = TaskForm_min_a(initial=data) + else: form = TaskForm_min_a(request.POST,request.FILES) if form.is_valid(): task.name=form.cleaned_data["name"] @@ -166,7 +183,20 @@ def add_min_a(request,task_id): task.min_maxmin=form.cleaned_data["min_maxmin"] task.min_maxfun=form.cleaned_data["min_maxfun"] task.min_pdbout=form.cleaned_data["min_pdbout"] - task.myfile1=form.cleaned_data["file1"] + + basename = str(task.owner) + suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") + task.jobdirname = "_".join([basename, suffix]) + + pdbid=form.cleaned_data["pdbid"] + if pdbid: + os.mkdir(task.jobdirname) + task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + task.jobdirname+'/plik.pdb') + task.pdbcode=pdbid + else: + task.myfile1=form.cleaned_data["file1"] + task.min_unres_pdb=form.cleaned_data["min_unres_pdb"] task.unres_ff=form.cleaned_data["unres_ff"] task.boxx=form.cleaned_data["boxx"] @@ -178,15 +208,11 @@ def add_min_a(request,task_id): for i in range(0,len(seq),40): task.md_seq=task.md_seq+seq[i:i+40]+" " - task.ready=True - basename = str(task.owner) - suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") - task.jobdirname = "_".join([basename, suffix]) task.save() if is_lazy_user(request.user): - return render(request, "details.html",{'task':task}) + return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') else: return redirect('/') else: @@ -200,6 +226,11 @@ def add_min_a(request,task_id): def add_md(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': + if '_example' in request.POST: + data= {'name':task.name,'pdbid':'1IGD','md_start':'pdbstart', + 'md_pdbref':True,'md_temp':200} + form = TaskForm_md(initial=data) + else: form = TaskForm_md(request.POST,request.FILES) if form.is_valid(): task.name=form.cleaned_data["name"] @@ -208,8 +239,19 @@ def add_md(request,task_id): task.md_start=form.cleaned_data["md_start"] task.md_temp=form.cleaned_data["md_temp"] task.md_nstep=form.cleaned_data["md_nstep"] - - task.myfile1=form.cleaned_data["file1"] + + basename = str(task.owner) + suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") + task.jobdirname = "_".join([basename, suffix]) + + pdbid=form.cleaned_data["pdbid"] + if pdbid: + os.mkdir(task.jobdirname) + task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + task.jobdirname+'/plik.pdb') + task.pdbcode=pdbid + else: + task.myfile1=form.cleaned_data["file1"] task.md_pdbref=form.cleaned_data["md_pdbref"] task.md_seq="" @@ -225,13 +267,10 @@ def add_md(request,task_id): task.ssbond='' task.ready=True - basename = str(task.owner) - suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") - task.jobdirname = "_".join([basename, suffix]) task.save() if is_lazy_user(request.user): - return render(request, "details.html",{'task':task}) + return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') else: return redirect('/') else: @@ -245,12 +284,28 @@ def add_md(request,task_id): def add_md_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': + if '_example' in request.POST: + data= {'name':task.name,'pdbid':'1L2Y','md_start':'extconf', + 'md_pdbref':True,'md_mdpdb':True} + form = TaskForm_md_a(initial=data) + else: form = TaskForm_md_a(request.POST,request.FILES) if form.is_valid(): task.name=form.cleaned_data["name"] task.type="md" - task.myfile1=form.cleaned_data["file1"] + basename = str(task.owner) + suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") + task.jobdirname = "_".join([basename, suffix]) + + pdbid=form.cleaned_data["pdbid"] + if pdbid: + os.mkdir(task.jobdirname) + task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + task.jobdirname+'/plik.pdb') + task.pdbcode=pdbid + else: + task.myfile1=form.cleaned_data["file1"] task.md_start=form.cleaned_data["md_start"] task.md_pdbref=form.cleaned_data["md_pdbref"] @@ -283,13 +338,10 @@ def add_md_a(request,task_id): task.ready=True - basename = str(task.owner) - suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") - task.jobdirname = "_".join([basename, suffix]) task.save() if is_lazy_user(request.user): - return render(request, "details.html",{'task':task}) + return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') else: return redirect('/') else: @@ -303,12 +355,28 @@ def add_md_a(request,task_id): def add_remd(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': + if '_example' in request.POST: + data= {'name':task.name,'pdbid':'1L2Y','md_pdbref':True} + form = TaskForm_remd(initial=data) + else: form = TaskForm_remd(request.POST,request.FILES) if form.is_valid(): task.name=form.cleaned_data["name"] task.type="remd" task.md_start=form.cleaned_data["md_start"] - task.myfile1=form.cleaned_data["file1"] + + basename = str(task.owner) + suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") + task.jobdirname = "_".join([basename, suffix]) + + pdbid=form.cleaned_data["pdbid"] + if pdbid: + os.mkdir(task.jobdirname) + task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + task.jobdirname+'/plik.pdb') + task.pdbcode=pdbid + else: + task.myfile1=form.cleaned_data["file1"] task.md_pdbref=form.cleaned_data["md_pdbref"] task.md_ntwx=task.remd_nstex @@ -330,13 +398,10 @@ def add_remd(request,task_id): task.ready=True - basename = str(task.owner) - suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") - task.jobdirname = "_".join([basename, suffix]) task.save() if is_lazy_user(request.user): - return render(request, "details.html",{'task':task}) + return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') else: return redirect('/') else: @@ -350,12 +415,29 @@ def add_remd(request,task_id): def add_remd_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': + if '_example' in request.POST: + data= {'name':task.name,'pdbid':'1E0G','md_pdbref':True, + 'md_nstep':500000,'md_lang':'berendsen','unres_ff':'opt-wtfsa-2', + 'remd_cluter_temp':280} + form = TaskForm_remd_a(initial=data) + else: form = TaskForm_remd_a(request.POST,request.FILES) if form.is_valid(): task.name=form.cleaned_data["name"] task.type="remd" - task.myfile1=form.cleaned_data["file1"] + basename = str(task.owner) + suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") + task.jobdirname = "_".join([basename, suffix]) + + pdbid=form.cleaned_data["pdbid"] + if pdbid: + os.mkdir(task.jobdirname) + task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb', + task.jobdirname+'/plik.pdb') + task.pdbcode=pdbid + else: + task.myfile1=form.cleaned_data["file1"] task.md_start=form.cleaned_data["md_start"] task.md_pdbref=form.cleaned_data["md_pdbref"] @@ -387,14 +469,9 @@ def add_remd_a(request,task_id): task.boxy=form.cleaned_data["boxy"] task.boxz=form.cleaned_data["boxz"] - task.remd_cluter_temp=form.cleaned_data["remd_cluter_temp"] task.unres_ff=form.cleaned_data["unres_ff"] - basename = str(task.owner) - suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S") - task.jobdirname = "_".join([basename, suffix]) - task.save() return redirect('addmlist',task_id=task.id) else: @@ -416,7 +493,7 @@ def addmlist(request,task_id): task.save() if is_lazy_user(request.user): - return render(request, "details.html",{'task':task}) + return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/') else: return redirect('/') else: @@ -437,20 +514,69 @@ def addmlist(request,task_id): p_type='replica exchange molecular dynamics - advanced options' return render(request, 'edit_lista.html', {'form': form, 'task':task, 'p_type':p_type}) +@login_required def details(request,task_id): task = get_object_or_404(Task, id=task_id) return render(request, "details.html",{'task':task}) + +def details1(request,user_id,task_id): + task = get_object_or_404(Task, id=task_id) + return render(request, "details1.html",{'task':task}) + + @login_required def delete(request, task_id): Task.objects.get(id=task_id).delete() return redirect('/') +def refresh_done1(request, task_id): + task = get_object_or_404(Task, id=task_id) + user = task.owner + refresh_done0(task) + + proc = subprocess.Popen('/opt/torque/bin/qstat', stdout=subprocess.PIPE) + njob=0 + nq=0 + for line in proc.stdout: + if 'piasek4' in line: + if line.split()[1]=='test_server': + njob+=1 + if line.split()[-2]=='Q': + nq+=1 + variable='Idle jobs='+str(nq)+' Total jobs='+str(njob) + + return redirect('/details1/'+str(user)+'/'+str(task.id)+'/') + + @login_required def refresh_done(request): user = request.user tasks = Task.objects.filter(owner=user).order_by('-created_date') for task in tasks: + refresh_done0(task) + + proc = subprocess.Popen('/opt/torque/bin/qstat', stdout=subprocess.PIPE) + njob=0 + nq=0 + for line in proc.stdout: + if 'piasek4' in line: + if line.split()[1]=='test_server': + njob+=1 + if line.split()[-2]=='Q': + nq+=1 + variable='Idle jobs='+str(nq)+' Total jobs='+str(njob) + + if is_lazy_user(request.user): + return redirect('/details1/'+str(user)+'/'+str(task.id)+'/') + else: + return render(request, "index.html", { + 'tasks': tasks , + 'variable' : variable + }) + + +def refresh_done0(task): if os.path.isfile(task.jobdirname+'/finished') and not task.done: task.done=True @@ -475,15 +601,15 @@ def refresh_done(request): elif task.type=='remd': j=0 - text="Acceptance for replica exchanges\n" + text="Acceptance for replica exchanges and number of exchange attempts\n" for line in f: if 'ACC' in line: j+=1 - text=text+line + text=text+' '.join(line.split()[2:])+"\n" if j==task.remd_nrep: j=1 - text="Acceptance for replica exchanges\n"+line + text="Acceptance for replica exchanges and number of exchange attempts\n"+' '.join(line.split()[2:])+"\n" if 'Total wall' in line: text=text+line @@ -498,15 +624,15 @@ def refresh_done(request): with open(task.jobdirname+'/file_wham_T'+str(int(task.remd_cluter_temp))+'K_000'+str(i)+'.pdb', 'r') as f: line=f.readline() if i==1: - task.remd_model1=' '.join(line.split()[-6:]) + task.remd_model1='Cluster1 '+' '.join(line.split()[-3:]) elif i==2: - task.remd_model2=' '.join(line.split()[-6:]) + task.remd_model2='Cluster2 '+' '.join(line.split()[-3:]) elif i==3: - task.remd_model3=' '.join(line.split()[-6:]) + task.remd_model3='Cluster3 '+' '.join(line.split()[-3:]) elif i==4: - task.remd_model4=' '.join(line.split()[-6:]) + task.remd_model4='Cluster4 '+' '.join(line.split()[-3:]) elif i==5: - task.remd_model5=' '.join(line.split()[-6:]) + task.remd_model5='Cluster5 '+' '.join(line.split()[-3:]) except EnvironmentError: print 'file_wham_T*pdb open error' for i in range(1,6): @@ -574,23 +700,5 @@ def refresh_done(request): task.running=100 task.save() - proc = subprocess.Popen('/opt/torque/bin/qstat', stdout=subprocess.PIPE) - njob=0 - nq=0 - for line in proc.stdout: - if 'piasek4' in line: - if line.split()[1]=='test_server': - njob+=1 - if line.split()[-2]=='Q': - nq+=1 - variable='Idle jobs='+str(nq)+' Total jobs='+str(njob) - - if is_lazy_user(request.user): - return redirect('/details/'+str(task.id)+'/') - else: - return render(request, "index.html", { - 'tasks': tasks , - 'variable' : variable - }) -# return redirect('/') + return