summaryrefslogtreecommitdiff
path: root/app/forms.py
blob: 250bc21820d4732794bb99d1f7ecef35cc2c0633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- encoding: utf-8 -*-
import flask
from flask.ext.wtf import Form as _Form
from wtforms.fields import BooleanField, DateField, IntegerField, StringField, HiddenField, PasswordField
from wtforms import fields, validators, ValidationError

from wtforms.ext.sqlalchemy.fields import QuerySelectField
from wtforms.ext.i18n.form import Form as i18nForm

from . import app

@app.template_test('hidden')
def is_hidden_field(f):
    return isinstance(f, HiddenField)

class DecimalField(fields.DecimalField):
    def process_formdata(self, valuelist):
        if valuelist:
            value = valuelist[0].replace(',','.')
            super(DecimalField, self).process_formdata([value])

req = [validators.input_required()]

class Form(_Form, i18nForm):
    # docs say LOCALES, code says LANGUAGES ... use both :)
    LANGUAGES = LOCALES = ['de_DE', 'de']

    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()

    def _get_translations(self):
        # use WTForms builtin translation support instead of the flask-babael
        # stuff added by flask-wtf
        # FIXME: remove this, if flask-babel is used in the app
        return i18nForm._get_translations(self)
ann1-2/+2 2013-10-22Add cwd-spawn to urxvt to allow spawning a new terminal from the currentRené 'Necoro' Neumann3-2/+199 2013-10-22Use chpwd_functions and precmd_functions instead of putting everything inRené 'Necoro' Neumann1-19/+23 2013-09-30urxvt: execute the wgetpaste check each timeRené 'Necoro' Neumann1-2/+5 2013-09-30urxvt: wgetpaste fixRené 'Necoro' Neumann1-4/+4 2013-09-30Allow HOME variable in .Xresources.René 'Necoro' Neumann2-3/+3 2013-09-30wgetpaste support for urxvt.René 'Necoro' Neumann2-1/+28 2013-09-30Urxvt autotransform for <filename>:<line>.René 'Necoro' Neumann1-1/+4 2013-09-30Remove tabbed(x) from urxvt. We use i3 -- no need for it.René 'Necoro' Neumann1-9/+0 2013-09-30Do not display icon in urxvt. It's not supported by i3 anyway.René 'Necoro' Neumann1-1/+1 2013-09-29Remove wrong monitors lineRené 'Necoro' Neumann1-1/+0 2013-09-29Delete vimperator paste plugin -- seems not to work anymore with new FFRené 'Necoro' Neumann1-266/+0 2013-09-29Use $HOST instead of Cauchiy in titleRené 'Necoro' Neumann1-1/+1 2013-09-24Remove herbstluftwmRené 'Necoro' Neumann1-1/+0 2013-09-24Conky changesRené 'Necoro' Neumann2-5/+13 2013-09-15Remove trailing slash from \~ulpRené 'Necoro' Neumann1-1/+1 2013-09-15Make cci explicitly use python2René 'Necoro' Neumann1-1/+1 2013-09-10Node/NPM preparationRené 'Necoro' Neumann3-1/+13