summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Krogh <markus@nordu.net>2016-03-10 12:18:36 +0000
committerMarkus Krogh <markus@nordu.net>2016-03-10 12:18:36 +0000
commitab15931fb292b1d39b957b2977e556522fd26ed3 (patch)
treeaa0ceb4a617b2a09f16f21436404a264dc8ef996
parent4575c7ea47680e7f589477c917a73353d6faef73 (diff)
Per manager mail
-rw-r--r--maconomy_hours.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/maconomy_hours.py b/maconomy_hours.py
index 62a328f..1281823 100644
--- a/maconomy_hours.py
+++ b/maconomy_hours.py
@@ -1,5 +1,6 @@
from maconomy import cli, create_db, TimeRegistrationRepository
from maconomy.views import EmployeeEmailView, ManagerEmailView, CEOEmailView
+from collections import defaultdict
def main(config, options):
db = create_db(config)
@@ -19,6 +20,7 @@ def main(config, options):
timereg_repo.close()
db.close()
+
def normal(timesheets, config, dry_run):
view = EmployeeEmailView(config)
for timesheet in timesheets:
@@ -31,11 +33,22 @@ def normal(timesheets, config, dry_run):
else:
pass
def manager(timesheets, config, dry_run):
- relevant = [t for t in timesheets if need_manager_mail(t)]
view = ManagerEmailView(config)
- mail = view.render(relevant)
- if dry_run:
- print mail
+ employees = dict([(t.employee.id, t.employee) for t in timesheets])
+ per_manager = defaultdict(list)
+ for timesheet in [t for t in timesheets if need_manager_mail(t)]:
+ manager_id = timesheet.approver
+ per_manager[manager_id].append(timesheet)
+ for manager_id, relevant_timesheets in per_manager.items():
+ mail = view.render(relevant_timesheets)
+ subject = "Warning: Timesheets overdue"
+ manager = employees.get(manager_id)
+ to = manager.email if manager else None
+ if dry_run:
+ print "TO: {}".format(to)
+ print subject
+ print mail
+
def ceo(timesheets, config, dry_run):
relevant = [t for t in timesheets if need_manager_mail(t)]