summaryrefslogtreecommitdiff
path: root/app/forms.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2013-04-14 18:54:50 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2013-04-14 18:54:50 +0200
commit21c591327c8c4c8bbf34831a23f4439fec32f3b2 (patch)
tree68754e3f4726d31c7a61a472fa17109a5b316295 /app/forms.py
parentabfc1005db0f256ca60823f61b8a904304eb9a4c (diff)
downloadkosten-21c591327c8c4c8bbf34831a23f4439fec32f3b2.tar.gz
kosten-21c591327c8c4c8bbf34831a23f4439fec32f3b2.tar.bz2
kosten-21c591327c8c4c8bbf34831a23f4439fec32f3b2.zip
Add expense -- in Flask
Diffstat (limited to 'app/forms.py')
-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)