From 81493afa53a1a1d5ff4b417d05febf9f9e2a172b Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Thu, 23 Jul 2020 00:28:47 +0200 Subject: Restructure --- app/views/stats.py | 56 ------------------------------------------------------ 1 file changed, 56 deletions(-) delete mode 100644 app/views/stats.py (limited to 'app/views/stats.py') diff --git a/app/views/stats.py b/app/views/stats.py deleted file mode 100644 index 9ff81a1..0000000 --- a/app/views/stats.py +++ /dev/null @@ -1,56 +0,0 @@ -from . import Blueprint, flash, db, \ - current_user, login_required, \ - assert_authorisation, templated, redirect, request, \ - today - -from .. import forms as F -from ..model import ConstExpense, SingleExpense -import sqlalchemy as sql -import calendar -from collections import defaultdict -from datetime import date -from flask import jsonify - -mod = Blueprint('stats', __name__) - -def next_date(d): - if d.month == 12: - return d.replace(year = d.year + 1, month = 1) - else: - return d.replace(month = d.month + 1) - -def date_to_ms(d): - return calendar.timegm(d.timetuple()) * 1000 - -@mod.route('/_const//') -@login_required -@templated -def const_dialog(year,month): - consts = ConstExpense.of_month(current_user, month, year).order_by(ConstExpense.description) - - return { 'consts': consts } - - -@mod.route('/') -@login_required -@templated -def show(): - # easy way: fetch them all and then do some computation - consts = defaultdict(int) - t = today().replace(day = 1) - for e in ConstExpense.of(current_user): - cur = e.start - end = min(e.end, t) - while cur <= end: - consts[date_to_ms(cur)] += e.monthly - cur = next_date(cur) - - consts = list(sorted(consts.items())) - - expQuery = SingleExpense.of(current_user)\ - .group_by(SingleExpense.year, SingleExpense.month)\ - .values(SingleExpense.year, SingleExpense.month, sql.func.sum(SingleExpense.expense)) - - expenses = list(sorted((date_to_ms(date(year,month,1)), exp) for (year, month, exp) in expQuery)) - - return { 'consts': consts, 'expenses' : expenses } -- cgit v1.2.3-70-g09d2