summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2013-10-15 23:23:19 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2013-10-15 23:23:19 +0200
commite34e288bc5713a5a34958be8e678d2b23f4c7adb (patch)
tree2a5ebcdbb5570a03a091441733dc07f8b5f5dbfe /app
parent6277cf7e9bb1ee6e56258de3474477b90a1a51f9 (diff)
downloadkosten-e34e288bc5713a5a34958be8e678d2b23f4c7adb.tar.gz
kosten-e34e288bc5713a5a34958be8e678d2b23f4c7adb.tar.bz2
kosten-e34e288bc5713a5a34958be8e678d2b23f4c7adb.zip
Flash on error in all forms
Diffstat (limited to 'app')
-rw-r--r--app/forms.py22
-rw-r--r--app/views/login.py4
2 files changed, 21 insertions, 5 deletions
diff --git a/app/forms.py b/app/forms.py
index 3bba70e..664b709 100644
--- a/app/forms.py
+++ b/app/forms.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
-
-from flask.ext.wtf import Form
+import flask
+from flask.ext.wtf import Form as _Form
from wtforms.fields import DateField, IntegerField, StringField, HiddenField, PasswordField
from wtforms import validators as v
from wtforms import fields
@@ -26,6 +26,24 @@ class DecimalField(fields.DecimalField):
req = [v.input_required()]
+class Form(_Form):
+ def __init__ (self, *args, **kwargs):
+ self._msg = kwargs.pop("flash", u"Fehler im Formular!")
+ _Form.__init__(self, *args, **kwargs)
+
+ def flash(self):
+ flask.flash(self._msg, u"error")
+
+ def flash_validate (self):
+ if not self.validate():
+ self.flash()
+ return False
+
+ return True
+
+ def validate_on_submit (self):
+ return self.is_submitted() and self.flash_validate()
+
class ExpenseForm(Form):
date = DateField(u"Datum", req,
format="%d.%m.%Y",
diff --git a/app/views/login.py b/app/views/login.py
index 413d406..8815626 100644
--- a/app/views/login.py
+++ b/app/views/login.py
@@ -13,13 +13,11 @@ mod = Blueprint('login', __name__)
@mod.route("/login", methods=("GET", "POST"))
@templated()
def login():
- form = LoginForm()
+ form = LoginForm(flash=u"Login fehlgeschlagen!")
if form.validate_on_submit():
login_user(form.user)
return redirect(request.args.get("next") or url_for("index"))
- elif form.is_submitted():
- flash("Login fehlgeschlagen!", "error")
return { 'form': form }