summaryrefslogtreecommitdiff
path: root/app/views/expenses.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2013-11-01 14:19:07 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2013-11-01 14:19:07 +0100
commitb36ec721ab97b80b1d070426c6f3f09b62ac5c7e (patch)
treeebc4016760e062d2a27072934b32980e2debf366 /app/views/expenses.py
parent6e6e436d5c76399b567a1e9e5ae16d77d0052f4f (diff)
downloadkosten-b36ec721ab97b80b1d070426c6f3f09b62ac5c7e.tar.gz
kosten-b36ec721ab97b80b1d070426c6f3f09b62ac5c7e.tar.bz2
kosten-b36ec721ab97b80b1d070426c6f3f09b62ac5c7e.zip
Some reorganization
Diffstat (limited to 'app/views/expenses.py')
-rw-r--r--app/views/expenses.py35
1 files changed, 24 insertions, 11 deletions
diff --git a/app/views/expenses.py b/app/views/expenses.py
index 87e9c0f..870b45f 100644
--- a/app/views/expenses.py
+++ b/app/views/expenses.py
@@ -1,24 +1,37 @@
# -*- coding: utf-8 -*-
from . import Blueprint, flash, db, \
current_user, login_required, \
- assert_authorisation, templated, redirect, request, url_for
+ assert_authorisation, templated, redirect, request, url_for, today
from flask import Markup
from ..model import Category, SingleExpense, CatExpense, MonthExpense
-from ..forms import ExpenseForm
+from .. import forms as F
-import datetime, decimal
+import datetime
from sqlalchemy import sql, func
from functools import partial
assert_authorisation = partial(assert_authorisation, SingleExpense.get)
mod = Blueprint('expenses', __name__)
-def expense_form(obj=None):
- form = ExpenseForm(obj=obj)
- form.category.query = Category.of(current_user).order_by(Category.name)
- return form
+class ExpenseForm(F.Form):
+ date = F.DateField(u'Datum', F.req,
+ format="%d.%m.%Y",
+ default=lambda: today())
+
+ expense = F.DecimalField(u'Betrag', F.req,
+ description=u'EUR',
+ places=2)
+
+ description = F.StringField(u'Beschreibung', F.req)
+
+ category = F.QuerySelectField(u'Kategorie',
+ get_label='name')
+
+ def __init__(self, obj = None):
+ super(F.Form, self).__init__(obj = obj)
+ self.category.query = Category.of(current_user).order_by(Category.name)
def calc_month_exp(year, month):
ssum = func.sum(SingleExpense.expense)
@@ -65,7 +78,7 @@ def next_date(exp):
@mod.app_template_test('last_date')
def is_last(exp):
- return exp.date >= datetime.date.today().replace(day = 1)
+ return exp.date >= today().replace(day = 1)
@mod.route('/<int(fixed_digits=4):year>/<int(fixed_digits=2):month>')
@login_required
@@ -80,7 +93,7 @@ mod.add_url_rule('/<path:p>', endpoint = 'show_date_str', build_only = True)
@login_required
@templated
def show():
- d = datetime.date.today()
+ d = today()
first, pfirst = calc_month_and_pie(d.year, d.month)
if d.month == 1:
@@ -96,7 +109,7 @@ def show():
@templated
def edit(id):
exp = SingleExpense.get(id)
- form = expense_form(exp)
+ form = ExpenseForm(exp)
if form.is_submitted():
if 'deleteB' in request.form:
@@ -118,7 +131,7 @@ def edit(id):
@login_required
@templated
def add():
- form = expense_form()
+ form = ExpenseForm()
if form.validate_on_submit():
exp = SingleExpense()