+
+
+@login_required
+def job_new(request):
+ if request.method == 'POST':
+ form = JobDescriptionForm(request.POST)
+ env_formset = EnvFormSet(request.POST)
+
+ if form.is_valid() and env_formset.is_valid():
+ params = form.cleaned_data
+ params['env_variables'] = [(env['name'], env['value'])
+ for env in env_formset.cleaned_data if env and not env['DELETE']]
+
+ job_id = submit_job(params, request.session['proxy'])
+
+ messages.success(request,
+ format_html('<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> '
+ 'Zlecono zadanie <em>{}</em>.', job_id))
+
+ return redirect('jobs')
+
+ print repr(form.errors)
+ print repr(env_formset.errors)
+ else:
+ form = JobDescriptionForm()
+ env_formset = EnvFormSet()
+
+ errors = form.errors or (env_formset.is_bound and not env_formset.is_valid)
+
+ return render(request, 'qcg/job_new.html', {'form': form, 'env_formset': env_formset, 'errors': errors})
+
+
+@login_required
+def gridftp(request):
+ return render(request, 'qcg/gridftp.html',
+ {'new_dir_form': HostPathNameForm(), 'rename_form': RenameForm(), 'archive_form': ArchiveForm()})
+
+
+@login_required
+def gridftp_upload(request):
+ form = HostPathForm(request.GET)
+
+ if not form.is_valid():
+ raise SuspiciousOperation('Invalid parameters for `gridftp_upload`!')
+
+ return render(request, 'qcg/gridftp_upload.html',
+ {'url': reverse('filex:upload') + '?' + urlencode(form.cleaned_data),
+ 'host': form.cleaned_data['host'], 'path': form.cleaned_data['path'],
+ 'sep': '/' if form.cleaned_data['path'].startswith('~') else ''})