From b36ec721ab97b80b1d070426c6f3f09b62ac5c7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Fri, 1 Nov 2013 14:19:07 +0100 Subject: Some reorganization --- app/views/expenses.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'app/views/expenses.py') 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('//') @login_required @@ -80,7 +93,7 @@ mod.add_url_rule('/', 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() -- cgit v1.2.3