From e34e288bc5713a5a34958be8e678d2b23f4c7adb Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Tue, 15 Oct 2013 23:23:19 +0200 Subject: Flash on error in all forms --- app/forms.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'app/forms.py') 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", -- cgit v1.2.3-54-g00ecf