mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 02:32:45 +00:00 
			
		
		
		
	Change how job form works.
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user