Add query analysis form options etc.

This commit is contained in:
Stephan Porada 2019-10-29 17:42:32 +01:00
parent 5f29112390
commit 31c015f761
3 changed files with 54 additions and 17 deletions

View File

@ -1,6 +1,6 @@
from flask_wtf import FlaskForm
from wtforms import (MultipleFileField, StringField, SubmitField,
ValidationError, IntegerField)
ValidationError, IntegerField, SelectField)
from wtforms.validators import DataRequired, Length, NumberRange
@ -26,8 +26,27 @@ class AddCorpusFileForm(FlaskForm):
class QueryForm(FlaskForm):
query = StringField('CQP Query', validators=[DataRequired()])
# hits_per_page = IntegerField('Hits per page',
# validators=[DataRequired(),
# NumberRange(min=10, max=50)])
query = StringField('CQP Query', validators=[DataRequired(), (Length(1, 1024))])
hits_per_page = SelectField('Hits per page',
choices=[('', 'Nr. of hits per page'),
('10', '10'),
('20', '20'),
('30', '30'),
('40', '40'),
('50', '50')],
validators=[DataRequired()],
default='30')
context = SelectField('Context',
choices=[('', 'Words of context around hit'),
('5', '5'),
('10', '10'),
('15', '15'),
('20', '20'),
('25', '25')],
validators=[DataRequired()],
default='10')
submit = SubmitField('Start Query')
class QueryDownloadForm(FlaskForm):
pass

View File

@ -55,15 +55,24 @@ def corpus_download(corpus_id):
@login_required
def corpus_analysis(corpus_id):
corpus = Corpus.query.get_or_404(corpus_id)
query = request.args.get('query')
form = QueryForm()
if form.validate_on_submit():
logger = logging.getLogger(__name__)
logger.warning('Data has been sent!')
logger.warning('Data labels: {data}'.format(data=[data for data in form.data]))
logger.warning('Query: {q}'.format(q=form.query.data))
logger.warning('Hits: {hits}'.format(hits=form.hits_per_page.data))
logger.warning('Context: {context}'.format(context=form.context.data))
flash('Query has been sent!')
return redirect(url_for('main.corpus_analysis', corpus_id=corpus_id))
query = form.query.data
logger.warning('Session query: {sq}'.format(sq=query))
return redirect(url_for('main.corpus_analysis', corpus_id=corpus_id,
query=query))
return render_template('main/corpora/corpus_analysis.html.j2',
corpus=corpus,
form=form,
query=query,
title='Corpus: ' + corpus.title)

View File

@ -35,7 +35,7 @@
<span class="card-title">Query and analysis</span>
<div class="input-field">
<i class="material-icons prefix">search</i>
<textarea id="{{ form.query.id }}" name="{{ form.query.id }}" required="" type="text" value="" class="materialize-textarea"></textarea>
<input autofocus size="1024" data-length="1024" id="{{ form.query.id }}" name="{{ form.query.id }}" required="" type="text" value="{{ query if query != None else '' }}"></input>
{{ form.query.label }}
{% for error in form.query.errors %}
<span class="helper-text red-text">{{ error }}</span>
@ -44,7 +44,7 @@
<div class="right-align">
{{ form.submit(class='btn') }}
</div>
<!-- <br>
<br>
<span class="card-title">Help</span>
<ul>
<li>
@ -54,17 +54,26 @@
</ul>
<br>
<span class="card-title">Options</span>
<select>
<option value="" disabled selected>Choose your option</option>
<option value="1">10</option>
<option value="2">20</option>
<option value="3">25</option>
<option value="3">50</option>
</select>
<label>Materialize Select</label>
<br>
<div class="input-field">
<i class="material-icons prefix">format_list_numbered</i>
{{ form.hits_per_page() }}
{{ form.hits_per_page.label }}
{% for error in form.hits_per_page.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<br>
<div class="input-field">
<i class="material-icons prefix">short_text</i>
{{ form.context() }}
{{ form.context.label }}
{% for error in form.context.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<span class="card-title">Download Results</span>
</div> -->
</div>
</form>
</div>
</div>