From ab15931fb292b1d39b957b2977e556522fd26ed3 Mon Sep 17 00:00:00 2001 From: Markus Krogh Date: Thu, 10 Mar 2016 12:18:36 +0000 Subject: Per manager mail --- maconomy_hours.py | 21 +++++++++++++++++---- 1 file 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)] -- cgit v1.1