diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2016-04-30 22:29:46 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2016-07-08 23:36:35 +0200 |
commit | d5c4984fda9819e84c8c97979f95e5b5cc5e2eb1 (patch) | |
tree | d092384fb32f1395cc09c2008a1d8d230fe42d46 | |
parent | 667a7a4285d4e97ed5242e60df909f3ecdd35d59 (diff) | |
download | kosten-const_groups.tar.gz kosten-const_groups.tar.bz2 kosten-const_groups.zip |
current_expensesconst_groups
Diffstat (limited to '')
-rw-r--r-- | app/model.py | 17 | ||||
-rw-r--r-- | templates/consts/list.jinja | 10 | ||||
-rw-r--r-- | templates/consts/show.jinja | 4 |
3 files changed, 24 insertions, 7 deletions
diff --git a/app/model.py b/app/model.py index 248647c..4f80b85 100644 --- a/app/model.py +++ b/app/model.py @@ -143,7 +143,10 @@ class ConstExpenseGroup (UserModel, CategoryModel): start = ReqColumn(db.Date, index = True) end = ReqColumn(db.Date, index = True) - expenses = db.relationship("ConstExpense", back_populates = "group") + expenses = db.relationship("ConstExpense", back_populates = "group", order_by = 'desc(ConstExpense.end)') + + def current_expenses(self): + return filter(ConstExpense.is_current, self.expenses) class ConstExpense (UserModel, CategoryModel): description = Column(db.Unicode(50)) @@ -168,6 +171,18 @@ class ConstExpense (UserModel, CategoryModel): d = datetime.date(year, month, 1) return cls.of(user).filter(sql.between(d, cls.start, cls.end)) + def _today(self): + return datetime.date.today().replace(day = 1) + + def is_current(self): + return self.start <= self._today() <= self.end + + def is_future(self): + return self.start > self._today() + + def is_expired(self): + return self.end < self._today() + # # Work entities (not stored in DB) # diff --git a/templates/consts/list.jinja b/templates/consts/list.jinja index 7fef344..80d22ad 100644 --- a/templates/consts/list.jinja +++ b/templates/consts/list.jinja @@ -7,18 +7,20 @@ {% block content %} <p><a href="{{ url_for(".add") }}">Neuen Eintrag hinzufügen</a></p> - {{ list(current, "Aktuell") }} + {{ list(current, "Aktuell", True) }} {% if last_month %} {{ list(last_month, "Endeten letzten Monat") }} {% endif %} {% if future %} {{ list(future, "Zukünftige") }} {% endif %} {% if old %} {{ list(old, "Veraltet") }} {% endif %} {% endblock %} -{% macro list(list, h) %} +{% macro list(list, h, use_current = False) %} <h2>{{ h }}</h2> <ul class="arrow"> - {% for c in list -%} - <li><a href="{{ url_for(".show", id = c.id) }}">{{c.description}} ({{c.expense | eur}})</a></li> + {% for group in list -%} + {% for e in (group.current_expenses() if use_current else group.expenses) -%} + <li><a href="{{ url_for(".show", id = e.id) }}">{{group.description}} {% if e.description %}({{e.description}}) {% endif %} ({{e.expense | eur}})</a></li> + {% endfor %} {% endfor %} </ul> {% endmacro %} diff --git a/templates/consts/show.jinja b/templates/consts/show.jinja index c09fc3b..5ae5319 100644 --- a/templates/consts/show.jinja +++ b/templates/consts/show.jinja @@ -3,12 +3,12 @@ {% set fmt="%m.%Y" %} {% block heading %} - Konstante Kosten + Konstante Kosten: {{ exp.group.description }} {% endblock %} {% block content %} <ul class="arrow"> - <li><span class="heading">Beschreibung:</span> {{exp.description}}</li> + {% if exp.description %} <li><span class="heading">Beschreibung:</span> {{exp.description}}</li> {% endif %} <li><span class="heading">Kategorie:</span> {{exp.category.name}}</li> <li><span class="heading">Betrag:</span> {{exp.expense | eur}}</li> <li><span class="heading">Betrag pro Monat:</span> {{exp.monthly | eur}}</li> |