From 9d6e54e9666e80574c58b2dc34c9f416ad73df40 Mon Sep 17 00:00:00 2001 From: Patrick Jentsch <p.jentsch@uni-bielefeld.de> Date: Fri, 27 Sep 2019 13:56:52 +0200 Subject: [PATCH] Change how job form works. --- app/services/views.py | 30 +++++++++++++++------------- app/templates/main/dashboard.html.j2 | 4 ++-- app/templates/main/jobs/job.html.j2 | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/services/views.py b/app/services/views.py index d60d7120..f5ff1780 100644 --- a/app/services/views.py +++ b/app/services/views.py @@ -1,28 +1,27 @@ from flask import abort, current_app, flash, redirect, render_template, url_for from . import services from flask_login import current_user, login_required -from .forms import NewOCRJobForm, NewNLPJobForm +from .forms import NewNLPJobForm, NewOCRJobForm from ..models import Job from .. import db import json import os -SERVICE_REQUIREMENTS = {'nlp': {'mem_mb': 4096, 'n_cores': 2}, - 'ocr': {'mem_mb': 8192, 'n_cores': 4}} +SERVICES = {'nlp': {'name': 'Natural Language Processing', + 'resources': {'mem_mb': 4096, 'n_cores': 2}, + 'new_job_form': NewNLPJobForm}, + 'ocr': {'name': 'Optical Character Recognition', + 'resources': {'mem_mb': 8192, 'n_cores': 4}, + 'new_job_form': NewOCRJobForm}} @services.route('/<service_handle>', methods=['GET', 'POST']) @login_required def service(service_handle): - if service_handle not in ['nlp', 'ocr']: + if service_handle not in SERVICES: abort(404) - elif service_handle == 'nlp': - page_title = 'Natural Language Processing' - new_job_form = NewNLPJobForm() - elif service_handle == 'ocr': - page_title = 'Optical Character Recognition' - new_job_form = NewOCRJobForm() + new_job_form = SERVICES[service_handle]['new_job_form']() if new_job_form.validate_on_submit(): _service_args = ['-l {}'.format(new_job_form.language.data)] if service_handle == 'ocr': @@ -31,8 +30,8 @@ def service(service_handle): job = Job( creator=current_user, description=new_job_form.description.data, - mem_mb=SERVICE_REQUIREMENTS[service_handle]['mem_mb'], - n_cores=SERVICE_REQUIREMENTS[service_handle]['n_cores'], + mem_mb=SERVICES[service_handle]['resources']['mem_mb'], + n_cores=SERVICES[service_handle]['resources']['n_cores'], service=service_handle, service_args=json.dumps(_service_args), service_version=new_job_form.version.data, @@ -53,11 +52,14 @@ def service(service_handle): db.session.commit() else: for file in new_job_form.files.data: + ''' TODO: Use secure filename ''' file.save(os.path.join(dir, file.filename)) job.status = 'submitted' db.session.commit() flash('Job created!') - return redirect(url_for('services.{}'.format(service_handle))) + return redirect( + url_for('services.service', service_handle=service_handle) + ) return render_template('services/{}.html.j2'.format(service_handle), - title=page_title, + title=SERVICES[service_handle]['name'], new_job_form=new_job_form) diff --git a/app/templates/main/dashboard.html.j2 b/app/templates/main/dashboard.html.j2 index d7f13b51..20df65df 100644 --- a/app/templates/main/dashboard.html.j2 +++ b/app/templates/main/dashboard.html.j2 @@ -2,7 +2,7 @@ {% block page_content %} <div class="col s12 m4"> - <h3>Corpora</h3> + <h3>My Corpora</h3> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,</p> </div> @@ -46,7 +46,7 @@ </div> <div class="col s12 m4"> - <h3>Jobs</h3> + <h3>My Jobs</h3> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,</p> </div> diff --git a/app/templates/main/jobs/job.html.j2 b/app/templates/main/jobs/job.html.j2 index fb440726..c43ee3bb 100644 --- a/app/templates/main/jobs/job.html.j2 +++ b/app/templates/main/jobs/job.html.j2 @@ -117,7 +117,6 @@ </script> <div class="col s12 m4"> - <h2>Status:</h2> <h3 id="title"></h3> <p id="description"></p> <a class="waves-effect waves-light btn" id="status"></a> @@ -125,6 +124,7 @@ <!-- Confirm deletion of job with modal dialogue Modal Trigger--> <a href="#modal-confirm-delete" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete Job</a> + <a href="#" class="waves-effect waves-light btn"><i class="material-icons left">settings</i>Export Parameters</a> <!-- Modal Strucutre --> <div id="modal-confirm-delete" class="modal"> <div class="modal-content"> -- GitLab