From 04fe6b063e4b9921eaf6a00b70ec7a7feb6bf5a8 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Tue, 5 Nov 2019 13:40:31 +0100
Subject: [PATCH] Add sanity checks for corpus preparation

---
 app/corpora/views.py                 | 9 ++++++---
 app/templates/corpora/corpus.html.j2 | 2 ++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/app/corpora/views.py b/app/corpora/views.py
index 2e5e9130..e6c82d77 100644
--- a/app/corpora/views.py
+++ b/app/corpora/views.py
@@ -85,9 +85,12 @@ def prepare_corpus(corpus_id):
     corpus = Corpus.query.get_or_404(corpus_id)
     if not (corpus.creator == current_user or current_user.is_administrator()):
         abort(403)
-    corpus.status = 'preparable'
-    db.session.commit()
-    flash('Corpus marked for preparation!')
+    if len(corpus.files.all()) > 0:
+        corpus.status = 'preparable'
+        db.session.commit()
+        flash('Corpus marked for preparation!')
+    else:
+        flash('Can not prepare corpus, please add corpus file(s).')
     return redirect(url_for('corpora.corpus', corpus_id=corpus_id))
 
 
diff --git a/app/templates/corpora/corpus.html.j2 b/app/templates/corpora/corpus.html.j2
index 7ab6fcf5..89a2d49b 100644
--- a/app/templates/corpora/corpus.html.j2
+++ b/app/templates/corpora/corpus.html.j2
@@ -24,7 +24,9 @@
       {% if corpus.status == 'prepared' %}
       <a href="{{ url_for('corpora.corpus_analysis', corpus_id=corpus.id) }}" class="waves-effect waves-light btn"><i class="material-icons left">help</i>Analyse</a>
       {% endif %}
+      {% if corpus.files[0] is defined %}
       <a href="{{ url_for('corpora.prepare_corpus', corpus_id=corpus.id) }}" class="waves-effect waves-light btn"><i class="material-icons left">whatshot</i>Prepare</a>
+      {% endif %}
       <a data-target="delete-corpus-modal" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete Corpus</a>
     </div>
   </div>
-- 
GitLab