diff options
author | Markus Krogh <markus@nordu.net> | 2016-03-10 12:18:36 +0000 |
---|---|---|
committer | Markus Krogh <markus@nordu.net> | 2016-03-10 12:18:36 +0000 |
commit | ab15931fb292b1d39b957b2977e556522fd26ed3 (patch) | |
tree | aa0ceb4a617b2a09f16f21436404a264dc8ef996 | |
parent | 4575c7ea47680e7f589477c917a73353d6faef73 (diff) |
Per manager mail
-rw-r--r-- | maconomy_hours.py | 21 |
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)] |