Skip to content
Snippets Groups Projects
Commit a1be95ff authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Rename ocr job form and add nlp job form

parent 1c98dc01
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,7 @@ from wtforms import MultipleFileField, SelectField, StringField, SubmitField, Va
from wtforms.validators import DataRequired, Length
class CreateOCRJobForm(FlaskForm):
class NewOCRJobForm(FlaskForm):
description = StringField(
'Description',
validators=[DataRequired(), Length(1, 64)]
......@@ -37,3 +37,36 @@ class CreateOCRJobForm(FlaskForm):
'File does not have an approved extension: '
'.pdf | .tif | .tiff'
)
class NewNLPJobForm(FlaskForm):
description = StringField(
'Description',
validators=[DataRequired(), Length(1, 64)]
)
files = MultipleFileField('Files', validators=[DataRequired()])
language = SelectField(
'Language',
choices=[('', 'Choose your option'),
('en', 'English'),
('fr', 'French'),
('de', 'German'),
('it', 'Italian'),
('pt', 'Portuguese'),
('es', 'Spanish')
],
validators=[DataRequired()]
)
submit = SubmitField('Create OCR job')
title = StringField(
'Title',
validators=[DataRequired(), Length(1, 32)]
)
def validate_files(form, field):
for file in field.data:
if not file.filename.lower().endswith('.txt'):
raise ValidationError(
'File does not have an approved extension: '
'.txt'
)
......@@ -2,7 +2,7 @@ from datetime import datetime
from flask import current_app, flash, redirect, render_template, url_for
from . import services
from flask_login import current_user, login_required
from .forms import CreateOCRJobForm
from .forms import NewOCRJobForm
from ..import swarm
from threading import Thread
import hashlib
......@@ -12,8 +12,8 @@ import os
@services.route('/ocr', methods=['GET', 'POST'])
@login_required
def ocr():
create_ocr_job_form = CreateOCRJobForm()
if create_ocr_job_form.validate_on_submit():
new_ocr_job_form = NewOCRJobForm()
if new_ocr_job_form.validate_on_submit():
app = current_app._get_current_object()
id = hashlib.md5(
(current_user.username + '_' + datetime.now().isoformat()).encode()
......@@ -27,7 +27,7 @@ def ocr():
'requested_cpus': 2,
'requested_memory': 2048,
'service': 'ocr',
'service_args': {'lang': create_ocr_job_form.language.data,
'service_args': {'lang': new_ocr_job_form.language.data,
'version': 'latest'
},
'status': 'queued'
......@@ -39,7 +39,7 @@ def ocr():
except OSError:
flash('OSError!')
else:
for file in create_ocr_job_form.files.data:
for file in new_ocr_job_form.files.data:
file.save(os.path.join(dir, file.filename))
'''
' TODO: Let the scheduler run this job in the background.
......@@ -55,5 +55,5 @@ def ocr():
return render_template(
'services/ocr.html.j2',
title='Optical Character Recognition',
create_ocr_job_form=create_ocr_job_form
new_ocr_job_form=new_ocr_job_form
)
......@@ -80,14 +80,14 @@
<div class="card">
<div class="card-content">
<form method="POST" enctype="multipart/form-data">
{{ create_ocr_job_form.hidden_tag() }}
{{ new_ocr_job_form.hidden_tag() }}
<div class="row">
<div class="col s12 m4">
<div class="input-field">
<i class="material-icons prefix">title</i>
{{ create_ocr_job_form.title() }}
{{ create_ocr_job_form.title.label }}
{% for error in create_ocr_job_form.title.errors %}
{{ new_ocr_job_form.title() }}
{{ new_ocr_job_form.title.label }}
{% for error in new_ocr_job_form.title.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
......@@ -95,9 +95,9 @@
<div class="col s12 m8">
<div class="input-field">
<i class="material-icons prefix">description</i>
{{ create_ocr_job_form.description() }}
{{ create_ocr_job_form.description.label }}
{% for error in create_ocr_job_form.description.errors %}
{{ new_ocr_job_form.description() }}
{{ new_ocr_job_form.description.label }}
{% for error in new_ocr_job_form.description.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
......@@ -105,13 +105,13 @@
<div class="col s12 m8">
<div class="file-field input-field">
<div class="btn">
<span>{{ create_ocr_job_form.files.label.text }}</span>
{{ create_ocr_job_form.files(accept='application/pdf, image/tiff') }}
<span>{{ new_ocr_job_form.files.label.text }}</span>
{{ new_ocr_job_form.files(accept='application/pdf, image/tiff') }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
{% for error in create_ocr_job_form.files.errors %}
{% for error in new_ocr_job_form.files.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
......@@ -119,15 +119,15 @@
<div class="col s12 m4">
<div class="input-field">
<i class="material-icons prefix">language</i>
{{ create_ocr_job_form.language() }}
{{ create_ocr_job_form.language.label }}
{% for error in create_ocr_job_form.language.errors %}
{{ new_ocr_job_form.language() }}
{{ new_ocr_job_form.language.label }}
{% for error in new_ocr_job_form.language.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
</div>
</div>
{{ create_ocr_job_form.submit(class='btn') }}
{{ new_ocr_job_form.submit(class='btn') }}
</form>
</div>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment