Cleanup corpus analysis code

This commit is contained in:
Patrick Jentsch 2019-11-14 15:53:43 +01:00
parent df98f3a900
commit 3fb5802682
3 changed files with 26 additions and 36 deletions

View File

@ -1,4 +1,4 @@
from app import db, logger from app import db
from app.models import Corpus, CorpusFile from app.models import Corpus, CorpusFile
from flask import (abort, current_app, flash, redirect, request, from flask import (abort, current_app, flash, redirect, request,
render_template, url_for, send_from_directory) render_template, url_for, send_from_directory)
@ -6,7 +6,7 @@ from flask_login import current_user, login_required
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from . import corpora from . import corpora
from .background_functions import (delete_corpus_, delete_corpus_file_, from .background_functions import (delete_corpus_, delete_corpus_file_,
edit_corpus_file_) edit_corpus_file_)
from .forms import (AddCorpusFileForm, AddCorpusForm, EditCorpusFileForm, from .forms import (AddCorpusFileForm, AddCorpusForm, EditCorpusFileForm,
QueryDownloadForm, QueryForm) QueryDownloadForm, QueryForm)
import os import os
@ -48,31 +48,21 @@ def corpus(corpus_id):
title='Corpus') title='Corpus')
@corpora.route('/<int:corpus_id>/analysis', methods=['GET', 'POST']) @corpora.route('/<int:corpus_id>/analyse')
@login_required @login_required
def corpus_analysis(corpus_id): def analyse_corpus(corpus_id):
corpus = Corpus.query.get_or_404(corpus_id) corpus = Corpus.query.get_or_404(corpus_id)
if corpus.status == 'prepared': if corpus.status == 'prepared':
corpus.status = 'start analysis' corpus.status = 'start analysis'
db.session.commit() db.session.commit()
query = request.args.get('query') query_download_form = QueryDownloadForm()
logger.warning('Query first: {}'.format(query)) query_form = QueryForm(context=request.args.get('context', 10),
hits_per_page = request.args.get('hits_per_page', 30) hits_per_page=request.args.get('hits_per_page', 30),
context = request.args.get('context', 10) query=request.args.get('query'))
dl_form = QueryDownloadForm() return render_template('corpora/analyse_corpus.html.j2',
form = QueryForm(hits_per_page=hits_per_page, context=context, query=query)
if form.validate_on_submit():
flash('Query has been sent!')
query = form.query.data
hits_per_page = form.hits_per_page.data
context = form.context.data
return redirect(url_for('corpora.corpus_analysis', corpus_id=corpus_id,
query=query, hits_per_page=hits_per_page,
context=context))
return render_template('corpora/corpus_analysis.html.j2',
corpus_id=corpus_id, corpus_id=corpus_id,
form=form, dl_form=dl_form, query_download_form=query_download_form,
title='Corpus: {}'.format(corpus.title)) query_form=query_form, title='Analyse Corpus')
@corpora.route('/<int:corpus_id>/delete') @corpora.route('/<int:corpus_id>/delete')

View File

@ -6,12 +6,12 @@
<div class="card"> <div class="card">
<div class="card-content"> <div class="card-content">
<form id="query-form" method="POST"> <form id="query-form" method="POST">
{{ form.hidden_tag() }} {{ query_form.hidden_tag() }}
<span class="card-title">Query and analysis</span> <span class="card-title">Query and analysis</span>
<div class="input-field"> <div class="input-field">
{{ form.query(class='materialize-textarea') }} {{ query_form.query(class='materialize-textarea') }}
{{ form.query.label }} {{ query_form.query.label }}
{% for error in form.query.errors %} {% for error in query_form.query.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
@ -23,17 +23,17 @@
<span class="card-title">Options</span> <span class="card-title">Options</span>
<div class="input-field"> <div class="input-field">
<i class="material-icons prefix">format_list_numbered</i> <i class="material-icons prefix">format_list_numbered</i>
{{ form.hits_per_page() }} {{ query_form.hits_per_page() }}
{{ form.hits_per_page.label }} {{ query_form.hits_per_page.label }}
{% for error in form.hits_per_page.errors %} {% for error in query_form.hits_per_page.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
<div class="input-field"> <div class="input-field">
<i class="material-icons prefix">short_text</i> <i class="material-icons prefix">short_text</i>
{{ form.context() }} {{ query_form.context() }}
{{ form.context.label }} {{ query_form.context.label }}
{% for error in form.context.errors %} {% for error in query_form.context.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
@ -44,14 +44,14 @@
<div class="card"> <div class="card">
<div class="card-content"> <div class="card-content">
<form id="download-form" method="POST"> <form id="download-form" method="POST">
{{ dl_form.hidden_tag() }} {{ query_download_form.hidden_tag() }}
<span class="card-title">Download Results</span> <span class="card-title">Download Results</span>
<p>Downlaod all results of the current query as csv, excel or json file.</p> <p>Downlaod all results of the current query as csv, excel or json file.</p>
<div class="input-field"> <div class="input-field">
<i class="material-icons prefix">insert_drive_file</i> <i class="material-icons prefix">insert_drive_file</i>
{{ dl_form.file_type() }} {{ query_download_form.file_type() }}
{{ dl_form.file_type.label }} {{ query_download_form.file_type.label }}
{% for error in dl_form.file_type.errors %} {% for error in query_download_form.file_type.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>

View File

@ -98,7 +98,7 @@
</div> </div>
</div> </div>
<div class="card-action right-align"> <div class="card-action right-align">
<a href="{{ url_for('corpora.corpus_analysis', corpus_id=corpus.id) }}" class="waves-effect waves-light btn hide" id="analyse"><i class="material-icons left">help</i>Analyse</a> <a href="{{ url_for('corpora.analyse_corpus', corpus_id=corpus.id) }}" class="waves-effect waves-light btn hide" id="analyse"><i class="material-icons left">help</i>Analyse</a>
{% if corpus.files[0] is defined %} {% if corpus.files[0] is defined %}
<a href="{{ url_for('corpora.prepare_corpus', corpus_id=corpus.id) }}" class="waves-effect waves-light btn" id="prepare"><i class="material-icons left">whatshot</i>Prepare</a> <a href="{{ url_for('corpora.prepare_corpus', corpus_id=corpus.id) }}" class="waves-effect waves-light btn" id="prepare"><i class="material-icons left">whatshot</i>Prepare</a>
{% endif %} {% endif %}