summaryrefslogtreecommitdiffstats
path: root/app/forms.py
diff options
context:
space:
mode:
authorNico Geyso <nico.geyso@fu-berlin.de>2014-12-07 18:09:58 +0100
committerNico Geyso <nico.geyso@fu-berlin.de>2014-12-07 18:09:58 +0100
commit4ea12c4b97fc7775ab5ae3cb4607f715b880aede (patch)
treebdb798ffd244bee68b62d70da068ca795da766e6 /app/forms.py
parentab487c574b6ac405a869528516bed55473e93c5f (diff)
downloadklausuren-4ea12c4b97fc7775ab5ae3cb4607f715b880aede.tar.gz
klausuren-4ea12c4b97fc7775ab5ae3cb4607f715b880aede.tar.bz2
klausuren-4ea12c4b97fc7775ab5ae3cb4607f715b880aede.zip
Remove dependency of pygit2 instead use directory listings
Diffstat (limited to 'app/forms.py')
-rw-r--r--app/forms.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/app/forms.py b/app/forms.py
new file mode 100644
index 0000000..e562df2
--- /dev/null
+++ b/app/forms.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+
+from datetime import date
+from flask import current_app
+from flask.ext.wtf import Form
+from wtforms import TextField, FileField, SelectField, validators
+from wtforms.validators import ValidationError
+
+class UploadForm(Form):
+ """ Upload Form class for validation """
+ study = TextField('Studiengang')
+ exam = FileField('Klausur')
+ module = SelectField('Kurs')
+ module_new = TextField('Modulname', validators=[validators.Optional(),
+ validators.Length(min=5)])
+ year = SelectField(
+ 'Jahr',
+ validators=[validators.Required()],
+ choices = [ (str(x),x) for x in
+ #xrange(date.today().year, current_app.config['FORM_START_YEAR']-1, -1)
+ xrange(date.today().year, 2000, -1)
+ ]
+ )
+
+ def validate_exam(form, field):
+ exts = current_app.config['ALLOWED_EXTENSIONS']
+ ext = map(field.data.filename.endswith, exts)
+
+ if not any(ext):
+ raise ValidationError(u'Ungültiger Dateityp')
+
+ if field.data.content_length > current_app.config['MAX_CONTENT_LENGTH']:
+ raise ValidationError(u'Zu große Datei')
+
+ def validate_module(form, field):
+ modules = dict(current_app.config['STUDIES'][form.study.data])
+ data = form.module.data
+ if data not in modules or data == '':
+ raise ValidationError(u'Bitte wähle ein Modul!')
+
+