diff options
Diffstat (limited to 'maconomy_hours.py')
-rw-r--r-- | maconomy_hours.py | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/maconomy_hours.py b/maconomy_hours.py index 1efcc7c..b41cd06 100644 --- a/maconomy_hours.py +++ b/maconomy_hours.py @@ -1,7 +1,9 @@ from maconomy import cli, create_db, TimeRegistrationRepository, Mailer from maconomy.views import EmployeeEmailView, ManagerEmailView, CEOEmailView +from maconomy import utils from collections import defaultdict + def main(config, options): db = create_db(config) timereg_repo = TimeRegistrationRepository(db) @@ -43,12 +45,8 @@ def normal(timesheets, config, mailer): def manager(timesheets, config, mailer): view = ManagerEmailView(config) # extract employees for manager email lookup - employees = dict([(t.employee.id, t.employee) for t in timesheets]) - per_manager = defaultdict(list) - # filter timesheets per manager - for timesheet in [t for t in timesheets if need_manager_mail(t)]: - manager_id = timesheet.approver - per_manager[manager_id].append(timesheet) + employees = utils.employees(timesheets) + per_manager = utils.per_manager(timesheets) # send mails to managers for manager_id, relevant_timesheets in per_manager.items(): mail = view.render(relevant_timesheets) @@ -66,7 +64,7 @@ def manager(timesheets, config, mailer): def ceo(timesheets, config, mailer): to = config.get("mail", "ceo") # Filter only "bad" entries - relevant = [t for t in timesheets if need_manager_mail(t)] + relevant = [t for t in timesheets if utils.need_manager_mail(t)] view = CEOEmailView() mail = view.render(relevant) subject = "Warning: Timesheet overdue for {} employees".format(len(relevant)) @@ -75,8 +73,6 @@ def ceo(timesheets, config, mailer): else: print mail -def need_manager_mail(timesheet): - return not timesheet.is_submitted() or not timesheet.is_approved() def summary(timesheets): for timesheet in timesheets: |