X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=django_simple%2Ftodo%2Fviews.py;h=f338be235fb3437b1cc7fa8e0f4378dfb1dca9a9;hb=ae94249ef07031690e511f3c3f78b9699c8ce372;hp=f4dc960401170652bd4ef1d2907bd4d19f722021;hpb=0ce9fc6e190bcbfc62c346ed4bcf25fb21e8cebc;p=django_unres.git diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index f4dc960..f338be2 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -6,6 +6,8 @@ from .models import Task import datetime import os import subprocess +import json +from lazysignup.decorators import allow_lazy_user res_codes = [ # 20 canonical amino acids @@ -57,11 +59,13 @@ def from_pdb(file): sequence.append(aa) ires.append(i) if newchain: - chain_start[chain[ichain]]=i + if len(chain)>0: + chain_start[chain[ichain]]=i newchain = False if line[0:3] == 'TER': sequence.append('XX') - chain_end[chain[ichain]]=i + if len(chain)>0: + chain_end[chain[ichain]]=i ichain=ichain+1 newchain = True if line[0:6] == 'SSBOND': @@ -91,19 +95,19 @@ def from_pdb(file): i=i-(chain_end[c]-chain_start[c])-3 ssbond=[ [e[0]-unres_shift[c[0]]+1,e[1]-unres_shift[c[1]]+1] for e,c in zip(ssbond,ssbond_ch)] - return seq,ssbond + return seq,json.dumps(ssbond) @login_required def index(request): user = request.user - tasks = Task.objects.filter(owner=user) + tasks = Task.objects.filter(owner=user).order_by('-created_date') variable = '' return render(request, "index.html", { 'tasks': tasks }) -@login_required +@allow_lazy_user def add(request): if request.method == 'POST': form = TaskForm(request.POST) @@ -115,7 +119,6 @@ def add(request): return redirect('add_min',task_id=task.id) return redirect('/') - @login_required def add_min(request,task_id): task = get_object_or_404(Task, id=task_id) @@ -145,6 +148,7 @@ def add_min(request,task_id): basic_adv=True return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type}) +@login_required def add_min_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': @@ -224,6 +228,7 @@ def add_md(request,task_id): p_type='molecular dynamics' return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type}) +@login_required def add_md_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': @@ -318,6 +323,7 @@ def add_remd(request,task_id): p_type='replica exchange molecular dynamics' return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type}) +@login_required def add_remd_a(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': @@ -370,7 +376,7 @@ def add_remd_a(request,task_id): p_type='replica exchange molecular dynamics - advanced options' return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type}) - +@login_required def addmlist(request,task_id): task = get_object_or_404(Task, id=task_id) if request.method == 'POST': @@ -383,12 +389,20 @@ def addmlist(request,task_id): task.save() return redirect('/') else: + if task.unres_ff == 'E0LL2Y': data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing': '["1", "1", "1", "1", "1", "1", "1", "1"]', 'temperatures': '["270", "280", "290", "300", "310", "320", "330", "345"]' } - form = TaskForm_list(task.remd_nrep,initial=data) + else: + data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing': + '["1", "1", "1", "1", "1", "1", "1", "1"]', + 'temperatures': + '["250", "260", "270", "280", "290", "300", "315", "330"]' + } + + form = TaskForm_list(task.remd_nrep,initial=data) p_type='replica exchange molecular dynamics - advanced options' return render(request, 'edit_lista.html', {'form': form, 'task':task, 'p_type':p_type}) @@ -405,7 +419,7 @@ def delete(request, task_id): @login_required def refresh_done(request): user = request.user - tasks = Task.objects.filter(owner=user) + tasks = Task.objects.filter(owner=user).order_by('-created_date') for task in tasks: if os.path.isfile(task.jobdirname+'/finished') and not task.done: task.done=True @@ -450,6 +464,7 @@ def refresh_done(request): if task.md_pdbref and task.type=='remd': for i in range(1,6): + try: 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: @@ -462,7 +477,8 @@ def refresh_done(request): task.remd_model4=' '.join(line.split()[-6:]) elif i==5: task.remd_model5=' '.join(line.split()[-6:]) - + except EnvironmentError: + print 'file_wham_T*pdb open error' for i in range(1,6): with open(task.jobdirname+'/tmscore'+str(i)+'.out', 'r') as f: text=''