mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 12:22:47 +00:00 
			
		
		
		
	Change validation process (currently broken)
This commit is contained in:
		@@ -1,4 +1,5 @@
 | 
			
		||||
from flask_wtf import FlaskForm
 | 
			
		||||
from werkzeug.utils import secure_filename
 | 
			
		||||
from wtforms import (BooleanField, FileField, StringField, SubmitField,
 | 
			
		||||
                     ValidationError, IntegerField, SelectField)
 | 
			
		||||
from wtforms.validators import DataRequired, Length
 | 
			
		||||
@@ -21,10 +22,18 @@ class AddCorpusFileForm(FlaskForm):
 | 
			
		||||
    submit = SubmitField()
 | 
			
		||||
    title = StringField('Title', validators=[DataRequired(), Length(1, 255)])
 | 
			
		||||
 | 
			
		||||
    def validate_file(form, field):
 | 
			
		||||
    def __init__(self, corpus, *args, **kwargs):
 | 
			
		||||
        super(AddCorpusFileForm, self).__init__(*args, **kwargs)
 | 
			
		||||
        self.corpus = corpus
 | 
			
		||||
 | 
			
		||||
    def validate_file(self, field):
 | 
			
		||||
        if not field.data.filename.lower().endswith('.vrt'):
 | 
			
		||||
            raise ValidationError('File does not have an approved extension: '
 | 
			
		||||
                                  '.vrt')
 | 
			
		||||
        filename = secure_filename(field.data.filename)
 | 
			
		||||
        for corpus_file in self.corpus.files:
 | 
			
		||||
            if filename == corpus_file.filename:
 | 
			
		||||
                raise ValidationError('File already registered to this corpus.')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EditCorpusFileForm(FlaskForm):
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
from app import logger
 | 
			
		||||
from flask import (abort, current_app, flash, make_response, redirect, request,
 | 
			
		||||
                   render_template, url_for, send_from_directory)
 | 
			
		||||
from flask_login import current_user, login_required
 | 
			
		||||
@@ -92,15 +93,13 @@ def add_corpus_file(corpus_id):
 | 
			
		||||
    corpus = Corpus.query.get_or_404(corpus_id)
 | 
			
		||||
    if not (corpus.creator == current_user or current_user.is_administrator()):
 | 
			
		||||
        abort(403)
 | 
			
		||||
    add_corpus_file_form = AddCorpusFileForm()
 | 
			
		||||
    if add_corpus_file_form.validate_on_submit():
 | 
			
		||||
    add_corpus_file_form = AddCorpusFileForm(corpus, prefix='add-job-form')
 | 
			
		||||
    if add_corpus_file_form.is_submitted():
 | 
			
		||||
        if not add_corpus_file_form.validate():
 | 
			
		||||
            logger.warning(add_corpus_file_form.errors)
 | 
			
		||||
            return make_response(add_corpus_file_form.errors, 400)
 | 
			
		||||
        file = add_corpus_file_form.file.data
 | 
			
		||||
        filename = secure_filename(file.filename)
 | 
			
		||||
        for corpus_file in corpus.files:
 | 
			
		||||
            if filename == corpus_file.filename:
 | 
			
		||||
                flash('File already registered to this corpus.')
 | 
			
		||||
                return make_response({'redirect_url': url_for('corpora.corpus', corpus_id=corpus.id)}, 500)
 | 
			
		||||
                # return redirect(url_for('corpora.add_corpus_file', corpus_id=corpus_id))
 | 
			
		||||
        # Save the file
 | 
			
		||||
        dir = os.path.join(str(corpus.user_id), 'corpora', str(corpus.id))
 | 
			
		||||
        file.save(os.path.join(current_app.config['NOPAQUE_STORAGE'],
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user