X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=qcg%2Fviews.py;h=fec0017a7ff5b4e068d8f55cfdcfdbc33362703b;hb=50ea4b8539cffc10de1342d696b7b9a184c1a89c;hp=cd8992edc16111959883e7d2ce56c8e9ddb2aa83;hpb=96a0d8cddfaf50d6601772e9aa0d88855b284804;p=qcg-portal.git diff --git a/qcg/views.py b/qcg/views.py index cd8992e..fec0017 100644 --- a/qcg/views.py +++ b/qcg/views.py @@ -23,7 +23,11 @@ from filex.ftp import FTPOperation, FTPError from filex.views import make_url from qcg.forms import FiltersForm, ColumnsForm, JobDescriptionForm, EnvFormSet, JobTemplateForm from qcg.models import JobTemplate -from qcg.utils import paginator_context, to_job_desc, to_form_data +<<<<<<< HEAD +from qcg.utils import paginator_context, to_job_desc, to_form_data, generate_md_inputfile +======= +from qcg.utils import paginator_context, to_job_desc, to_form_data, restricted +>>>>>>> 4a588e0... set Cache-Control header for restricted views from qcg.service import update_user_data, update_job, cancel, clean @@ -71,7 +75,7 @@ def parse_date(string): return datetime.strptime(string.strip(), "%d.%m.%Y").replace(tzinfo=UTC()) -@login_required +@restricted def jobs_list(request): update_user_data(request.user, request.session['proxy']) @@ -160,14 +164,14 @@ def jobs_list(request): return render(request, 'qcg/jobs.html', context) -@login_required +@restricted def job_details(request, job_id): job = get_object_or_404(request.user.jobs.prefetch_related('tasks'), job_id=job_id) return render(request, 'qcg/job.html', process_details(request, job)) -@login_required +@restricted def task_details(request, job_id, task_id): task = get_object_or_404(request.user.tasks.select_related('job').prefetch_related('allocations'), job__job_id=job_id, task_id=task_id) @@ -194,50 +198,11 @@ def process_details(request, job, task=None): return {'job': job, 'task': task, 'form': form, 'env_formset': env_formset, 'template_form': template_form} -def generate_md_inputfile(params): - md_input = list() - # Opis pliku wyjsciowego - opis=params['note'][:80] - md_input.append(encoding.smart_str(opis, encoding='ascii', errors='ignore')) - # Dane kontrolne obliczeń - md_input.append('SEED=-3059743 PDBREFONE_LETTER MD EXTCONF RESCALE_MODE=2') - ctl_data='nstep='+str(params['nstep'])+' ntwe='+str(params['ntwe']) - ctl_data+=' ntwx='+str(params['ntwx'])+' dt='+str(params['dt'])+' damax='+str(params['damax'])+'lang=0 tbf' - md_input.append('{:<79}&'.format(ctl_data)) - md_input.append('tau_bath=1.0 t_bath=300 reset_vel=10000 respa ntime_split=1 maxtime_split=512') - # Paramatry pól siłowych - if params['force_field'] == 'GAB': - # Wagi pola GAB - md_input.append('WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 &') - md_input.append('WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 &') - md_input.append('WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 &') - md_input.append('WVDWPP=0.11371 WHPB=1.00000 &') - md_input.append('CUTOFF=7.00000 WCORR4=0.00000 WSCCOR=0.0') - else: - # Wagi pola E0LLY - md_input.append('WLONG=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954 &') - md_input.append('WSCLOC=0.10554 WTOR=1.84316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000 &') - md_input.append('WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000 &') - md_input.append('WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.0 &') - md_input.append('CUTOFF=7.00000 WCORR4=0.00000') - # Plik PDB - md_input.append(params['pdb_file'].split('/')[-1]) - # Sekwencja aminokwasów - md_input.append(len(params['sequence'])) - seq_str=params['sequence'] - while seq_str: - md_input.append(seq_str[:80]) - seq_str=seq_str[80:] - md_input.append(' 0') - md_input.append(' 0') - - return md_input - def id_generator(size=6, chars=string.ascii_uppercase + string.digits): return ''.join(random.choice(chars) for _ in range(size)) -@login_required +@restricted def job_submit(request, template_id=None): save_template = 'save-template' in request.POST template = get_object_or_404(request.user.templates, id=template_id) if template_id is not None else None @@ -271,13 +236,11 @@ def job_submit(request, template_id=None): ftp.stream.put(None) ftp.wait() - params['persistent'] = True - # Debugging parametrów - #pprint(params) job_desc = to_job_desc(params, request.session['proxy']) + if save_template: template = template_form.save(commit=False) @@ -358,13 +321,13 @@ def obj_clean(request, obj): return redirect(obj) -@login_required +@restricted def gridftp(request): return render(request, 'qcg/gridftp.html', {'new_dir_form': HostPathNameForm(), 'rename_form': RenameForm(), 'archive_form': ArchiveForm()}) -@login_required +@restricted def gridftp_upload(request): form = HostPathForm(request.GET) @@ -383,7 +346,7 @@ def gridftp_upload(request): 'sep': '/' if form.cleaned_data['path'].startswith('~') else ''}) -@login_required +@restricted def job_templates(request): return render(request, 'qcg/job_templates.html', {'templates': request.user.templates.all()})