From 63217a7e1dceba8817b7fe73b46b4d66b25acabc Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Wed, 13 Apr 2022 09:08:11 +0200
Subject: [PATCH] Fix uploading corpus files

---
 app/corpora/forms.py                          | 2 +-
 app/corpora/routes.py                         | 5 ++---
 app/templates/corpora/add_corpus_file.html.j2 | 2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/app/corpora/forms.py b/app/corpora/forms.py
index 7e1e98d8..8c214595 100644
--- a/app/corpora/forms.py
+++ b/app/corpora/forms.py
@@ -16,7 +16,7 @@ class AddCorpusFileForm(FlaskForm):
     '''
     # Required fields
     author = StringField('Author', validators=[InputRequired(), Length(min=1, max=255)])
-    publishing_year = IntegerField('Publishing year', validators=[InputRequired(), Length(min=1, max=255)])
+    publishing_year = IntegerField('Publishing year', validators=[InputRequired()])
     title = StringField('Title', validators=[InputRequired(), Length(min=1, max=255)])
     vrt = FileField('File', validators=[FileRequired()])
     # Optional fields
diff --git a/app/corpora/routes.py b/app/corpora/routes.py
index 681789d9..44405e7d 100644
--- a/app/corpora/routes.py
+++ b/app/corpora/routes.py
@@ -195,7 +195,6 @@ def add_corpus_file(corpus_id):
         if not form.validate():
             return make_response(form.errors, 400)
         # Save the file
-        filename = secure_filename(form.file.data.filename)
         corpus_file = CorpusFile(
             address=form.address.data,
             author=form.author.data,
@@ -203,7 +202,7 @@ def add_corpus_file(corpus_id):
             chapter=form.chapter.data,
             corpus=corpus,
             editor=form.editor.data,
-            filename=filename,
+            filename=form.vrt.data.filename,
             institution=form.institution.data,
             journal=form.journal.data,
             mimetype='application/vrt+xml',
@@ -217,7 +216,7 @@ def add_corpus_file(corpus_id):
         db.session.flush(objects=[corpus_file])
         db.session.refresh(corpus_file)
         try:
-            form.file.data.save(corpus_file.path)
+            form.vrt.data.save(corpus_file.path)
         except OSError as e:
             current_app.logger.error(e)
             db.session.rollback()
diff --git a/app/templates/corpora/add_corpus_file.html.j2 b/app/templates/corpora/add_corpus_file.html.j2
index 034fb5c2..725ee0cb 100644
--- a/app/templates/corpora/add_corpus_file.html.j2
+++ b/app/templates/corpora/add_corpus_file.html.j2
@@ -46,7 +46,7 @@
             <div class="collapsible-header"><i class="material-icons">add</i>Add additional metadata</div>
             <div class="collapsible-body">
               {% for field in form
-                 if field.short_name not in ['author', 'csrf_token', 'file', 'publishing_year', 'submit', 'title'] %}
+                 if field.short_name not in ['author', 'csrf_token', 'vrt', 'publishing_year', 'submit', 'title'] %}
               {{ wtf.render_field(field, material_icon=field.label.text[0:1]) }}
               {% endfor %}
             </div>
-- 
GitLab