summaryrefslogtreecommitdiff
path: root/app/forms.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/forms.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/app/forms.py b/app/forms.py
new file mode 100644
index 0000000..da5fc9e
--- /dev/null
+++ b/app/forms.py
@@ -0,0 +1,67 @@
+# -*- encoding: utf-8 -*-
+
+from flask.ext.wtf import Form
+from wtforms.fields import DateField, IntegerField, StringField, HiddenField
+from wtforms import validators as v
+from wtforms import fields
+
+from wtforms.ext.sqlalchemy.fields import QuerySelectField
+
+import datetime
+
+from . import app
+
+today = datetime.date.today
+
+def is_hidden_field(f):
+ return isinstance(f, HiddenField)
+
+app.jinja_env.tests["hidden"] = is_hidden_field
+
+class DecimalField(fields.DecimalField):
+ def process_formdata(self, valuelist):
+ if valuelist:
+ value = valuelist[0].replace(',','.')
+ super(DecimalField, self).process_formdata([value])
+
+req = [v.input_required()]
+
+class ExpenseForm(Form):
+ date = DateField("Datum", req,
+ format="%d.%m.%Y",
+ default=today())
+
+ expense = DecimalField("Betrag", req,
+ description="EUR",
+ places=2)
+
+ description = StringField("Beschreibung", req)
+
+ category = QuerySelectField("Kategorie",
+ get_label="name")
+
+class ConstForm(Form):
+ start = DateField("Beginn", req,
+ format="%m.%Y",
+ default=today())
+
+ end = DateField("Ende", req,
+ format="%m.%Y",
+ default=today(),
+ description="(einschließlich)")
+
+ months = IntegerField("Zahlungsrythmus", req,
+ description="Monate")
+
+ expense = DecimalField("Betrag", req,
+ description="EUR",
+ places=2)
+
+ desc = StringField("Beschreibung", req)
+
+ cat = QuerySelectField("Kategorie",
+ get_label="name")
+
+ prev = QuerySelectField("Vorgänger",
+ get_label="description",
+ allow_blank=True)