summaryrefslogtreecommitdiff
path: root/app/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/model.py')
-rw-r--r--app/model.py17
1 files changed, 16 insertions, 1 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)
#
14-06-30tmpdir: more cross platform solution, and .txt file endingJason A. Donenfeld1-4/+3 2014-06-29passmenu: type text with xdotoolJason A. Donenfeld2-3/+17 2014-06-29edit: Don't go into a crazy loop. Instead prompt.Jason A. Donenfeld1-2/+1 2014-06-29git: do not trap tmpdir removalJason A. Donenfeld1-1/+0 2014-06-29darwin: fix mktemp argument orderJason A. Donenfeld1-1/+1 2014-06-29darwin: properly ejects ramdisksJason A. Donenfeld2-15/+20 2014-06-29Allow options in EDITOR variableJason A. Donenfeld2-2/+3 2014-06-29keepassx2pass: Substitute empty string for NoneAndrew Spiers1-1/+4 2014-06-16emacs: Use PASSWORD_STORE_CLIP_TIME env variableSvend Sorensen1-4/+7 2014-06-16emacs: Use when instead of if/prognSvend Sorensen1-5/+4 2014-06-16emacs: Update pass website URLSvend Sorensen1-1/+1 2014-05-27Update for new URL.Jason A. Donenfeld3-3/+3 2014-05-14Bump version1.6.2Jason A. Donenfeld1-1/+1 2014-05-14Don't define tmpdir on git init.Jason A. Donenfeld1-4/+3 2014-05-14Disable secmem warning when discovering keysmilki2-2/+2 2014-05-10edit: Quote editor so tests work in spaced directories.Jason A. Donenfeld1-1/+1 2014-05-10reencryption: Properly escape input to sedJason A. Donenfeld1-1/+1 2014-05-10git: use secure tmp directoryJason A. Donenfeld1-4/+11 2014-05-10configure git to decrypt gpg files automaticallySamuel Le Thiec1-0/+5 2014-05-08completion: add new generate flagsJason A. Donenfeld3-2/+7 2014-05-08inplace: mutually exclusive with forceJason A. Donenfeld2-3/+3 2014-05-08usage: tab to spacesJason A. Donenfeld1-1/+1 2014-05-08generate: use nice ansi colors instead.Jason A. Donenfeld1-3/+2 2014-05-08zsh: posix compatible sed fix for zsh-completionJason A. Donenfeld1-1/+1 2014-05-07Implement interactive init functionSvend Sorensen1-0/+8 2014-05-07Implement interactive rename functionSvend Sorensen1-0/+7 2014-05-07Reorder interactive function to match order of helper functionsSvend Sorensen1-13/+13 2014-05-07Make edit helper function name consistent with other helpersSvend Sorensen1-1/+1 2014-05-07Factor out password completing-read functionSvend Sorensen1-4/+8 2014-05-07Add dash to Package-RequiresSvend Sorensen1-1/+1 2014-05-06Force sane sort order.Jason A. Donenfeld1-2/+2 2014-05-06generate: add --in-place optionJason A. Donenfeld4-9/+33